This commit is contained in:
Élie Bouttier 2016-07-23 17:20:57 +02:00
parent 7d48fbf588
commit cfa0220da7
16 changed files with 180 additions and 26 deletions

1
.gitignore vendored
View File

@ -5,4 +5,5 @@
*.pyc
*.swp
*.sqlite3
/media/avatars/
ponyconf/*_settings.py

View File

@ -1,11 +1,18 @@
{% extends 'base.html' %}
{% load i18n %}
{% block speakertab %} class="active"{% endblock %}
{% block content %}
<h1>{{ profile }}</h1>
{% include "_form.html" %}
<div class="panel panel-default">
<div class="panel-heading">
<h3>{% blocktrans %}{{ profile }}'s profile{% endblocktrans %}</h3>
</div>
<div class="panel-body">
{% include "_form.html" %}
</div>
</div>
{% endblock %}

View File

@ -1,6 +1,6 @@
{% extends 'base.html' %}
{% load bootstrap3 i18n %}
{% load bootstrap3 i18n avatar_tags %}
{% block profiletab %} class="active"{% endblock %}
@ -12,14 +12,29 @@
<h3>{% trans "Profile" %}</h3>
</div>
<div class="panel-body">
{% include "_form.html" %}
<form action="" method="post" class="form-horizontal">
{% csrf_token %}
<div class="form-group">
<label class="col-md-3 control-label" for="id_first_name">Avatar</label>
{% avatar request.user %}
<a href="{% url 'avatar_change' %}" class="btn btn-default">{% trans "Change avatar" %}</a>
</div>
{% for form in forms %}
{% bootstrap_form form layout="horizontal" %}
{% endfor %}
{% buttons layout="horizontal" %}
<button type="submit" class="btn btn-primary">{% trans "Submit" %}</button>
{% for url, class, text in buttons %}
<a href="{% url url %}" class="btn btn-{{ class }}">{{ text }}</a>
{% endfor %}
<a href="{% if request.META.HTTP_REFERER %}{{ request.META.HTTP_REFERER }}{% else %}{% url 'home' %}{% endif %}" class="btn btn-default">{% trans "Cancel" %}</a>
{% endbuttons %}
</form>
</div>
</div>
{% endblock %}
<a href="{% url 'password_change' %}" class="btn btn-warning">Change password</a>
{% block css %}
{{ block.super }}
{{ form.media.css }}

View File

@ -0,0 +1,14 @@
{% extends "avatar/base.html" %}
{% load i18n avatar_tags %}
{% block avatarcontent %}
<p>{% trans "Your current avatar: " %}</p>
{% avatar user %}
{% if not avatars %}
<p>{% trans "You haven't uploaded an avatar yet. Please upload one now." %}</p>
{% endif %}
<form enctype="multipart/form-data" method="POST" action="{% url 'avatar_add' %}">
{{ upload_avatar_form.as_p }}
<p>{% csrf_token %}<input type="submit" value="{% trans "Upload New Image" %}" /></p>
</form>
{% endblock %}

View File

@ -0,0 +1 @@
<img src="{{ url }}" alt="{{ alt }}" width="{{ size }}" height="{{ size }}" />

View File

@ -0,0 +1,20 @@
{% extends 'base.html' %}
{% load i18n %}
{% block profiletab %} class="active"{% endblock %}
{% block content %}
<div class="panel panel-default">
<div class="panel-heading">
<h3>{% trans "Avatar" %}
<a href="{% url 'profile' %}" class="btn btn-primary pull-right"><span class="glyphicon glyphicon-arrow-left"> {% trans "Back to profile" %}</a>
</h3>
</div>
<div class="panel-body">
{% block avatarcontent %}{% endblock %}
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,21 @@
{% extends "avatar/base.html" %}
{% load i18n avatar_tags %}
{% block avatarcontent %}
<p>{% trans "Your current avatar: " %}</p>
{% avatar user %}
{% if not avatars %}
<p>{% trans "You haven't uploaded an avatar yet. Please upload one now." %}</p>
{% else %}
<form method="POST" action="{% url 'avatar_change' %}">
<ul>
{{ primary_avatar_form.as_ul }}
</ul>
<p>{% csrf_token %}<input type="submit" value="{% trans "Choose new Default" %}" /></p>
</form>
{% endif %}
<form enctype="multipart/form-data" method="POST" action="{% url 'avatar_add' %}">
{{ upload_avatar_form.as_p }}
<p>{% csrf_token %}<input type="submit" value="{% trans "Upload New Image" %}" /></p>
</form>
{% endblock %}

View File

@ -0,0 +1,17 @@
{% extends "avatar/base.html" %}
{% load i18n %}
{% block avatarcontent %}
<p>{% trans "Please select the avatars that you would like to delete." %}</p>
{% if not avatars %}
{% url 'avatar_change' as avatar_change_url %}
<p>{% blocktrans %}You have no avatars to delete. Please <a href="{{ avatar_change_url }}">upload one</a> now.{% endblocktrans %}</p>
{% else %}
<form method="POST" action="{% url 'avatar_delete' %}">
<ul>
{{ delete_avatar_form.as_ul }}
</ul>
<p>{% csrf_token %}<input type="submit" value="{% trans "Delete These" %}" /></p>
</form>
{% endif %}
{% endblock %}

View File

@ -10,6 +10,7 @@ urlpatterns = [
url(r'^logout/$', auth_views.logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout'),
url(r'^admin/participants/$', views.participation_list, name='list-participant'),
url(r'^admin/participant/(?P<username>[\w.@+-]+)$', views.edit, name='edit-participant'),
url(r'^avatar/', include('avatar.urls')),
url(r'', include('django.contrib.auth.urls')),
url(r'', include('registration.backends.default.urls')),
]

View File

@ -14,6 +14,7 @@ from .utils import can_edit_profile, is_orga
RESET_PASSWORD_BUTTON = ('password_reset', 'warning', _('Reset your password'))
CHANGE_PASSWORD_BUTTON = ('password_change', 'warning', _('Change password'))
CHANGE_AVATAR_BUTTON = ('avatar_change', 'default', _('Change avatar'))
@login_required

Binary file not shown.

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-07-23 12:13+0000\n"
"POT-Creation-Date: 2016-07-23 15:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: accounts/models.py:17 proposals/templates/proposals/user_details.html:10
#: accounts/models.py:17 proposals/templates/proposals/user_details.html:12
msgid "Biography"
msgstr "Biographie"
@ -42,7 +42,7 @@ msgstr "Jaccepte dêtre enregistré en vidéo"
msgid "Video licence"
msgstr "Licence vidéo"
#: accounts/models.py:60 proposals/templates/proposals/user_details.html:17
#: accounts/models.py:60 proposals/templates/proposals/user_details.html:19
msgid "Notes"
msgstr "Notes"
@ -54,6 +54,11 @@ msgstr "Bienvenue !"
msgid "Goodbye!"
msgstr "Au revoir !"
#: accounts/templates/accounts/edit_profile.html:11
#, python-format
msgid "%(profile)s's profile"
msgstr "Profile de %(profile)s"
#: accounts/templates/accounts/participation_list.html:32
msgid "View conversation"
msgstr "Afficher la discussion"
@ -72,6 +77,57 @@ msgstr "Sabonner à la discussion"
msgid "Profile"
msgstr "Profile"
#: accounts/templates/accounts/profile.html:20 accounts/views.py:17
msgid "Change avatar"
msgstr "Changer davatar"
#: accounts/templates/accounts/profile.html:26 ponyconf/templates/_form.html:12
msgid "Submit"
msgstr "Envoyer"
#: accounts/templates/accounts/profile.html:30 ponyconf/templates/_form.html:16
msgid "Cancel"
msgstr "Annuler"
#: accounts/templates/avatar/add.html:5 accounts/templates/avatar/change.html:5
msgid "Your current avatar: "
msgstr ""
#: accounts/templates/avatar/add.html:8 accounts/templates/avatar/change.html:8
msgid "You haven't uploaded an avatar yet. Please upload one now."
msgstr ""
#: accounts/templates/avatar/add.html:12
#: accounts/templates/avatar/change.html:19
msgid "Upload New Image"
msgstr ""
#: accounts/templates/avatar/base.html:11
msgid "Avatar"
msgstr ""
#: accounts/templates/avatar/base.html:12
msgid "Back to profile"
msgstr "Retourner au profile"
#: accounts/templates/avatar/change.html:14
msgid "Choose new Default"
msgstr ""
#: accounts/templates/avatar/confirm_delete.html:5
msgid "Please select the avatars that you would like to delete."
msgstr ""
#: accounts/templates/avatar/confirm_delete.html:8
msgid ""
"You have no avatars to delete. Please <a href=\"%(avatar_change_url)s"
"\">upload one</a> now."
msgstr ""
#: accounts/templates/avatar/confirm_delete.html:14
msgid "Delete These"
msgstr ""
#: accounts/templates/registration/login.html:11
#: ponyconf/templates/base.html:76
msgid "Login"
@ -108,7 +164,7 @@ msgstr "Réinitialiser son mot de passe"
#: accounts/views.py:16
msgid "Change password"
msgstr "Changer son mot de passe"
msgstr "Changer de mot de passe"
#: conversations/templates/conversations/_message_form.html:4
msgid "Send a message"
@ -139,28 +195,20 @@ msgid "You can use this page to communicate with the staff."
msgstr ""
"Vous pouvez utiliser cette page pour communiquer avec léquipe organisatrice."
#: ponyconf/settings.py:135
#: ponyconf/settings.py:136
msgid "English"
msgstr "Anglais"
#: ponyconf/settings.py:136
#: ponyconf/settings.py:137
msgid "French"
msgstr "Français"
#: ponyconf/templates/_form.html:11
msgid "Submit"
msgstr "Envoyer"
#: ponyconf/templates/_form.html:15
msgid "Cancel"
msgstr "Annuler"
#: ponyconf/templates/base.html:45
msgid "Home"
msgstr "Accueil"
#: ponyconf/templates/base.html:47
#: proposals/templates/proposals/user_details.html:13
#: proposals/templates/proposals/user_details.html:15
msgid "Talks"
msgstr "Exposés"
@ -281,7 +329,7 @@ msgstr "Aucun thèmes."
msgid "Add a topic"
msgstr "Ajouter un thème"
#: proposals/templates/proposals/user_details.html:19
#: proposals/templates/proposals/user_details.html:21
msgid "Edit"
msgstr "Éditer"

View File

@ -44,6 +44,7 @@ INSTALLED_APPS = [
'bootstrap3',
'registration',
'django_select2',
'avatar',
# build-in apps
'django.contrib.admin',
@ -143,11 +144,13 @@ LOCALE_PATHS = [
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',

View File

@ -1,6 +1,7 @@
{% load bootstrap3 i18n %}
<form action="" method="post" class="form-horizontal">
{% csrf_token %}
{% block beforeform %}{% endblock %}
{% if form %}
{% bootstrap_form form layout="horizontal" %}
{% endif %}

View File

@ -15,6 +15,8 @@ Including another URLconf
"""
from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
@ -22,4 +24,4 @@ urlpatterns = [
url(r'', include('proposals.urls')),
url(r'^conversations/', include('conversations.urls')),
url(r'^select2/', include('django_select2.urls')),
]
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View File

@ -1,5 +1,5 @@
{% extends 'base.html' %}
{% load accounts_tags i18n %}
{% load accounts_tags i18n avatar_tags %}
{% block speakertab %} class="active"{% endblock %}
@ -7,6 +7,8 @@
<h1>{{ profile }}</h1>
<img class="pull-right" src="{% avatar_url request.user 160 %}" />
<h2>{% trans "Biography" %}</h2>
<p>{{ profile.biography }}</p>