core: make a nice user profile

This commit is contained in:
Skia 2018-06-05 00:18:07 +02:00
parent 9146251642
commit be1dc62848
3 changed files with 340 additions and 199 deletions

View File

@ -1031,43 +1031,77 @@ u, .underline {
/*-----------------------------USER PROFILE----------------------------*/ /*-----------------------------USER PROFILE----------------------------*/
#user_profile_container { #user_profile_page {
width: 80%; #user_profile {
margin: 0px auto; display: flex;
} justify-content: center;
margin-top: 2em;
#user_profile { margin-bottom: 4em;
width: 100%; #user_profile_infos {
margin: 0px auto; flex-basis: 30%;
padding: 10px; border-right: solid 1px grey;
overflow: auto; div {
h4 { margin: 0.5em;
border-bottom: 1px solid $primary-light-color; }
max-width: 60%; #user_profile_infos_items {
} margin-top: 3em;
#left_column { }
width: 59%; .user_profile_infos_item, .user_profile_infos_item_value {
} vertical-align: top;
#right_column { display: inline-block;
width: 40%; width: 49%;
float: right; }
font-style: italic; .user_profile_infos_item {
} color: grey;
#pictures { }
max-width: 250px; #user_profile_infos_promo {
max-height: 300px; display: flex;
margin: 0px auto; align-items: center;
} img {
#nickname { margin: 0.5em;
font-style: italic; }
} }
#pictures img { #user_profile_infos_quote {
max-width: 96%; text-align: right;
max-height: 96%; color: grey;
} font-style: italic;
.promo_pict { &:after, &:before {
height: 45px; content: "\201C";
} vertical-align: middle;
}
}
}
#user_profile_pictures {
height: 20em;
flex-basis: 30%;
display: flex;
justify-content: flex-end;
#user_profile_pictures_bigone {
flex-grow: 9;
flex-basis: 20em;
display: flex;
justify-content: center;
align-items: center;
img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
}
#user_profile_pictures_thumbnails {
flex-grow: 1;
flex-basis: 50px;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
img {
margin: 0.1em;
width: 50px;
}
}
}
}
} }
.mini_profile_link { .mini_profile_link {
@ -1107,6 +1141,7 @@ u, .underline {
} }
} }
/* XXX This seems to be used in the SAS */
#pict { #pict {
display: inline-block; display: inline-block;
width: 80%; width: 80%;

View File

