mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-10-31 00:53:08 +00:00 
			
		
		
		
	Merge pull request #797 from ae-utbm/fix-image-injection
Better form for user submiting images
This commit is contained in:
		| @@ -61,6 +61,7 @@ | ||||
|         <p> | ||||
|           {{ form[field_name].label }} | ||||
|         </p> | ||||
|         {{ form[field_name].errors }} | ||||
|       {%- else -%} | ||||
|         <em>{% trans %}To edit your profile picture, ask a member of the AE{% endtrans %}</em> | ||||
|       {%- endif -%} | ||||
|   | ||||
| @@ -201,10 +201,7 @@ class RegisteringForm(UserCreationForm): | ||||
|  | ||||
|  | ||||
| class UserProfileForm(forms.ModelForm): | ||||
|     """Form handling the user profile, managing the files | ||||
|     This form is actually pretty bad and was made in the rush before the migration. It should be refactored. | ||||
|     TODO: refactor this form. | ||||
|     """ | ||||
|     """Form handling the user profile, managing the files""" | ||||
|  | ||||
|     class Meta: | ||||
|         model = User | ||||
| @@ -237,25 +234,35 @@ class UserProfileForm(forms.ModelForm): | ||||
|         ] | ||||
|         widgets = { | ||||
|             "date_of_birth": SelectDate, | ||||
|             "profile_pict": forms.ClearableFileInput, | ||||
|             "avatar_pict": forms.ClearableFileInput, | ||||
|             "scrub_pict": forms.ClearableFileInput, | ||||
|             "phone": RegionalPhoneNumberWidget, | ||||
|             "parent_phone": RegionalPhoneNumberWidget, | ||||
|             "quote": forms.Textarea, | ||||
|         } | ||||
|         labels = { | ||||
|             "profile_pict": _( | ||||
|                 "Profile: you need to be visible on the picture, in order to be recognized (e.g. by the barmen)" | ||||
|             ), | ||||
|             "avatar_pict": _("Avatar: used on the forum"), | ||||
|             "scrub_pict": _("Scrub: let other know how your scrub looks like!"), | ||||
|         } | ||||
|  | ||||
|     def generate_name(self, field_name, f): | ||||
|         field_name = field_name[:-4] | ||||
|         return field_name + str(self.instance.id) + "." + f.content_type.split("/")[-1] | ||||
|  | ||||
|     def __init__(self, *args, **kwargs): | ||||
|         super().__init__(*args, **kwargs) | ||||
|  | ||||
|         # Image fields are injected here to override the file field provided by the model | ||||
|         # This would be better if we could have a SithImage sort of model input instead of a generic SithFile | ||||
|         self.fields["profile_pict"] = forms.ImageField( | ||||
|             required=False, | ||||
|             label=_( | ||||
|                 "Profile: you need to be visible on the picture, in order to be recognized (e.g. by the barmen)" | ||||
|             ), | ||||
|         ) | ||||
|         self.fields["avatar_pict"] = forms.ImageField( | ||||
|             required=False, | ||||
|             label=_("Avatar: used on the forum"), | ||||
|         ) | ||||
|         self.fields["scrub_pict"] = forms.ImageField( | ||||
|             required=False, | ||||
|             label=_("Scrub: let other know how your scrub looks like!"), | ||||
|         ) | ||||
|  | ||||
|     def process(self, files): | ||||
|         avatar = self.instance.avatar_pict | ||||
|         profile = self.instance.profile_pict | ||||
| @@ -305,7 +312,7 @@ class UserProfileForm(forms.ModelForm): | ||||
|                         % { | ||||
|                             "file_name": f, | ||||
|                             "msg": _( | ||||
|                                 "Bad image format, only jpeg, png, and gif are accepted" | ||||
|                                 "Bad image format, only jpeg, png, webp and gif are accepted" | ||||
|                             ), | ||||
|                         }, | ||||
|                     ) | ||||
|   | ||||
| @@ -6,7 +6,7 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2024-08-21 15:30+0200\n" | ||||
| "POT-Creation-Date: 2024-08-27 17:02+0200\n" | ||||
| "PO-Revision-Date: 2016-07-18\n" | ||||
| "Last-Translator: Skia <skia@libskia.so>\n" | ||||
| "Language-Team: AE info <ae.info@utbm.fr>\n" | ||||
| @@ -219,7 +219,7 @@ msgstr "Compte" | ||||
| msgid "Company" | ||||
| msgstr "Entreprise" | ||||
|  | ||||
| #: accounting/models.py:312 core/models.py:311 sith/settings.py:404 | ||||
| #: accounting/models.py:312 core/models.py:311 sith/settings.py:413 | ||||
| #: stock/templates/stock/shopping_list_items.jinja:37 | ||||
| msgid "Other" | ||||
| msgstr "Autre" | ||||
| @@ -370,17 +370,17 @@ msgstr "Compte en banque : " | ||||
| #: core/templates/core/user_account_detail.jinja:66 | ||||
| #: core/templates/core/user_clubs.jinja:34 | ||||
| #: core/templates/core/user_clubs.jinja:63 | ||||
| #: core/templates/core/user_edit.jinja:53 | ||||
| #: core/templates/core/user_edit.jinja:57 | ||||
| #: core/templates/core/user_preferences.jinja:48 | ||||
| #: counter/templates/counter/last_ops.jinja:35 | ||||
| #: counter/templates/counter/last_ops.jinja:65 | ||||
| #: election/templates/election/election_detail.jinja:187 | ||||
| #: forum/templates/forum/macros.jinja:21 forum/templates/forum/macros.jinja:134 | ||||
| #: launderette/templates/launderette/launderette_admin.jinja:16 | ||||
| #: launderette/views.py:217 pedagogy/templates/pedagogy/guide.jinja:95 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:110 | ||||
| #: launderette/views.py:217 pedagogy/templates/pedagogy/guide.jinja:96 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:111 | ||||
| #: pedagogy/templates/pedagogy/uv_detail.jinja:185 | ||||
| #: sas/templates/sas/album.jinja:32 sas/templates/sas/moderation.jinja:18 | ||||
| #: sas/templates/sas/album.jinja:33 sas/templates/sas/moderation.jinja:18 | ||||
| #: sas/templates/sas/picture.jinja:48 | ||||
| #: stock/templates/stock/stock_shopping_list.jinja:43 | ||||
| #: stock/templates/stock/stock_shopping_list.jinja:69 | ||||
| @@ -433,10 +433,10 @@ msgstr "Nouveau compte club" | ||||
| #: forum/templates/forum/macros.jinja:20 forum/templates/forum/macros.jinja:62 | ||||
| #: forum/templates/forum/macros.jinja:128 | ||||
| #: launderette/templates/launderette/launderette_list.jinja:16 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:94 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:109 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:95 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:110 | ||||
| #: pedagogy/templates/pedagogy/uv_detail.jinja:184 | ||||
| #: sas/templates/sas/album.jinja:31 trombi/templates/trombi/detail.jinja:9 | ||||
| #: sas/templates/sas/album.jinja:32 trombi/templates/trombi/detail.jinja:9 | ||||
| #: trombi/templates/trombi/edit_profile.jinja:34 | ||||
| msgid "Edit" | ||||
| msgstr "Éditer" | ||||
| @@ -526,7 +526,7 @@ msgid "Effective amount" | ||||
| msgstr "Montant effectif" | ||||
|  | ||||
| #: accounting/templates/accounting/club_account_details.jinja:36 | ||||
| #: sith/settings.py:450 | ||||
| #: sith/settings.py:459 | ||||
| msgid "Closed" | ||||
| msgstr "Fermé" | ||||
|  | ||||
| @@ -1162,7 +1162,7 @@ msgid "There are no members in this club." | ||||
| msgstr "Il n'y a pas de membres dans ce club." | ||||
|  | ||||
| #: club/templates/club/club_members.jinja:80 | ||||
| #: core/templates/core/file_detail.jinja:19 core/views/forms.py:332 | ||||
| #: core/templates/core/file_detail.jinja:19 core/views/forms.py:339 | ||||
| #: launderette/views.py:217 trombi/templates/trombi/detail.jinja:19 | ||||
| msgid "Add" | ||||
| msgstr "Ajouter" | ||||
| @@ -1587,7 +1587,7 @@ msgstr "Type" | ||||
| #: com/templates/com/weekmail.jinja:19 com/templates/com/weekmail.jinja:48 | ||||
| #: forum/templates/forum/forum.jinja:28 forum/templates/forum/forum.jinja:47 | ||||
| #: forum/templates/forum/main.jinja:30 forum/views.py:246 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:88 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:89 | ||||
| msgid "Title" | ||||
| msgstr "Titre" | ||||
|  | ||||
| @@ -2387,7 +2387,7 @@ msgstr "403, Non autorisé" | ||||
| msgid "404, Not Found" | ||||
| msgstr "404. Non trouvé" | ||||
|  | ||||
| #: core/templates/core/500.jinja:12 | ||||
| #: core/templates/core/500.jinja:11 | ||||
| msgid "500, Server Error" | ||||
| msgstr "500, Erreur Serveur" | ||||
|  | ||||
| @@ -2479,7 +2479,7 @@ msgstr "Photos" | ||||
| #: eboutic/templates/eboutic/eboutic_main.jinja:22 | ||||
| #: eboutic/templates/eboutic/eboutic_makecommand.jinja:16 | ||||
| #: eboutic/templates/eboutic/eboutic_payment_result.jinja:4 | ||||
| #: sith/settings.py:403 sith/settings.py:411 | ||||
| #: sith/settings.py:412 sith/settings.py:420 | ||||
| msgid "Eboutic" | ||||
| msgstr "Eboutic" | ||||
|  | ||||
| @@ -2621,20 +2621,20 @@ msgstr "Propriétés" | ||||
| msgid "Owner: " | ||||
| msgstr "Propriétaire : " | ||||
|  | ||||
| #: core/templates/core/file_detail.jinja:26 sas/templates/sas/album.jinja:46 | ||||
| #: core/templates/core/file_detail.jinja:26 sas/templates/sas/album.jinja:47 | ||||
| #: sas/templates/sas/main.jinja:49 | ||||
| msgid "Clear clipboard" | ||||
| msgstr "Vider le presse-papier" | ||||
|  | ||||
| #: core/templates/core/file_detail.jinja:27 sas/templates/sas/album.jinja:33 | ||||
| #: core/templates/core/file_detail.jinja:27 sas/templates/sas/album.jinja:34 | ||||
| msgid "Cut" | ||||
| msgstr "Couper" | ||||
|  | ||||
| #: core/templates/core/file_detail.jinja:28 sas/templates/sas/album.jinja:34 | ||||
| #: core/templates/core/file_detail.jinja:28 sas/templates/sas/album.jinja:35 | ||||
| msgid "Paste" | ||||
| msgstr "Coller" | ||||
|  | ||||
| #: core/templates/core/file_detail.jinja:31 sas/templates/sas/album.jinja:40 | ||||
| #: core/templates/core/file_detail.jinja:31 sas/templates/sas/album.jinja:41 | ||||
| #: sas/templates/sas/main.jinja:43 | ||||
| msgid "Clipboard: " | ||||
| msgstr "Presse-papier : " | ||||
| @@ -2696,7 +2696,7 @@ msgid "Edit group" | ||||
| msgstr "Éditer le groupe" | ||||
|  | ||||
| #: core/templates/core/group_edit.jinja:9 | ||||
| #: core/templates/core/user_edit.jinja:235 | ||||
| #: core/templates/core/user_edit.jinja:268 | ||||
| #: core/templates/core/user_group.jinja:13 | ||||
| #: pedagogy/templates/pedagogy/uv_edit.jinja:36 | ||||
| msgid "Update" | ||||
| @@ -2771,23 +2771,23 @@ msgstr "Créneau" | ||||
| msgid "Tokens" | ||||
| msgstr "Jetons" | ||||
|  | ||||
| #: core/templates/core/macros.jinja:123 core/templates/core/macros.jinja:125 | ||||
| #: core/templates/core/macros.jinja:163 core/templates/core/macros.jinja:165 | ||||
| msgid "Previous" | ||||
| msgstr "Précédent" | ||||
|  | ||||
| #: core/templates/core/macros.jinja:129 | ||||
| #: core/templates/core/macros.jinja:169 | ||||
| msgid "current" | ||||
| msgstr "actuel" | ||||
|  | ||||
| #: core/templates/core/macros.jinja:135 core/templates/core/macros.jinja:137 | ||||
| #: core/templates/core/macros.jinja:175 core/templates/core/macros.jinja:177 | ||||
| msgid "Next" | ||||
| msgstr "Suivant" | ||||
|  | ||||
| #: core/templates/core/macros.jinja:153 | ||||
| #: core/templates/core/macros.jinja:193 | ||||
| msgid "Select All" | ||||
| msgstr "Tout sélectionner" | ||||
|  | ||||
| #: core/templates/core/macros.jinja:154 | ||||
| #: core/templates/core/macros.jinja:194 | ||||
| msgid "Unselect All" | ||||
| msgstr "Tout désélectionner" | ||||
|  | ||||
| @@ -3194,31 +3194,31 @@ msgstr "Activer la caméra" | ||||
| msgid "Take a picture" | ||||
| msgstr "Prendre une photo" | ||||
|  | ||||
| #: core/templates/core/user_edit.jinja:60 | ||||
| #: core/templates/core/user_edit.jinja:64 | ||||
| msgid "To edit your profile picture, ask a member of the AE" | ||||
| msgstr "Pour changer votre photo de profil, demandez à un membre de l'AE" | ||||
|  | ||||
| #: core/templates/core/user_edit.jinja:142 | ||||
| #: core/templates/core/user_edit.jinja:173 | ||||
| msgid "captured" | ||||
| msgstr "capturé" | ||||
|  | ||||
| #: core/templates/core/user_edit.jinja:163 | ||||
| #: core/templates/core/user_edit.jinja:196 | ||||
| msgid "Edit user profile" | ||||
| msgstr "Éditer le profil de l'utilisateur" | ||||
|  | ||||
| #: core/templates/core/user_edit.jinja:225 | ||||
| #: core/templates/core/user_edit.jinja:258 | ||||
| msgid "Change my password" | ||||
| msgstr "Changer mon mot de passe" | ||||
|  | ||||
| #: core/templates/core/user_edit.jinja:230 | ||||
| #: core/templates/core/user_edit.jinja:263 | ||||
| msgid "Change user password" | ||||
| msgstr "Changer le mot de passe" | ||||
|  | ||||
| #: core/templates/core/user_edit.jinja:240 | ||||
| #: core/templates/core/user_edit.jinja:273 | ||||
| msgid "Username:" | ||||
| msgstr "Nom d'utilisateur : " | ||||
|  | ||||
| #: core/templates/core/user_edit.jinja:243 | ||||
| #: core/templates/core/user_edit.jinja:276 | ||||
| msgid "Account number:" | ||||
| msgstr "Numéro de compte : " | ||||
|  | ||||
| @@ -3308,12 +3308,12 @@ msgstr "Photos de %(user_name)s" | ||||
| msgid "Download all my pictures" | ||||
| msgstr "Télécharger toutes mes photos" | ||||
|  | ||||
| #: core/templates/core/user_pictures.jinja:49 sas/templates/sas/album.jinja:74 | ||||
| #: core/templates/core/user_pictures.jinja:49 sas/templates/sas/album.jinja:75 | ||||
| #: sas/templates/sas/macros.jinja:16 | ||||
| msgid "To be moderated" | ||||
| msgstr "A modérer" | ||||
|  | ||||
| #: core/templates/core/user_pictures.jinja:130 | ||||
| #: core/templates/core/user_pictures.jinja:136 | ||||
| msgid "pictures" | ||||
| msgstr "photos" | ||||
|  | ||||
| @@ -3508,12 +3508,12 @@ msgid "Moderate pictures" | ||||
| msgstr "Modérer les photos" | ||||
|  | ||||
| #: core/templates/core/user_tools.jinja:173 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:21 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:22 | ||||
| msgid "Create UV" | ||||
| msgstr "Créer UV" | ||||
|  | ||||
| #: core/templates/core/user_tools.jinja:174 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:24 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:25 | ||||
| #: trombi/templates/trombi/detail.jinja:10 | ||||
| msgid "Moderate comments" | ||||
| msgstr "Modérer les commentaires" | ||||
| @@ -3538,7 +3538,7 @@ msgstr "Autres outils" | ||||
| msgid "Trombi tools" | ||||
| msgstr "Outils Trombi" | ||||
|  | ||||
| #: core/templatetags/renderer.py:84 | ||||
| #: core/templatetags/renderer.py:89 | ||||
| #, python-format | ||||
| msgid "%(nb_days)d day, %(remainder)s" | ||||
| msgid_plural "%(nb_days)d days, %(remainder)s" | ||||
| @@ -3554,7 +3554,7 @@ msgstr "Ajouter un nouveau dossier" | ||||
| msgid "Error creating folder %(folder_name)s: %(msg)s" | ||||
| msgstr "Erreur de création du dossier %(folder_name)s : %(msg)s" | ||||
|  | ||||
| #: core/views/files.py:154 core/views/forms.py:297 core/views/forms.py:304 | ||||
| #: core/views/files.py:154 core/views/forms.py:304 core/views/forms.py:311 | ||||
| #: sas/views.py:81 | ||||
| #, python-format | ||||
| msgid "Error uploading file %(file_name)s: %(msg)s" | ||||
| @@ -3652,7 +3652,7 @@ msgstr "Choisir un utilisateur" | ||||
| msgid "Username, email, or account number" | ||||
| msgstr "Nom d'utilisateur, email, ou numéro de compte AE" | ||||
|  | ||||
| #: core/views/forms.py:249 | ||||
| #: core/views/forms.py:254 | ||||
| msgid "" | ||||
| "Profile: you need to be visible on the picture, in order to be recognized (e." | ||||
| "g. by the barmen)" | ||||
| @@ -3660,36 +3660,36 @@ msgstr "" | ||||
| "Photo de profil: vous devez être visible sur la photo afin d'être reconnu " | ||||
| "(par exemple par les barmen)" | ||||
|  | ||||
| #: core/views/forms.py:251 | ||||
| #: core/views/forms.py:259 | ||||
| msgid "Avatar: used on the forum" | ||||
| msgstr "Avatar : utilisé sur le forum" | ||||
|  | ||||
| #: core/views/forms.py:252 | ||||
| #: core/views/forms.py:263 | ||||
| msgid "Scrub: let other know how your scrub looks like!" | ||||
| msgstr "Blouse : montrez aux autres à quoi ressemble votre blouse !" | ||||
|  | ||||
| #: core/views/forms.py:308 | ||||
| msgid "Bad image format, only jpeg, png, and gif are accepted" | ||||
| msgstr "Mauvais format d'image, seuls les jpeg, png, et gif sont acceptés" | ||||
| #: core/views/forms.py:315 | ||||
| msgid "Bad image format, only jpeg, png, webp and gif are accepted" | ||||
| msgstr "Mauvais format d'image, seuls les jpeg, png, webp et gif sont acceptés" | ||||
|  | ||||
| #: core/views/forms.py:329 | ||||
| #: core/views/forms.py:336 | ||||
| msgid "Godfather / Godmother" | ||||
| msgstr "Parrain / Marraine" | ||||
|  | ||||
| #: core/views/forms.py:330 | ||||
| #: core/views/forms.py:337 | ||||
| msgid "Godchild" | ||||
| msgstr "Fillot / Fillote" | ||||
|  | ||||
| #: core/views/forms.py:335 counter/forms.py:67 trombi/views.py:149 | ||||
| #: core/views/forms.py:342 counter/forms.py:67 trombi/views.py:149 | ||||
| msgid "Select user" | ||||
| msgstr "Choisir un utilisateur" | ||||
|  | ||||
| #: core/views/forms.py:348 core/views/forms.py:366 election/models.py:22 | ||||
| #: core/views/forms.py:355 core/views/forms.py:373 election/models.py:22 | ||||
| #: election/views.py:147 | ||||
| msgid "edit groups" | ||||
| msgstr "groupe d'édition" | ||||
|  | ||||
| #: core/views/forms.py:351 core/views/forms.py:369 election/models.py:29 | ||||
| #: core/views/forms.py:358 core/views/forms.py:376 election/models.py:29 | ||||
| #: election/views.py:150 | ||||
| msgid "view groups" | ||||
| msgstr "groupe de vue" | ||||
| @@ -3710,7 +3710,7 @@ msgstr "Nous n'avons pas réussi à vérifier que cette adresse mail existe." | ||||
| msgid "Family" | ||||
| msgstr "Famille" | ||||
|  | ||||
| #: core/views/user.py:207 sas/templates/sas/album.jinja:63 | ||||
| #: core/views/user.py:207 sas/templates/sas/album.jinja:64 | ||||
| #: trombi/templates/trombi/export.jinja:25 | ||||
| #: trombi/templates/trombi/user_profile.jinja:11 | ||||
| msgid "Pictures" | ||||
| @@ -3889,8 +3889,8 @@ msgstr "quantité" | ||||
| msgid "Sith account" | ||||
| msgstr "Compte utilisateur" | ||||
|  | ||||
| #: counter/models.py:683 sith/settings.py:396 sith/settings.py:401 | ||||
| #: sith/settings.py:421 | ||||
| #: counter/models.py:683 sith/settings.py:405 sith/settings.py:410 | ||||
| #: sith/settings.py:430 | ||||
| msgid "Credit card" | ||||
| msgstr "Carte bancaire" | ||||
|  | ||||
| @@ -4926,12 +4926,12 @@ msgid "Washing and drying" | ||||
| msgstr "Lavage et séchage" | ||||
|  | ||||
| #: launderette/templates/launderette/launderette_book.jinja:27 | ||||
| #: sith/settings.py:635 | ||||
| #: sith/settings.py:644 | ||||
| msgid "Washing" | ||||
| msgstr "Lavage" | ||||
|  | ||||
| #: launderette/templates/launderette/launderette_book.jinja:31 | ||||
| #: sith/settings.py:635 | ||||
| #: sith/settings.py:644 | ||||
| msgid "Drying" | ||||
| msgstr "Séchage" | ||||
|  | ||||
| @@ -5127,30 +5127,30 @@ msgstr "signalant" | ||||
| msgid "reason" | ||||
| msgstr "raison" | ||||
|  | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:4 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:5 | ||||
| msgid "UV Guide" | ||||
| msgstr "Guide des UVs" | ||||
|  | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:55 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:56 | ||||
| #, python-format | ||||
| msgid "%(display_name)s" | ||||
| msgstr "%(display_name)s" | ||||
|  | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:69 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:70 | ||||
| #, python-format | ||||
| msgid "%(credit_type)s" | ||||
| msgstr "%(credit_type)s" | ||||
|  | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:87 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:88 | ||||
| #: pedagogy/templates/pedagogy/moderation.jinja:12 | ||||
| msgid "UV" | ||||
| msgstr "UE" | ||||
|  | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:89 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:90 | ||||
| msgid "Department" | ||||
| msgstr "Département" | ||||
|  | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:90 | ||||
| #: pedagogy/templates/pedagogy/guide.jinja:91 | ||||
| msgid "Credit type" | ||||
| msgstr "Type de crédit" | ||||
|  | ||||
| @@ -5335,20 +5335,20 @@ msgstr "Utilisateur à sélectionner" | ||||
| msgid "picture" | ||||
| msgstr "photo" | ||||
|  | ||||
| #: sas/templates/sas/album.jinja:9 sas/templates/sas/main.jinja:8 | ||||
| #: sas/templates/sas/album.jinja:10 sas/templates/sas/main.jinja:8 | ||||
| #: sas/templates/sas/main.jinja:17 sas/templates/sas/picture.jinja:8 | ||||
| msgid "SAS" | ||||
| msgstr "SAS" | ||||
|  | ||||
| #: sas/templates/sas/album.jinja:52 sas/templates/sas/moderation.jinja:10 | ||||
| #: sas/templates/sas/album.jinja:53 sas/templates/sas/moderation.jinja:10 | ||||
| msgid "Albums" | ||||
| msgstr "Albums" | ||||
|  | ||||
| #: sas/templates/sas/album.jinja:117 | ||||
| #: sas/templates/sas/album.jinja:97 | ||||
| msgid "Upload" | ||||
| msgstr "Envoyer" | ||||
|  | ||||
| #: sas/templates/sas/album.jinja:124 | ||||
| #: sas/templates/sas/album.jinja:104 | ||||
| msgid "Template generation time: " | ||||
| msgstr "Temps de génération du template : " | ||||
|  | ||||
| @@ -5401,380 +5401,380 @@ msgstr "Erreur de création de l'album %(album)s : %(msg)s" | ||||
| msgid "Add user" | ||||
| msgstr "Ajouter une personne" | ||||
|  | ||||
| #: sith/settings.py:247 sith/settings.py:458 | ||||
| #: sith/settings.py:247 sith/settings.py:467 | ||||
| msgid "English" | ||||
| msgstr "Anglais" | ||||
|  | ||||
| #: sith/settings.py:247 sith/settings.py:457 | ||||
| #: sith/settings.py:247 sith/settings.py:466 | ||||
| msgid "French" | ||||
| msgstr "Français" | ||||
|  | ||||
| #: sith/settings.py:377 | ||||
| #: sith/settings.py:386 | ||||
| msgid "TC" | ||||
| msgstr "TC" | ||||
|  | ||||
| #: sith/settings.py:378 | ||||
| #: sith/settings.py:387 | ||||
| msgid "IMSI" | ||||
| msgstr "IMSI" | ||||
|  | ||||
| #: sith/settings.py:379 | ||||
| #: sith/settings.py:388 | ||||
| msgid "IMAP" | ||||
| msgstr "IMAP" | ||||
|  | ||||
| #: sith/settings.py:380 | ||||
| #: sith/settings.py:389 | ||||
| msgid "INFO" | ||||
| msgstr "INFO" | ||||
|  | ||||
| #: sith/settings.py:381 | ||||
| #: sith/settings.py:390 | ||||
| msgid "GI" | ||||
| msgstr "GI" | ||||
|  | ||||
| #: sith/settings.py:382 sith/settings.py:468 | ||||
| #: sith/settings.py:391 sith/settings.py:477 | ||||
| msgid "E" | ||||
| msgstr "E" | ||||
|  | ||||
| #: sith/settings.py:383 | ||||
| #: sith/settings.py:392 | ||||
| msgid "EE" | ||||
| msgstr "EE" | ||||
|  | ||||
| #: sith/settings.py:384 | ||||
| #: sith/settings.py:393 | ||||
| msgid "GESC" | ||||
| msgstr "GESC" | ||||
|  | ||||
| #: sith/settings.py:385 | ||||
| #: sith/settings.py:394 | ||||
| msgid "GMC" | ||||
| msgstr "GMC" | ||||
|  | ||||
| #: sith/settings.py:386 | ||||
| #: sith/settings.py:395 | ||||
| msgid "MC" | ||||
| msgstr "MC" | ||||
|  | ||||
| #: sith/settings.py:387 | ||||
| #: sith/settings.py:396 | ||||
| msgid "EDIM" | ||||
| msgstr "EDIM" | ||||
|  | ||||
| #: sith/settings.py:388 | ||||
| #: sith/settings.py:397 | ||||
| msgid "Humanities" | ||||
| msgstr "Humanités" | ||||
|  | ||||
| #: sith/settings.py:389 | ||||
| #: sith/settings.py:398 | ||||
| msgid "N/A" | ||||
| msgstr "N/A" | ||||
|  | ||||
| #: sith/settings.py:393 sith/settings.py:400 sith/settings.py:419 | ||||
| #: sith/settings.py:402 sith/settings.py:409 sith/settings.py:428 | ||||
| msgid "Check" | ||||
| msgstr "Chèque" | ||||
|  | ||||
| #: sith/settings.py:394 sith/settings.py:402 sith/settings.py:420 | ||||
| #: sith/settings.py:403 sith/settings.py:411 sith/settings.py:429 | ||||
| msgid "Cash" | ||||
| msgstr "Espèces" | ||||
|  | ||||
| #: sith/settings.py:395 | ||||
| #: sith/settings.py:404 | ||||
| msgid "Transfert" | ||||
| msgstr "Virement" | ||||
|  | ||||
| #: sith/settings.py:408 | ||||
| #: sith/settings.py:417 | ||||
| msgid "Belfort" | ||||
| msgstr "Belfort" | ||||
|  | ||||
| #: sith/settings.py:409 | ||||
| #: sith/settings.py:418 | ||||
| msgid "Sevenans" | ||||
| msgstr "Sevenans" | ||||
|  | ||||
| #: sith/settings.py:410 | ||||
| #: sith/settings.py:419 | ||||
| msgid "Montbéliard" | ||||
| msgstr "Montbéliard" | ||||
|  | ||||
| #: sith/settings.py:438 | ||||
| #: sith/settings.py:447 | ||||
| msgid "Free" | ||||
| msgstr "Libre" | ||||
|  | ||||
| #: sith/settings.py:439 | ||||
| #: sith/settings.py:448 | ||||
| msgid "CS" | ||||
| msgstr "CS" | ||||
|  | ||||
| #: sith/settings.py:440 | ||||
| #: sith/settings.py:449 | ||||
| msgid "TM" | ||||
| msgstr "TM" | ||||
|  | ||||
| #: sith/settings.py:441 | ||||
| #: sith/settings.py:450 | ||||
| msgid "OM" | ||||
| msgstr "OM" | ||||
|  | ||||
| #: sith/settings.py:442 | ||||
| #: sith/settings.py:451 | ||||
| msgid "QC" | ||||
| msgstr "QC" | ||||
|  | ||||
| #: sith/settings.py:443 | ||||
| #: sith/settings.py:452 | ||||
| msgid "EC" | ||||
| msgstr "EC" | ||||
|  | ||||
| #: sith/settings.py:444 | ||||
| #: sith/settings.py:453 | ||||
| msgid "RN" | ||||
| msgstr "RN" | ||||
|  | ||||
| #: sith/settings.py:445 | ||||
| #: sith/settings.py:454 | ||||
| msgid "ST" | ||||
| msgstr "ST" | ||||
|  | ||||
| #: sith/settings.py:446 | ||||
| #: sith/settings.py:455 | ||||
| msgid "EXT" | ||||
| msgstr "EXT" | ||||
|  | ||||
| #: sith/settings.py:451 | ||||
| #: sith/settings.py:460 | ||||
| msgid "Autumn" | ||||
| msgstr "Automne" | ||||
|  | ||||
| #: sith/settings.py:452 | ||||
| #: sith/settings.py:461 | ||||
| msgid "Spring" | ||||
| msgstr "Printemps" | ||||
|  | ||||
| #: sith/settings.py:453 | ||||
| #: sith/settings.py:462 | ||||
| msgid "Autumn and spring" | ||||
| msgstr "Automne et printemps" | ||||
|  | ||||
| #: sith/settings.py:459 | ||||
| #: sith/settings.py:468 | ||||
| msgid "German" | ||||
| msgstr "Allemand" | ||||
|  | ||||
| #: sith/settings.py:460 | ||||
| #: sith/settings.py:469 | ||||
| msgid "Spanish" | ||||
| msgstr "Espagnol" | ||||
|  | ||||
| #: sith/settings.py:464 | ||||
| #: sith/settings.py:473 | ||||
| msgid "A" | ||||
| msgstr "A" | ||||
|  | ||||
| #: sith/settings.py:465 | ||||
| #: sith/settings.py:474 | ||||
| msgid "B" | ||||
| msgstr "B" | ||||
|  | ||||
| #: sith/settings.py:466 | ||||
| #: sith/settings.py:475 | ||||
| msgid "C" | ||||
| msgstr "C" | ||||
|  | ||||
| #: sith/settings.py:467 | ||||
| #: sith/settings.py:476 | ||||
| msgid "D" | ||||
| msgstr "D" | ||||
|  | ||||
| #: sith/settings.py:469 | ||||
| #: sith/settings.py:478 | ||||
| msgid "FX" | ||||
| msgstr "FX" | ||||
|  | ||||
| #: sith/settings.py:470 | ||||
| #: sith/settings.py:479 | ||||
| msgid "F" | ||||
| msgstr "F" | ||||
|  | ||||
| #: sith/settings.py:471 | ||||
| #: sith/settings.py:480 | ||||
| msgid "Abs" | ||||
| msgstr "Abs" | ||||
|  | ||||
| #: sith/settings.py:475 | ||||
| #: sith/settings.py:484 | ||||
| msgid "Selling deletion" | ||||
| msgstr "Suppression de vente" | ||||
|  | ||||
| #: sith/settings.py:476 | ||||
| #: sith/settings.py:485 | ||||
| msgid "Refilling deletion" | ||||
| msgstr "Suppression de rechargement" | ||||
|  | ||||
| #: sith/settings.py:513 | ||||
| #: sith/settings.py:522 | ||||
| msgid "One semester" | ||||
| msgstr "Un semestre, 20 €" | ||||
|  | ||||
| #: sith/settings.py:514 | ||||
| #: sith/settings.py:523 | ||||
| msgid "Two semesters" | ||||
| msgstr "Deux semestres, 35 €" | ||||
|  | ||||
| #: sith/settings.py:516 | ||||
| #: sith/settings.py:525 | ||||
| msgid "Common core cursus" | ||||
| msgstr "Cursus tronc commun, 60 €" | ||||
|  | ||||
| #: sith/settings.py:520 | ||||
| #: sith/settings.py:529 | ||||
| msgid "Branch cursus" | ||||
| msgstr "Cursus branche, 60 €" | ||||
|  | ||||
| #: sith/settings.py:521 | ||||
| #: sith/settings.py:530 | ||||
| msgid "Alternating cursus" | ||||
| msgstr "Cursus alternant, 30 €" | ||||
|  | ||||
| #: sith/settings.py:522 | ||||
| #: sith/settings.py:531 | ||||
| msgid "Honorary member" | ||||
| msgstr "Membre honoraire, 0 €" | ||||
|  | ||||
| #: sith/settings.py:523 | ||||
| #: sith/settings.py:532 | ||||
| msgid "Assidu member" | ||||
| msgstr "Membre d'Assidu, 0 €" | ||||
|  | ||||
| #: sith/settings.py:524 | ||||
| #: sith/settings.py:533 | ||||
| msgid "Amicale/DOCEO member" | ||||
| msgstr "Membre de l'Amicale/DOCEO, 0 €" | ||||
|  | ||||
| #: sith/settings.py:525 | ||||
| #: sith/settings.py:534 | ||||
| msgid "UT network member" | ||||
| msgstr "Cotisant du réseau UT, 0 €" | ||||
|  | ||||
| #: sith/settings.py:526 | ||||
| #: sith/settings.py:535 | ||||
| msgid "CROUS member" | ||||
| msgstr "Membres du CROUS, 0 €" | ||||
|  | ||||
| #: sith/settings.py:527 | ||||
| #: sith/settings.py:536 | ||||
| msgid "Sbarro/ESTA member" | ||||
| msgstr "Membre de Sbarro ou de l'ESTA, 20 €" | ||||
|  | ||||
| #: sith/settings.py:529 | ||||
| #: sith/settings.py:538 | ||||
| msgid "One semester Welcome Week" | ||||
| msgstr "Un semestre Welcome Week" | ||||
|  | ||||
| #: sith/settings.py:533 | ||||
| #: sith/settings.py:542 | ||||
| msgid "One month for free" | ||||
| msgstr "Un mois gratuit" | ||||
|  | ||||
| #: sith/settings.py:534 | ||||
| #: sith/settings.py:543 | ||||
| msgid "Two months for free" | ||||
| msgstr "Deux mois gratuits" | ||||
|  | ||||
| #: sith/settings.py:535 | ||||
| #: sith/settings.py:544 | ||||
| msgid "Eurok's volunteer" | ||||
| msgstr "Bénévole Eurockéennes" | ||||
|  | ||||
| #: sith/settings.py:537 | ||||
| #: sith/settings.py:546 | ||||
| msgid "Six weeks for free" | ||||
| msgstr "6 semaines gratuites" | ||||
|  | ||||
| #: sith/settings.py:541 | ||||
| #: sith/settings.py:550 | ||||
| msgid "One day" | ||||
| msgstr "Un jour" | ||||
|  | ||||
| #: sith/settings.py:542 | ||||
| #: sith/settings.py:551 | ||||
| msgid "GA staff member" | ||||
| msgstr "Membre staff GA (2 semaines), 1 €" | ||||
|  | ||||
| #: sith/settings.py:545 | ||||
| #: sith/settings.py:554 | ||||
| msgid "One semester (-20%)" | ||||
| msgstr "Un semestre (-20%), 12 €" | ||||
|  | ||||
| #: sith/settings.py:550 | ||||
| #: sith/settings.py:559 | ||||
| msgid "Two semesters (-20%)" | ||||
| msgstr "Deux semestres (-20%), 22 €" | ||||
|  | ||||
| #: sith/settings.py:555 | ||||
| #: sith/settings.py:564 | ||||
| msgid "Common core cursus (-20%)" | ||||
| msgstr "Cursus tronc commun (-20%), 36 €" | ||||
|  | ||||
| #: sith/settings.py:560 | ||||
| #: sith/settings.py:569 | ||||
| msgid "Branch cursus (-20%)" | ||||
| msgstr "Cursus branche (-20%), 36 €" | ||||
|  | ||||
| #: sith/settings.py:565 | ||||
| #: sith/settings.py:574 | ||||
| msgid "Alternating cursus (-20%)" | ||||
| msgstr "Cursus alternant (-20%), 24 €" | ||||
|  | ||||
| #: sith/settings.py:571 | ||||
| #: sith/settings.py:580 | ||||
| msgid "One year for free(CA offer)" | ||||
| msgstr "Une année offerte (Offre CA)" | ||||
|  | ||||
| #: sith/settings.py:591 | ||||
| #: sith/settings.py:600 | ||||
| msgid "President" | ||||
| msgstr "Président⸱e" | ||||
|  | ||||
| #: sith/settings.py:592 | ||||
| #: sith/settings.py:601 | ||||
| msgid "Vice-President" | ||||
| msgstr "Vice-Président⸱e" | ||||
|  | ||||
| #: sith/settings.py:593 | ||||
| #: sith/settings.py:602 | ||||
| msgid "Treasurer" | ||||
| msgstr "Trésorier⸱e" | ||||
|  | ||||
| #: sith/settings.py:594 | ||||
| #: sith/settings.py:603 | ||||
| msgid "Communication supervisor" | ||||
| msgstr "Responsable communication" | ||||
|  | ||||
| #: sith/settings.py:595 | ||||
| #: sith/settings.py:604 | ||||
| msgid "Secretary" | ||||
| msgstr "Secrétaire" | ||||
|  | ||||
| #: sith/settings.py:596 | ||||
| #: sith/settings.py:605 | ||||
| msgid "IT supervisor" | ||||
| msgstr "Responsable info" | ||||
|  | ||||
| #: sith/settings.py:597 | ||||
| #: sith/settings.py:606 | ||||
| msgid "Board member" | ||||
| msgstr "Membre du bureau" | ||||
|  | ||||
| #: sith/settings.py:598 | ||||
| #: sith/settings.py:607 | ||||
| msgid "Active member" | ||||
| msgstr "Membre actif⸱ve" | ||||
|  | ||||
| #: sith/settings.py:599 | ||||
| #: sith/settings.py:608 | ||||
| msgid "Curious" | ||||
| msgstr "Curieux⸱euse" | ||||
|  | ||||
| #: sith/settings.py:639 | ||||
| #: sith/settings.py:648 | ||||
| msgid "A new poster needs to be moderated" | ||||
| msgstr "Une nouvelle affiche a besoin d'être modérée" | ||||
|  | ||||
| #: sith/settings.py:640 | ||||
| #: sith/settings.py:649 | ||||
| msgid "A new mailing list needs to be moderated" | ||||
| msgstr "Une nouvelle mailing list a besoin d'être modérée" | ||||
|  | ||||
| #: sith/settings.py:643 | ||||
| #: sith/settings.py:652 | ||||
| msgid "A new pedagogy comment has been signaled for moderation" | ||||
| msgstr "" | ||||
| "Un nouveau commentaire de la pédagogie a été signalé pour la modération" | ||||
|  | ||||
| #: sith/settings.py:645 | ||||
| #: sith/settings.py:654 | ||||
| #, python-format | ||||
| msgid "There are %s fresh news to be moderated" | ||||
| msgstr "Il y a %s nouvelles toutes fraîches à modérer" | ||||
|  | ||||
| #: sith/settings.py:646 | ||||
| #: sith/settings.py:655 | ||||
| msgid "New files to be moderated" | ||||
| msgstr "Nouveaux fichiers à modérer" | ||||
|  | ||||
| #: sith/settings.py:647 | ||||
| #: sith/settings.py:656 | ||||
| #, python-format | ||||
| msgid "There are %s pictures to be moderated in the SAS" | ||||
| msgstr "Il y a %s photos à modérer dans le SAS" | ||||
|  | ||||
| #: sith/settings.py:648 | ||||
| #: sith/settings.py:657 | ||||
| msgid "You've been identified on some pictures" | ||||
| msgstr "Vous avez été identifié sur des photos" | ||||
|  | ||||
| #: sith/settings.py:649 | ||||
| #: sith/settings.py:658 | ||||
| #, python-format | ||||
| msgid "You just refilled of %s €" | ||||
| msgstr "Vous avez rechargé votre compte de %s€" | ||||
|  | ||||
| #: sith/settings.py:650 | ||||
| #: sith/settings.py:659 | ||||
| #, python-format | ||||
| msgid "You just bought %s" | ||||
| msgstr "Vous avez acheté %s" | ||||
|  | ||||
| #: sith/settings.py:651 | ||||
| #: sith/settings.py:660 | ||||
| msgid "You have a notification" | ||||
| msgstr "Vous avez une notification" | ||||
|  | ||||
| #: sith/settings.py:663 | ||||
| #: sith/settings.py:672 | ||||
| msgid "Success!" | ||||
| msgstr "Succès !" | ||||
|  | ||||
| #: sith/settings.py:664 | ||||
| #: sith/settings.py:673 | ||||
| msgid "Fail!" | ||||
| msgstr "Échec !" | ||||
|  | ||||
| #: sith/settings.py:665 | ||||
| #: sith/settings.py:674 | ||||
| msgid "You successfully posted an article in the Weekmail" | ||||
| msgstr "Article posté avec succès dans le Weekmail" | ||||
|  | ||||
| #: sith/settings.py:666 | ||||
| #: sith/settings.py:675 | ||||
| msgid "You successfully edited an article in the Weekmail" | ||||
| msgstr "Article édité avec succès dans le Weekmail" | ||||
|  | ||||
| #: sith/settings.py:667 | ||||
| #: sith/settings.py:676 | ||||
| msgid "You successfully sent the Weekmail" | ||||
| msgstr "Weekmail envoyé avec succès" | ||||
|  | ||||
| #: sith/settings.py:675 | ||||
| #: sith/settings.py:684 | ||||
| msgid "AE tee-shirt" | ||||
| msgstr "Tee-shirt AE" | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user