@ -6,97 +6,165 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div id="user_profile_container"> <div id="user_profile_page">
<div id="user_profile"> <div id="user_profile">
<div id="right_column"> <!-- Profile -->
<div id="pictures"> <div id="user_profile_infos">
{% if profile.profile_pict %}
<img src="{{ profile.profile_pict.get_download_url() }}" alt="{% trans %}Profile{% endtrans %}" id="picture" />
{% else %}
<img src="{{ static('core/img/unknown.jpg') }}" alt="{% trans %}Profile{% endtrans %}" id="picture" />
{% endif %}
</div>
<p id="quote"><em>{{ profile.quote }}</em></p>
</div>
<div id="left_column">
<h4>{{ profile.get_full_name() }}</h4> <h4>{{ profile.get_full_name() }}</h4>
{% if profile.nick_name %} {% if profile.nick_name %}
<p id="nickname">&laquo; {{ profile.nick_name }} &raquo;</p> <div id="user_profile_infos_nick">&laquo; {{ profile.nick_name }} &raquo;</div>
{% endif %} {% endif %}
{% if profile.date_of_birth %}
<p>{% trans %}Born: {% endtrans %}{{ profile.date_of_birth|date("d/m/Y") }}</p> {% if profile.quote %}
<div id="user_profile_infos_quote">
{{ profile.quote }}
</div>
{% endif %} {% endif %}
{% if profile.department != "NA" %}
<p>{{ profile.department }}{{ profile.semester }} <div id="user_profile_infos_items">
{% endif %} {% if profile.date_of_birth %}
{% if profile.dpt_option %} <div>
<br>{% trans %}Option: {% endtrans %}{{ profile.dpt_option }} <span class="user_profile_infos_item">{% trans %}Born: {% endtrans %}</span>
{% endif %} <span class="user_profile_infos_item_value">{{ profile.date_of_birth|date("d/m/Y") }}</span>
{% if profile.phone %} </div>
<p> {% endif %}
{{ profile.phone }}
</p> {% if profile.department != "NA" %}
{% endif %} <div>
{% if profile.address %} <span class="user_profile_infos_item">{% trans %}Department: {% endtrans %}</span>
<p> <span class="user_profile_infos_item_value">{{ profile.department }}{{ profile.semester }}</span>
{{ profile.address }} </div>
</p> {% endif %}
{% endif %}
</p> {% if profile.dpt_option %}
<div>
<span class="user_profile_infos_item">{% trans %}Option: {% endtrans %}</span>
<span class="user_profile_infos_item_value">{{ profile.dpt_option }}</span>
</div>
{% endif %}
{% if profile.phone %}
<div>
<span class="user_profile_infos_item">{% trans %}Phone: {% endtrans %}</span>
<span class="user_profile_infos_item_value">{{ profile.phone }}</span>
</div>
{% endif %}
{% if profile.address %}
<div>
<span class="user_profile_infos_item">{% trans %}Address: {% endtrans %}</span>
<span class="user_profile_infos_item_value">{{ profile.address }}</span>
</div>
{% endif %}
{% if profile.parent_address %}
<div>
<span class="user_profile_infos_item">{% trans %}Parents address: {% endtrans %}</span>
<span class="user_profile_infos_item_value">{{ profile.parent_address }}</span>
</div>
{% endif %}
</div>
{% if profile.promo %} {% if profile.promo %}
<p><img src="{{ static('core/img/promo_%02d.png' % profile.promo) }}" alt="Promo {{ profile.promo }}" class="promo_pict" /> <div id="user_profile_infos_promo">
{% trans %}Promo: {% endtrans %}{{ profile.promo }}</p> <img src="{{ static('core/img/promo_%02d.png' % profile.promo) }}" alt="Promo {{ profile.promo }}" />
{% trans %}Promo: {% endtrans %}{{ profile.promo }}
</div>
{% endif %} {% endif %}
</div> </div>
</div> <!-- Pictures -->
</div> <div id="user_profile_pictures">
<div id="user_profile_pictures_bigone">
{% if profile.profile_pict %}
<img src="{{ profile.profile_pict.get_download_url() }}" alt="{% trans %}Profile{% endtrans %}"
title="{% trans %}Profile{% endtrans %}" />
{% else %}
<img src="{{ static('core/img/unknown.jpg') }}" alt="{% trans %}Profile{% endtrans %}"
title="{% trans %}Profile{% endtrans %}" />
{% endif %}
</div>
<div id="user_profile_pictures_thumbnails">
{% if profile.profile_pict %}
<img src="{{ profile.profile_pict.get_download_url() }}" alt="{% trans %}Profile{% endtrans %}"
title="{% trans %}Profile{% endtrans %}" />
{% else %}
<img src="{{ static('core/img/unknown.jpg') }}" alt="{% trans %}Profile{% endtrans %}"
title="{% trans %}Profile{% endtrans %}" />
{% endif %}
{% if user.memberships.filter(end_date=None).exists() or user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user == profile %} {% if profile.avatar_pict %}
{# if the user is member of a club, he can view the subscription state #} <img src="{{ profile.avatar_pict.get_download_url() }}" alt="{% trans %}Avatar{% endtrans %}"
<p> title="{% trans %}Avatar{% endtrans %}" />
{% if profile.is_subscribed %} {% else %}
{% if user == profile or user.is_root or user.is_board_member %} <img src="{{ static('core/img/unknown.jpg') }}" alt="{% trans %}Avatar{% endtrans %}"
{{ user_subscription(profile) }} title="{% trans %}Avatar{% endtrans %}" />
{% endif %} {% endif %}
{% if user == profile or user.is_root or user.is_board_member or user.is_launderette_manager %}
{# Shows tokens bought by the user #}
{{ show_tokens(profile) }}
{# Shows slots took by the user #}
{{ show_slots(profile) }}
{% endif %}
{% else %}
{% trans %}Not subscribed{% endtrans %}
{% if user.is_board_member %}
<a href="{{ url('subscription:subscription') }}?member={{ profile.id }}">{% trans %}New subscription{% endtrans %}</a>
{% endif %}
{% endif %}
</p>
{% endif %}
{% if user.is_root or user.is_board_member %} {% if profile.scrub_pict %}
<hr> <img src="{{ profile.scrub_pict.get_download_url() }}" alt="{% trans %}Scrub{% endtrans %}"
<form style="margin-left: 0px;" action="{{ url('core:user_gift_create', user_id=profile.id) }}" method="post"> title="{% trans %}Scrub{% endtrans %}" />
{% csrf_token %} {% else %}
{{ gift_form.label }} <img src="{{ static('core/img/unknown.jpg') }}" alt="{% trans %}Scrub{% endtrans %}"
{{ gift_form.user }} title="{% trans %}Scrub{% endtrans %}" />
<input type="submit" value="{% trans %}Give gift{% endtrans %}"> {% endif %}
</form>
{% if profile.gifts.exists() %}
<br>
<div id="drop_gifts">
<h5>{% trans %}Last given gift :{% endtrans %} {{ profile.gifts.order_by('-date').first() }}</h5>
<div>
<ul>
{% for gift in profile.gifts.all().order_by('-date') %}
<li>{{ gift }} <a href="{{ url('core:user_gift_delete', user_id=profile.id, gift_id=gift.id) }}">{% trans %}Delete{% endtrans %}</a></li>
{% endfor %}
</ul>
</div> </div>
</div> </div>
</div>
{% if user.memberships.filter(end_date=None).exists() or user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user == profile %}
{# if the user is member of a club, he can view the subscription state #}
<hr>
{% if profile.is_subscribed %}
{% if user == profile or user.is_root or user.is_board_member %}
<div>
{{ user_subscription(profile) }}
</div>
{% endif %}
{% if user == profile or user.is_root or user.is_board_member or user.is_launderette_manager %}
<div>
{# Shows tokens bought by the user #}
{{ show_tokens(profile) }}
{# Shows slots took by the user #}
{{ show_slots(profile) }}
</div>
{% endif %}
{% else %} {% else %}
{% trans %}No gift given yet{% endtrans %} <div>
{% trans %}Not subscribed{% endtrans %}
{% if user.is_board_member %}
<a href="{{ url('subscription:subscription') }}?member={{ profile.id }}">{% trans %}New subscription{% endtrans %}</a>
{% endif %}
{% endif %}
</div>
{% endif %} {% endif %}
{% endif %}
{% if user.is_root or user.is_board_member %}
<div>
<hr>
<form style="margin-left: 0px;" action="{{ url('core:user_gift_create', user_id=profile.id) }}" method="post">
{% csrf_token %}
{{ gift_form.label }}
{{ gift_form.user }}
<input type="submit" value="{% trans %}Give gift{% endtrans %}">
</form>
{% if profile.gifts.exists() %}
<br>
<div id="drop_gifts">
<h5>{% trans %}Last given gift :{% endtrans %} {{ profile.gifts.order_by('-date').first() }}</h5>
<div>
<ul>
{% for gift in profile.gifts.all().order_by('-date') %}
<li>{{ gift }} <a href="{{ url('core:user_gift_delete', user_id=profile.id, gift_id=gift.id) }}">{% trans %}Delete{% endtrans %}</a></li>
{% endfor %}
</ul>
</div>
</div>
{% else %}
{% trans %}No gift given yet{% endtrans %}
{% endif %}
</div>
{% endif %}
</div>
{% endblock %} {% endblock %}
@ -118,6 +186,13 @@ $( function() {
} }
}); });
} ); } );
$(function(){
$("#user_profile_pictures_thumbnails img").click(function () {
$("#user_profile_pictures_bigone img").attr("src", $(this)[0].src);
$("#user_profile_pictures_bigone img").attr("alt", $(this)[0].alt);
$("#user_profile_pictures_bigone img").attr("title", $(this)[0].title);
})
});
$(function(){ $(function(){
$("#drop_gifts").accordion({ $("#drop_gifts").accordion({
heightStyle: "content", heightStyle: "content",

View File

@ -6,7 +6,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-22 22:25+0100\n" "POT-Creation-Date: 2018-06-05 00:14+0200\n"
"PO-Revision-Date: 2016-07-18\n" "PO-Revision-Date: 2016-07-18\n"
"Last-Translator: Skia <skia@libskia.so>\n" "Last-Translator: Skia <skia@libskia.so>\n"
"Language-Team: AE info <ae.info@utbm.fr>\n" "Language-Team: AE info <ae.info@utbm.fr>\n"
@ -17,9 +17,9 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: accounting/models.py:61 accounting/models.py:110 accounting/models.py:138 #: accounting/models.py:61 accounting/models.py:110 accounting/models.py:138
#: accounting/models.py:197 club/models.py:47 com/models.py:195 #: accounting/models.py:197 club/models.py:47 com/models.py:198
#: com/models.py:209 core/templates/core/base.jinja:297 counter/models.py:113 #: com/models.py:212 core/templates/core/base.jinja:297 counter/models.py:113
#: counter/models.py:140 counter/models.py:184 forum/models.py:49 #: counter/models.py:140 counter/models.py:184 forum/models.py:54
#: launderette/models.py:38 launderette/models.py:84 launderette/models.py:110 #: launderette/models.py:38 launderette/models.py:84 launderette/models.py:110
#: stock/models.py:38 stock/models.py:54 stock/models.py:77 stock/models.py:97 #: stock/models.py:38 stock/models.py:54 stock/models.py:77 stock/models.py:97
msgid "name" msgid "name"
@ -66,7 +66,7 @@ msgid "account number"
msgstr "numero de compte" msgstr "numero de compte"
#: accounting/models.py:113 accounting/models.py:139 club/models.py:227 #: accounting/models.py:113 accounting/models.py:139 club/models.py:227
#: com/models.py:73 com/models.py:184 com/models.py:211 counter/models.py:149 #: com/models.py:73 com/models.py:187 com/models.py:214 counter/models.py:149
#: counter/models.py:185 trombi/models.py:149 #: counter/models.py:185 trombi/models.py:149
msgid "club" msgid "club"
msgstr "club" msgstr "club"
@ -127,10 +127,10 @@ msgstr "numéro"
msgid "journal" msgid "journal"
msgstr "classeur" msgstr "classeur"
#: accounting/models.py:258 core/models.py:657 core/models.py:1058 #: accounting/models.py:258 core/models.py:657 core/models.py:1117
#: core/models.py:1102 core/models.py:1129 counter/models.py:301 #: core/models.py:1161 core/models.py:1188 counter/models.py:301
#: counter/models.py:351 counter/models.py:484 eboutic/models.py:39 #: counter/models.py:351 counter/models.py:484 eboutic/models.py:39
#: eboutic/models.py:73 forum/models.py:240 forum/models.py:315 #: eboutic/models.py:73 forum/models.py:248 forum/models.py:323
#: stock/models.py:76 #: stock/models.py:76
msgid "date" msgid "date"
msgstr "date" msgstr "date"
@ -166,7 +166,7 @@ msgid "accounting type"
msgstr "type comptable" msgstr "type comptable"
#: accounting/models.py:269 accounting/models.py:371 accounting/models.py:398 #: accounting/models.py:269 accounting/models.py:371 accounting/models.py:398
#: accounting/models.py:422 core/models.py:1128 counter/models.py:343 #: accounting/models.py:422 core/models.py:1187 counter/models.py:343
msgid "label" msgid "label"
msgstr "étiquette" msgstr "étiquette"
@ -364,7 +364,7 @@ msgstr "Compte en banque : "
#: core/templates/core/group_list.jinja:13 core/templates/core/macros.jinja:87 #: core/templates/core/group_list.jinja:13 core/templates/core/macros.jinja:87
#: core/templates/core/macros.jinja:106 core/templates/core/page_prop.jinja:14 #: core/templates/core/macros.jinja:106 core/templates/core/page_prop.jinja:14
#: core/templates/core/user_account_detail.jinja:38 #: core/templates/core/user_account_detail.jinja:38
#: core/templates/core/user_detail.jinja:91 #: core/templates/core/user_detail.jinja:157
#: core/templates/core/user_edit.jinja:19 #: core/templates/core/user_edit.jinja:19
#: counter/templates/counter/last_ops.jinja:29 #: counter/templates/counter/last_ops.jinja:29
#: counter/templates/counter/last_ops.jinja:59 #: counter/templates/counter/last_ops.jinja:59
@ -948,7 +948,7 @@ msgstr "rôle"
#: club/models.py:232 core/models.py:66 counter/models.py:114 #: club/models.py:232 core/models.py:66 counter/models.py:114
#: counter/models.py:141 election/models.py:14 election/models.py:99 #: counter/models.py:141 election/models.py:14 election/models.py:99
#: election/models.py:155 forum/models.py:50 forum/models.py:186 #: election/models.py:155 forum/models.py:55 forum/models.py:194
msgid "description" msgid "description"
msgstr "description" msgstr "description"
@ -973,11 +973,11 @@ msgid "Enter a valid address. Only the root of the address is needed."
msgstr "" msgstr ""
"Entrez une adresse valide. Seule la racine de l'adresse est nécessaire." "Entrez une adresse valide. Seule la racine de l'adresse est nécessaire."
#: club/models.py:276 com/models.py:75 com/models.py:216 core/models.py:658 #: club/models.py:276 com/models.py:75 com/models.py:219 core/models.py:658
msgid "is moderated" msgid "is moderated"
msgstr "est modéré" msgstr "est modéré"
#: club/models.py:277 com/models.py:76 com/models.py:217 #: club/models.py:277 com/models.py:76 com/models.py:220
msgid "moderator" msgid "moderator"
msgstr "modérateur" msgstr "modérateur"
@ -1289,7 +1289,7 @@ msgstr "Vous n'avez pas la permission de faire cela"
msgid "Begin date" msgid "Begin date"
msgstr "Date de début" msgstr "Date de début"
#: club/views.py:321 com/views.py:66 com/views.py:177 counter/views.py:1098 #: club/views.py:321 com/views.py:65 com/views.py:177 counter/views.py:1098
#: election/views.py:135 subscription/views.py:47 #: election/views.py:135 subscription/views.py:47
msgid "End date" msgid "End date"
msgstr "Date de fin" msgstr "Date de fin"
@ -1331,9 +1331,9 @@ msgstr "Hebdomadaire"
msgid "Call" msgid "Call"
msgstr "Appel" msgstr "Appel"
#: com/models.py:69 com/models.py:133 com/models.py:181 election/models.py:13 #: com/models.py:69 com/models.py:133 com/models.py:184 election/models.py:13
#: election/models.py:98 election/models.py:134 forum/models.py:190 #: election/models.py:98 election/models.py:134 forum/models.py:198
#: forum/models.py:238 #: forum/models.py:246
msgid "title" msgid "title"
msgstr "titre" msgstr "titre"
@ -1341,17 +1341,17 @@ msgstr "titre"
msgid "summary" msgid "summary"
msgstr "résumé" msgstr "résumé"
#: com/models.py:71 com/models.py:182 trombi/models.py:135 #: com/models.py:71 com/models.py:185 trombi/models.py:135
msgid "content" msgid "content"
msgstr "contenu" msgstr "contenu"
#: com/models.py:72 core/models.py:1101 launderette/models.py:86 #: com/models.py:72 core/models.py:1160 launderette/models.py:86
#: launderette/models.py:112 launderette/models.py:149 stock/models.py:59 #: launderette/models.py:112 launderette/models.py:149 stock/models.py:59
#: stock/models.py:98 #: stock/models.py:98
msgid "type" msgid "type"
msgstr "type" msgstr "type"
#: com/models.py:74 com/models.py:183 trombi/models.py:133 #: com/models.py:74 com/models.py:186 trombi/models.py:133
msgid "author" msgid "author"
msgstr "auteur" msgstr "auteur"
@ -1387,23 +1387,23 @@ msgstr "conclusion"
msgid "sent" msgid "sent"
msgstr "envoyé" msgstr "envoyé"
#: com/models.py:180 #: com/models.py:183
msgid "weekmail" msgid "weekmail"
msgstr "weekmail" msgstr "weekmail"
#: com/models.py:185 #: com/models.py:188
msgid "rank" msgid "rank"
msgstr "rang" msgstr "rang"
#: com/models.py:210 core/models.py:648 core/models.py:664 #: com/models.py:213 core/models.py:648 core/models.py:664
msgid "file" msgid "file"
msgstr "fichier" msgstr "fichier"
#: com/models.py:215 #: com/models.py:218
msgid "display time" msgid "display time"
msgstr "temps d'affichage" msgstr "temps d'affichage"
#: com/models.py:228 #: com/models.py:231
msgid "Begin date should be before end date" msgid "Begin date should be before end date"
msgstr "La date de début doit être avant celle de fin" msgstr "La date de début doit être avant celle de fin"
@ -1492,7 +1492,7 @@ msgstr "Type"
#: com/templates/com/weekmail.jinja:19 com/templates/com/weekmail.jinja:48 #: com/templates/com/weekmail.jinja:19 com/templates/com/weekmail.jinja:48
#: core/templates/core/base.jinja:307 forum/templates/forum/forum.jinja:29 #: core/templates/core/base.jinja:307 forum/templates/forum/forum.jinja:29
#: forum/templates/forum/forum.jinja:48 forum/templates/forum/main.jinja:26 #: forum/templates/forum/forum.jinja:48 forum/templates/forum/main.jinja:26
#: forum/views.py:168 #: forum/views.py:175
msgid "Title" msgid "Title"
msgstr "Titre" msgstr "Titre"
@ -1810,7 +1810,7 @@ msgstr "Astuce"
msgid "Final word" msgid "Final word"
msgstr "Le mot de la fin" msgstr "Le mot de la fin"
#: com/views.py:64 com/views.py:176 election/views.py:133 #: com/views.py:63 com/views.py:176 election/views.py:133
#: subscription/views.py:44 #: subscription/views.py:44
msgid "Start date" msgid "Start date"
msgstr "Date de début" msgstr "Date de début"
@ -2098,8 +2098,14 @@ msgid "A user with that username already exists"
msgstr "Un utilisateur de ce nom d'utilisateur existe déjà" msgstr "Un utilisateur de ce nom d'utilisateur existe déjà"
#: core/models.py:494 core/templates/core/macros.jinja:55 #: core/models.py:494 core/templates/core/macros.jinja:55
#: core/templates/core/user_detail.jinja:14 #: core/templates/core/user_detail.jinja:79
#: core/templates/core/user_detail.jinja:16 #: core/templates/core/user_detail.jinja:80
#: core/templates/core/user_detail.jinja:82
#: core/templates/core/user_detail.jinja:83
#: core/templates/core/user_detail.jinja:88
#: core/templates/core/user_detail.jinja:89
#: core/templates/core/user_detail.jinja:91
#: core/templates/core/user_detail.jinja:92
#: core/templates/core/user_edit.jinja:17 #: core/templates/core/user_edit.jinja:17
#: election/templates/election/election_detail.jinja:340 #: election/templates/election/election_detail.jinja:340
#: forum/templates/forum/macros.jinja:93 forum/templates/forum/macros.jinja:95 #: forum/templates/forum/macros.jinja:93 forum/templates/forum/macros.jinja:95
@ -2132,7 +2138,7 @@ msgstr "recevez une notification pour chaque rechargement"
msgid "file name" msgid "file name"
msgstr "nom du fichier" msgstr "nom du fichier"
#: core/models.py:647 core/models.py:862 #: core/models.py:647 core/models.py:919
msgid "parent" msgid "parent"
msgstr "parent" msgstr "parent"
@ -2148,11 +2154,11 @@ msgstr "miniature"
msgid "owner" msgid "owner"
msgstr "propriétaire" msgstr "propriétaire"
#: core/models.py:652 core/models.py:868 core/views/files.py:149 #: core/models.py:652 core/models.py:927 core/views/files.py:149
msgid "edit group" msgid "edit group"
msgstr "groupe d'édition" msgstr "groupe d'édition"
#: core/models.py:653 core/models.py:869 core/views/files.py:150 #: core/models.py:653 core/models.py:928 core/views/files.py:150
msgid "view group" msgid "view group"
msgstr "groupe de vue" msgstr "groupe de vue"
@ -2198,19 +2204,19 @@ msgstr "Un fichier de ce nom existe déjà"
msgid "You must provide a file" msgid "You must provide a file"
msgstr "Vous devez fournir un fichier" msgstr "Vous devez fournir un fichier"
#: core/models.py:800 #: core/models.py:857
msgid "Folder: " msgid "Folder: "
msgstr "Dossier : " msgstr "Dossier : "
#: core/models.py:802 #: core/models.py:859
msgid "File: " msgid "File: "
msgstr "Fichier : " msgstr "Fichier : "
#: core/models.py:854 #: core/models.py:911
msgid "page unix name" msgid "page unix name"
msgstr "nom unix de la page" msgstr "nom unix de la page"
#: core/models.py:858 #: core/models.py:915
msgid "" msgid ""
"Enter a valid page name. This value may contain only unaccented letters, " "Enter a valid page name. This value may contain only unaccented letters, "
"numbers and ./+/-/_ characters." "numbers and ./+/-/_ characters."
@ -2218,51 +2224,51 @@ msgstr ""
"Entrez un nom de page correct. Uniquement des lettres non accentuées, " "Entrez un nom de page correct. Uniquement des lettres non accentuées, "
"numéros, et ./+/-/_" "numéros, et ./+/-/_"
#: core/models.py:865 #: core/models.py:922
msgid "page name" msgid "page name"
msgstr "nom de la page" msgstr "nom de la page"
#: core/models.py:866 #: core/models.py:925
msgid "owner group" msgid "owner group"
msgstr "groupe propriétaire" msgstr "groupe propriétaire"
#: core/models.py:870 #: core/models.py:929
msgid "lock user" msgid "lock user"
msgstr "utilisateur bloquant" msgstr "utilisateur bloquant"
#: core/models.py:871 #: core/models.py:930
msgid "lock_timeout" msgid "lock_timeout"
msgstr "décompte du déblocage" msgstr "décompte du déblocage"
#: core/models.py:898 #: core/models.py:957
msgid "Duplicate page" msgid "Duplicate page"
msgstr "Une page de ce nom existe déjà" msgstr "Une page de ce nom existe déjà"
#: core/models.py:904 #: core/models.py:963
msgid "Loop in page tree" msgid "Loop in page tree"
msgstr "Boucle dans l'arborescence des pages" msgstr "Boucle dans l'arborescence des pages"
#: core/models.py:1055 #: core/models.py:1114
msgid "revision" msgid "revision"
msgstr "révision" msgstr "révision"
#: core/models.py:1056 #: core/models.py:1115
msgid "page title" msgid "page title"
msgstr "titre de la page" msgstr "titre de la page"
#: core/models.py:1057 #: core/models.py:1116
msgid "page content" msgid "page content"
msgstr "contenu de la page" msgstr "contenu de la page"
#: core/models.py:1099 #: core/models.py:1158
msgid "url" msgid "url"
msgstr "url" msgstr "url"
#: core/models.py:1100 #: core/models.py:1159
msgid "param" msgid "param"
msgstr "param" msgstr "param"
#: core/models.py:1103 #: core/models.py:1162
msgid "viewed" msgid "viewed"
msgstr "vue" msgstr "vue"
@ -2608,7 +2614,7 @@ msgstr "Tweeter"
msgid "Born: " msgid "Born: "
msgstr "Né le : " msgstr "Né le : "
#: core/templates/core/macros.jinja:69 core/templates/core/user_detail.jinja:48 #: core/templates/core/macros.jinja:69 core/templates/core/user_detail.jinja:71
msgid "Promo: " msgid "Promo: "
msgstr "Promo : " msgstr "Promo : "
@ -2937,29 +2943,62 @@ msgstr "Se désabonner"
msgid "%(user_name)s's profile" msgid "%(user_name)s's profile"
msgstr "Profil de %(user_name)s" msgstr "Profil de %(user_name)s"
#: core/templates/core/user_detail.jinja:33 #: core/templates/core/user_detail.jinja:34
msgid "Department: "
msgstr "Département : "
#: core/templates/core/user_detail.jinja:41
msgid "Option: " msgid "Option: "
msgstr "Filière : " msgstr "Filière : "
#: core/templates/core/user_detail.jinja:68 #: core/templates/core/user_detail.jinja:48
#: trombi/templates/trombi/export.jinja:20
msgid "Phone: "
msgstr "Téléphone : "
#: core/templates/core/user_detail.jinja:55
msgid "Address: "
msgstr "Adresse : "
#: core/templates/core/user_detail.jinja:62
msgid "Parents address: "
msgstr "Adresse des parents : "
#: core/templates/core/user_detail.jinja:96
#: core/templates/core/user_detail.jinja:97
#: core/templates/core/user_detail.jinja:99
#: core/templates/core/user_detail.jinja:100
#: core/templates/core/user_edit.jinja:31
msgid "Avatar"
msgstr "Avatar"
#: core/templates/core/user_detail.jinja:104
#: core/templates/core/user_detail.jinja:105
#: core/templates/core/user_detail.jinja:107
#: core/templates/core/user_detail.jinja:108
#: core/templates/core/user_edit.jinja:34
msgid "Scrub"
msgstr "Blouse"
#: core/templates/core/user_detail.jinja:133
msgid "Not subscribed" msgid "Not subscribed"
msgstr "Non cotisant" msgstr "Non cotisant"
#: core/templates/core/user_detail.jinja:70 #: core/templates/core/user_detail.jinja:135
#: subscription/templates/subscription/subscription.jinja:4 #: subscription/templates/subscription/subscription.jinja:4
#: subscription/templates/subscription/subscription.jinja:8 #: subscription/templates/subscription/subscription.jinja:8
msgid "New subscription" msgid "New subscription"
msgstr "Nouvelle cotisation" msgstr "Nouvelle cotisation"
#: core/templates/core/user_detail.jinja:82 #: core/templates/core/user_detail.jinja:148
msgid "Give gift" msgid "Give gift"
msgstr "Donner cadeau" msgstr "Donner cadeau"
#: core/templates/core/user_detail.jinja:87 #: core/templates/core/user_detail.jinja:153
msgid "Last given gift :" msgid "Last given gift :"
msgstr "Dernier cadeau donné :" msgstr "Dernier cadeau donné :"
#: core/templates/core/user_detail.jinja:97 #: core/templates/core/user_detail.jinja:163
msgid "No gift given yet" msgid "No gift given yet"
msgstr "Aucun cadeau donné pour l'instant" msgstr "Aucun cadeau donné pour l'instant"
@ -2983,18 +3022,10 @@ msgstr "Prendre une photo"
msgid "Current avatar: " msgid "Current avatar: "
msgstr "Avatar actuel : " msgstr "Avatar actuel : "
#: core/templates/core/user_edit.jinja:31
msgid "Avatar"
msgstr "Avatar"
#: core/templates/core/user_edit.jinja:33 #: core/templates/core/user_edit.jinja:33
msgid "Current scrub: " msgid "Current scrub: "
msgstr "Blouse actuelle : " msgstr "Blouse actuelle : "
#: core/templates/core/user_edit.jinja:34
msgid "Scrub"
msgstr "Blouse"
#: core/templates/core/user_edit.jinja:38 #: core/templates/core/user_edit.jinja:38
msgid "Username: " msgid "Username: "
msgstr "Nom d'utilisateur : " msgstr "Nom d'utilisateur : "
@ -4179,67 +4210,67 @@ msgstr "Début des candidatures"
msgid "End candidature" msgid "End candidature"
msgstr "Fin des candidatures" msgstr "Fin des candidatures"
#: forum/models.py:51 #: forum/models.py:56
msgid "is a category" msgid "is a category"
msgstr "est une catégorie" msgstr "est une catégorie"
#: forum/models.py:53 #: forum/models.py:58
msgid "owner club" msgid "owner club"
msgstr "club propriétaire" msgstr "club propriétaire"
#: forum/models.py:59 #: forum/models.py:64
msgid "number to choose a specific forum ordering" msgid "number to choose a specific forum ordering"
msgstr "numéro spécifiant l'ordre d'affichage" msgstr "numéro spécifiant l'ordre d'affichage"
#: forum/models.py:61 forum/models.py:188 #: forum/models.py:66 forum/models.py:196
msgid "the last message" msgid "the last message"
msgstr "le dernier message" msgstr "le dernier message"
#: forum/models.py:62 #: forum/models.py:67
msgid "number of topics" msgid "number of topics"
msgstr "nombre de sujets" msgstr "nombre de sujets"
#: forum/models.py:139 #: forum/models.py:144
msgid "You can not make loops in forums" msgid "You can not make loops in forums"
msgstr "Vous ne pouvez pas faire de boucles dans les forums" msgstr "Vous ne pouvez pas faire de boucles dans les forums"
#: forum/models.py:187 #: forum/models.py:195
msgid "subscribed users" msgid "subscribed users"
msgstr "utilisateurs abonnés" msgstr "utilisateurs abonnés"
#: forum/models.py:191 #: forum/models.py:199
msgid "number of messages" msgid "number of messages"
msgstr "nombre de messages" msgstr "nombre de messages"
#: forum/models.py:239 #: forum/models.py:247
msgid "message" msgid "message"
msgstr "message" msgstr "message"
#: forum/models.py:241 #: forum/models.py:249
msgid "readers" msgid "readers"
msgstr "lecteurs" msgstr "lecteurs"
#: forum/models.py:242 #: forum/models.py:250
msgid "is deleted" msgid "is deleted"
msgstr "est supprimé" msgstr "est supprimé"
#: forum/models.py:306 #: forum/models.py:314
msgid "Message edited by" msgid "Message edited by"
msgstr "Message édité par" msgstr "Message édité par"
#: forum/models.py:307 #: forum/models.py:315
msgid "Message deleted by" msgid "Message deleted by"
msgstr "Message supprimé par" msgstr "Message supprimé par"
#: forum/models.py:308 #: forum/models.py:316
msgid "Message undeleted by" msgid "Message undeleted by"
msgstr "Message restauré par" msgstr "Message restauré par"
#: forum/models.py:316 #: forum/models.py:324
msgid "action" msgid "action"
msgstr "action" msgstr "action"
#: forum/models.py:331 #: forum/models.py:339
msgid "last read date" msgid "last read date"
msgstr "dernière date de lecture" msgstr "dernière date de lecture"
@ -4315,11 +4346,11 @@ msgstr "Enlever des favoris"
msgid "Mark as favorite" msgid "Mark as favorite"
msgstr "Ajouter aux favoris" msgstr "Ajouter aux favoris"
#: forum/views.py:115 #: forum/views.py:122
msgid "Apply rights and club owner recursively" msgid "Apply rights and club owner recursively"
msgstr "Appliquer les droits et le club propriétaire récursivement" msgstr "Appliquer les droits et le club propriétaire récursivement"
#: forum/views.py:305 #: forum/views.py:312
#, python-format #, python-format
msgid "%(author)s said" msgid "%(author)s said"
msgstr "Citation de %(author)s" msgstr "Citation de %(author)s"
@ -4499,6 +4530,10 @@ msgstr "miniature"
msgid "Upload" msgid "Upload"
msgstr "Envoyer" msgstr "Envoyer"
#: sas/templates/sas/album.jinja:88
msgid "Template generation time: "
msgstr "Temps de génération du template : "
#: sas/templates/sas/main.jinja:34 #: sas/templates/sas/main.jinja:34
msgid "Latest albums" msgid "Latest albums"
msgstr "Derniers albums" msgstr "Derniers albums"
@ -5204,10 +5239,6 @@ msgstr "Date de naissance : "
msgid "Email: " msgid "Email: "
msgstr "Email : " msgstr "Email : "
#: trombi/templates/trombi/export.jinja:20
msgid "Phone: "
msgstr "Téléphone : "
#: trombi/templates/trombi/export.jinja:21 #: trombi/templates/trombi/export.jinja:21
msgid "City: " msgid "City: "
msgstr "Ville : " msgstr "Ville : "