diff --git a/club/models.py b/club/models.py index 8ee448b8..383db7f8 100644 --- a/club/models.py +++ b/club/models.py @@ -296,6 +296,9 @@ class Mailing(models.Model): def can_view(self, user): return self.club.has_rights_in_club(user) + def can_be_edited_by(self, user): + return self.club.has_rights_in_club(user) + def delete(self): for sub in self.subscriptions.all(): sub.delete() diff --git a/club/views.py b/club/views.py index 7cc4cfb7..ab0e54eb 100644 --- a/club/views.py +++ b/club/views.py @@ -509,6 +509,9 @@ class ClubMailingView(ClubTabsMixin, ListView): kwargs['has_objects'] = len(kwargs['object_list']) > 0 return kwargs + def get_object(self): + return self.club + class MailingGenericCreateView(CreateView, SingleObjectMixin): """ diff --git a/com/models.py b/com/models.py index 3069f8bd..b74e7904 100644 --- a/com/models.py +++ b/com/models.py @@ -217,14 +217,16 @@ class Poster(models.Model): moderator = models.ForeignKey(User, related_name="moderated_posters", verbose_name=_("moderator"), null=True, blank=True) def save(self, *args, **kwargs): - if self.date_end and self.date_begin > self.date_end: - raise ValidationError(_("Begin date should be before end date")) if not self.is_moderated: for u in RealGroup.objects.filter(id=settings.SITH_GROUP_COM_ADMIN_ID).first().users.all(): Notification(user=u, url=reverse("com:poster_moderate_list"), type="POSTER_MODERATION").save() return super(Poster, self).save(*args, **kwargs) + def clean(self, *args, **kwargs): + if self.date_end and self.date_begin > self.date_end: + raise ValidationError(_("Begin date should be before end date")) + def is_owned_by(self, user): return user.is_in_group(settings.SITH_GROUP_COM_ADMIN_ID) or Club.objects.filter(id__in=user.clubs_with_rights) diff --git a/com/views.py b/com/views.py index dc8c1384..a8d906cc 100644 --- a/com/views.py +++ b/com/views.py @@ -61,6 +61,11 @@ class PosterForm(forms.ModelForm): 'is_moderated': forms.HiddenInput() } + date_begin = forms.DateTimeField(['%Y-%m-%d %H:%M:%S'], label=_("Start date"), + widget=SelectDateTime, required=True, initial=timezone.now().strftime("%Y-%m-%d %H:%M:%S")) + date_end = forms.DateTimeField(['%Y-%m-%d %H:%M:%S'], label=_("End date"), + widget=SelectDateTime, required=False) + def __init__(self, *args, **kwargs): self.user = kwargs.pop('user', None) super(PosterForm, self).__init__(*args, **kwargs) diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 96bc80aa..33295790 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 19:02+0100\n" +"POT-Creation-Date: 2017-12-22 12:14+0100\n" "PO-Revision-Date: 2016-07-18\n" "Last-Translator: Skia \n" "Language-Team: AE info \n" @@ -17,8 +17,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: accounting/models.py:61 accounting/models.py:110 accounting/models.py:138 -#: accounting/models.py:197 club/models.py:47 -#: core/templates/core/base.jinja:297 counter/models.py:113 +#: accounting/models.py:197 club/models.py:47 com/models.py:195 +#: com/models.py:209 core/templates/core/base.jinja:297 counter/models.py:113 #: counter/models.py:140 counter/models.py:184 forum/models.py:49 #: 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 @@ -66,7 +66,7 @@ msgid "account number" msgstr "numero de compte" #: accounting/models.py:113 accounting/models.py:139 club/models.py:227 -#: com/models.py:67 com/models.py:178 counter/models.py:149 +#: com/models.py:73 com/models.py:184 com/models.py:211 counter/models.py:149 #: counter/models.py:185 trombi/models.py:149 msgid "club" msgstr "club" @@ -127,8 +127,8 @@ msgstr "numéro" msgid "journal" msgstr "classeur" -#: accounting/models.py:258 core/models.py:645 core/models.py:1046 -#: core/models.py:1090 core/models.py:1117 counter/models.py:301 +#: accounting/models.py:258 core/models.py:653 core/models.py:1054 +#: core/models.py:1098 core/models.py:1125 counter/models.py:301 #: counter/models.py:351 counter/models.py:484 eboutic/models.py:39 #: eboutic/models.py:73 forum/models.py:239 forum/models.py:314 #: stock/models.py:76 @@ -166,7 +166,7 @@ msgid "accounting type" msgstr "type comptable" #: accounting/models.py:269 accounting/models.py:371 accounting/models.py:398 -#: accounting/models.py:422 core/models.py:1116 counter/models.py:343 +#: accounting/models.py:422 core/models.py:1124 counter/models.py:343 msgid "label" msgstr "étiquette" @@ -174,10 +174,10 @@ msgstr "étiquette" msgid "target type" msgstr "type de cible" -#: accounting/models.py:271 club/models.py:326 +#: accounting/models.py:271 club/models.py:329 #: club/templates/club/club_members.jinja:8 #: club/templates/club/club_old_members.jinja:8 -#: club/templates/club/mailing.jinja:28 club/views.py:84 +#: club/templates/club/mailing.jinja:28 club/views.py:86 #: counter/templates/counter/cash_summary_list.jinja:32 #: counter/templates/counter/stats.jinja:15 #: counter/templates/counter/stats.jinja:52 @@ -355,8 +355,10 @@ msgstr "Compte en banque : " #: com/templates/com/news_admin_list.jinja:234 #: com/templates/com/news_admin_list.jinja:275 #: com/templates/com/news_admin_list.jinja:310 -#: com/templates/com/weekmail.jinja:33 com/templates/com/weekmail.jinja:62 -#: core/templates/core/file_detail.jinja:25 +#: com/templates/com/poster_edit.jinja:21 +#: com/templates/com/poster_edit.jinja:23 +#: com/templates/com/screen_edit.jinja:16 com/templates/com/weekmail.jinja:33 +#: com/templates/com/weekmail.jinja:62 core/templates/core/file_detail.jinja:25 #: core/templates/core/file_detail.jinja:62 #: core/templates/core/file_moderation.jinja:24 #: core/templates/core/group_list.jinja:13 core/templates/core/macros.jinja:87 @@ -383,7 +385,7 @@ msgid "Delete" msgstr "Supprimer" #: accounting/templates/accounting/bank_account_details.jinja:18 -#: club/views.py:98 core/views/user.py:166 sas/templates/sas/picture.jinja:86 +#: club/views.py:101 core/views/user.py:166 sas/templates/sas/picture.jinja:86 msgid "Infos" msgstr "Infos" @@ -402,7 +404,7 @@ msgstr "Nouveau compte club" #: accounting/templates/accounting/bank_account_details.jinja:27 #: accounting/templates/accounting/bank_account_list.jinja:22 #: accounting/templates/accounting/club_account_details.jinja:58 -#: accounting/templates/accounting/journal_details.jinja:89 club/views.py:126 +#: accounting/templates/accounting/journal_details.jinja:89 club/views.py:129 #: com/templates/com/news_admin_list.jinja:39 #: com/templates/com/news_admin_list.jinja:68 #: com/templates/com/news_admin_list.jinja:115 @@ -411,8 +413,11 @@ msgstr "Nouveau compte club" #: com/templates/com/news_admin_list.jinja:232 #: com/templates/com/news_admin_list.jinja:273 #: com/templates/com/news_admin_list.jinja:308 -#: com/templates/com/weekmail.jinja:32 com/templates/com/weekmail.jinja:61 -#: core/templates/core/file.jinja:38 core/templates/core/page.jinja:35 +#: com/templates/com/poster_list.jinja:43 +#: com/templates/com/poster_list.jinja:45 +#: com/templates/com/screen_list.jinja:26 com/templates/com/weekmail.jinja:32 +#: com/templates/com/weekmail.jinja:61 core/templates/core/file.jinja:38 +#: core/templates/core/page.jinja:35 core/templates/core/poster_list.jinja:40 #: core/templates/core/user_tools.jinja:41 core/views/user.py:188 #: counter/templates/counter/cash_summary_list.jinja:53 #: counter/templates/counter/counter_list.jinja:17 @@ -759,7 +764,8 @@ msgid "Linked operation:" msgstr "Opération liée : " #: accounting/templates/accounting/operation_edit.jinja:55 -#: com/templates/com/news_edit.jinja:57 com/templates/com/weekmail.jinja:74 +#: com/templates/com/news_edit.jinja:57 com/templates/com/poster_edit.jinja:33 +#: com/templates/com/screen_edit.jinja:25 com/templates/com/weekmail.jinja:74 #: core/templates/core/create.jinja:12 core/templates/core/edit.jinja:7 #: core/templates/core/edit.jinja.py:15 core/templates/core/edit.jinja:20 #: core/templates/core/file_edit.jinja:8 @@ -936,7 +942,7 @@ msgid "user" msgstr "nom d'utilisateur" #: club/models.py:230 core/models.py:180 election/models.py:153 -#: election/models.py:173 trombi/models.py:150 +#: election/models.py:174 trombi/models.py:150 msgid "role" msgstr "rôle" @@ -958,7 +964,7 @@ msgstr "L'utilisateur est déjà membre de ce club" msgid "past member" msgstr "Anciens membres" -#: club/models.py:271 club/models.py:327 +#: club/models.py:271 club/models.py:330 msgid "Email address" msgstr "Adresse email" @@ -967,27 +973,27 @@ msgid "Enter a valid address. Only the root of the address is needed." msgstr "" "Entrez une adresse valide. Seule la racine de l'adresse est nécessaire." -#: club/models.py:276 com/models.py:69 core/models.py:646 +#: club/models.py:276 com/models.py:75 com/models.py:216 core/models.py:654 msgid "is moderated" msgstr "est modéré" -#: club/models.py:277 com/models.py:70 +#: club/models.py:277 com/models.py:76 com/models.py:217 msgid "moderator" msgstr "modérateur" -#: club/models.py:325 club/templates/club/mailing.jinja:14 +#: club/models.py:328 club/templates/club/mailing.jinja:14 msgid "Mailing" msgstr "Liste de diffusion" -#: club/models.py:334 +#: club/models.py:337 msgid "At least user or email is required" msgstr "Au moins un utilisateur ou un email est nécessaire" -#: club/models.py:339 +#: club/models.py:342 msgid "This email is already suscribed in this mailing" msgstr "Cet email est déjà abonné à cette mailing" -#: club/models.py:363 club/templates/club/mailing.jinja:36 +#: club/models.py:366 club/templates/club/mailing.jinja:36 msgid "Unregistered user" msgstr "Désabonner un utilisateur" @@ -1060,8 +1066,8 @@ msgstr "Du" msgid "To" msgstr "Au" -#: club/templates/club/club_sellings.jinja:5 club/views.py:137 -#: club/views.py:366 counter/templates/counter/counter_main.jinja:19 +#: club/templates/club/club_sellings.jinja:5 club/views.py:140 +#: club/views.py:374 counter/templates/counter/counter_main.jinja:19 #: counter/templates/counter/last_ops.jinja:35 msgid "Sellings" msgstr "Ventes" @@ -1087,7 +1093,7 @@ msgstr "unités" msgid "Benefit: " msgstr "Bénéfice : " -#: club/templates/club/club_sellings.jinja:21 club/views.py:314 +#: club/templates/club/club_sellings.jinja:21 club/views.py:322 #: core/templates/core/user_account_detail.jinja:18 #: core/templates/core/user_account_detail.jinja:51 #: counter/templates/counter/cash_summary_list.jinja:33 counter/views.py:134 @@ -1138,7 +1144,7 @@ msgid "Payment method" msgstr "Méthode de paiement" #: club/templates/club/club_tools.jinja:4 -#: core/templates/core/user_tools.jinja:98 +#: core/templates/core/user_tools.jinja:100 msgid "Club tools" msgstr "Outils club" @@ -1162,15 +1168,22 @@ msgstr "Éditer le Trombi" msgid "New Trombi" msgstr "Nouveau Trombi" -#: club/templates/club/club_tools.jinja:16 +#: club/templates/club/club_tools.jinja:14 +#: com/templates/com/poster_list.jinja:17 +#: core/templates/core/poster_list.jinja:17 +#: core/templates/core/user_tools.jinja:90 +msgid "Posters" +msgstr "Affiches" + +#: club/templates/club/club_tools.jinja:17 msgid "Counters:" msgstr "Comptoirs : " -#: club/templates/club/club_tools.jinja:32 +#: club/templates/club/club_tools.jinja:33 msgid "Accouting: " msgstr "Comptabilité : " -#: club/templates/club/club_tools.jinja:40 +#: club/templates/club/club_tools.jinja:41 msgid "Manage launderettes" msgstr "Gestion des laveries" @@ -1228,157 +1241,173 @@ msgstr "Aucune page n'existe pour ce club" msgid "Club stats" msgstr "Statistiques du club" -#: club/views.py:104 +#: club/views.py:107 msgid "Members" msgstr "Membres" -#: club/views.py:109 +#: club/views.py:112 msgid "Old members" msgstr "Anciens membres" -#: club/views.py:115 core/templates/core/page.jinja:33 +#: club/views.py:118 core/templates/core/page.jinja:33 msgid "History" msgstr "Historique" -#: club/views.py:121 core/templates/core/base.jinja:115 core/views/user.py:182 +#: club/views.py:124 core/templates/core/base.jinja:115 core/views/user.py:182 #: sas/templates/sas/picture.jinja:95 trombi/views.py:55 msgid "Tools" msgstr "Outils" -#: club/views.py:132 +#: club/views.py:135 msgid "Edit club page" msgstr "Éditer la page de club" -#: club/views.py:142 +#: club/views.py:145 msgid "Mailing list" msgstr "Listes de diffusion" -#: club/views.py:148 counter/templates/counter/counter_list.jinja:21 +#: club/views.py:150 com/views.py:111 +msgid "Posters list" +msgstr "Liste d'affiches" + +#: club/views.py:156 counter/templates/counter/counter_list.jinja:21 #: counter/templates/counter/counter_list.jinja:43 #: counter/templates/counter/counter_list.jinja:59 msgid "Props" msgstr "Propriétés" -#: club/views.py:243 core/views/forms.py:254 counter/views.py:91 +#: club/views.py:251 core/views/forms.py:254 counter/views.py:91 #: trombi/views.py:124 msgid "Select user" msgstr "Choisir un utilisateur" -#: club/views.py:290 sas/views.py:97 sas/views.py:150 sas/views.py:228 +#: club/views.py:298 sas/views.py:97 sas/views.py:150 sas/views.py:228 msgid "You do not have the permission to do that" msgstr "Vous n'avez pas la permission de faire cela" -#: club/views.py:312 counter/views.py:1097 +#: club/views.py:320 counter/views.py:1097 msgid "Begin date" msgstr "Date de début" -#: club/views.py:313 com/views.py:137 counter/views.py:1098 +#: club/views.py:321 com/views.py:172 counter/views.py:1098 #: election/views.py:135 subscription/views.py:47 msgid "End date" msgstr "Date de fin" -#: club/views.py:328 core/templates/core/user_stats.jinja:27 +#: club/views.py:336 core/templates/core/user_stats.jinja:27 #: counter/views.py:1188 msgid "Product" msgstr "Produit" -#: com/models.py:41 +#: com/models.py:47 msgid "alert message" msgstr "message d'alerte" -#: com/models.py:42 +#: com/models.py:48 msgid "info message" msgstr "message d'info" -#: com/models.py:43 +#: com/models.py:49 msgid "index page" msgstr "page d'accueil" -#: com/models.py:44 +#: com/models.py:50 msgid "weekmail destinations" msgstr "destinataires du weekmail" -#: com/models.py:54 +#: com/models.py:60 msgid "Notice" msgstr "Information" -#: com/models.py:55 +#: com/models.py:61 msgid "Event" msgstr "Événement" -#: com/models.py:56 +#: com/models.py:62 msgid "Weekly" msgstr "Hebdomadaire" -#: com/models.py:57 +#: com/models.py:63 msgid "Call" msgstr "Appel" -#: com/models.py:63 com/models.py:127 com/models.py:175 election/models.py:13 +#: com/models.py:69 com/models.py:133 com/models.py:181 election/models.py:13 #: election/models.py:98 election/models.py:134 forum/models.py:189 #: forum/models.py:237 msgid "title" msgstr "titre" -#: com/models.py:64 +#: com/models.py:70 msgid "summary" msgstr "résumé" -#: com/models.py:65 com/models.py:176 trombi/models.py:135 +#: com/models.py:71 com/models.py:182 trombi/models.py:135 msgid "content" msgstr "contenu" -#: com/models.py:66 core/models.py:1089 launderette/models.py:86 +#: com/models.py:72 core/models.py:1097 launderette/models.py:86 #: launderette/models.py:112 launderette/models.py:149 stock/models.py:59 #: stock/models.py:98 msgid "type" msgstr "type" -#: com/models.py:68 com/models.py:177 trombi/models.py:133 +#: com/models.py:74 com/models.py:183 trombi/models.py:133 msgid "author" msgstr "auteur" -#: com/models.py:115 +#: com/models.py:121 msgid "news_date" msgstr "date de la nouvelle" -#: com/models.py:116 +#: com/models.py:122 msgid "start_date" msgstr "date de début" -#: com/models.py:117 +#: com/models.py:123 msgid "end_date" msgstr "date de fin" -#: com/models.py:128 +#: com/models.py:134 msgid "intro" msgstr "intro" -#: com/models.py:129 +#: com/models.py:135 msgid "joke" msgstr "blague" -#: com/models.py:130 +#: com/models.py:136 msgid "protip" msgstr "astuce" -#: com/models.py:131 +#: com/models.py:137 msgid "conclusion" msgstr "conclusion" -#: com/models.py:132 +#: com/models.py:138 msgid "sent" msgstr "envoyé" -#: com/models.py:174 +#: com/models.py:180 msgid "weekmail" msgstr "weekmail" -#: com/models.py:179 +#: com/models.py:185 msgid "rank" msgstr "rang" -#: com/templates/com/mailing_admin.jinja:4 com/views.py:89 +#: com/models.py:210 core/models.py:644 core/models.py:660 +msgid "file" +msgstr "fichier" + +#: com/models.py:215 +msgid "display time" +msgstr "temps d'affichage" + +#: com/models.py:221 +msgid "Begin date should be before end date" +msgstr "La date de début doit être avant celle de fin" + +#: com/templates/com/mailing_admin.jinja:4 com/views.py:106 #: core/templates/core/user_tools.jinja:89 msgid "Mailing lists administration" msgstr "Administration des mailing listes" @@ -1629,8 +1658,72 @@ msgstr "Rien à venir..." msgid "Coming soon... don't miss!" msgstr "Prochainement... à ne pas rater!" +#: com/templates/com/poster_edit.jinja:4 com/templates/com/poster_list.jinja:10 +#: core/templates/core/poster_list.jinja:10 +msgid "Poster" +msgstr "Affiche" + +#: com/templates/com/poster_edit.jinja:13 +#: com/templates/com/poster_edit.jinja:15 +#: com/templates/com/poster_moderate.jinja:13 +#: com/templates/com/screen_edit.jinja:12 +msgid "List" +msgstr "Liste" + +#: com/templates/com/poster_edit.jinja:18 +msgid "Posters - edit" +msgstr "Affiche - modifier" + +#: com/templates/com/poster_list.jinja:20 +#: com/templates/com/poster_list.jinja:23 +#: com/templates/com/screen_list.jinja:13 +#: core/templates/core/poster_list.jinja:19 sas/templates/sas/main.jinja:53 +msgid "Create" +msgstr "Créer" + +#: com/templates/com/poster_list.jinja:21 +#: core/templates/core/poster_list.jinja:21 +msgid "Moderation" +msgstr "Modération" + +#: com/templates/com/poster_list.jinja:31 +#: core/templates/core/poster_list.jinja:29 +msgid "No posters" +msgstr "Aucune affiche" + +#: com/templates/com/poster_moderate.jinja:15 +msgid "Posters - moderation" +msgstr "Affiches - modération" + +#: com/templates/com/poster_moderate.jinja:21 +msgid "No objects" +msgstr "Aucun éléments" + +#: com/templates/com/screen_edit.jinja:4 +msgid "Screen" +msgstr "Écran" + +#: com/templates/com/screen_edit.jinja:14 +msgid "Screen - edit" +msgstr "Écran - modifier" + +#: com/templates/com/screen_list.jinja:4 com/templates/com/screen_list.jinja:11 +#: core/templates/core/user_tools.jinja:91 +msgid "Screens" +msgstr "Écrans" + +#: com/templates/com/screen_list.jinja:20 +msgid "No screens" +msgstr "Pas d'écran" + +#: com/templates/com/screen_list.jinja:27 +#: com/templates/com/screen_slideshow.jinja:4 +#: core/templates/core/screen_slideshow.jinja:4 +msgid "Slideshow" +msgstr "Diaporama" + #: com/templates/com/weekmail.jinja:5 com/templates/com/weekmail.jinja.py:9 -#: com/views.py:64 core/templates/core/user_tools.jinja:81 +#: com/views.py:81 core/templates/core/user_tools.jinja:81 msgid "Weekmail" msgstr "Weekmail" @@ -1717,55 +1810,59 @@ msgstr "Astuce" msgid "Final word" msgstr "Le mot de la fin" -#: com/views.py:57 +#: com/views.py:74 msgid "Communication administration" msgstr "Administration de la communication" -#: com/views.py:69 core/templates/core/user_tools.jinja:82 +#: com/views.py:86 core/templates/core/user_tools.jinja:82 msgid "Weekmail destinations" msgstr "Destinataires du Weekmail" -#: com/views.py:74 +#: com/views.py:91 msgid "Index page" msgstr "Page d'accueil" -#: com/views.py:79 +#: com/views.py:96 msgid "Info message" msgstr "Message d'info" -#: com/views.py:84 +#: com/views.py:101 msgid "Alert message" msgstr "Message d'alerte" -#: com/views.py:136 election/views.py:133 subscription/views.py:44 +#: com/views.py:116 +msgid "Screens list" +msgstr "Liste d'écrans" + +#: com/views.py:171 election/views.py:133 subscription/views.py:44 msgid "Start date" msgstr "Date de début" -#: com/views.py:138 +#: com/views.py:173 msgid "Until" msgstr "Jusqu'à" -#: com/views.py:139 +#: com/views.py:174 msgid "Automoderation" msgstr "Automodération" -#: com/views.py:145 com/views.py:147 com/views.py:151 +#: com/views.py:180 com/views.py:182 com/views.py:186 msgid "This field is required." msgstr "Ce champ est obligatoire." -#: com/views.py:149 +#: com/views.py:184 msgid "You crazy? You can not finish an event before starting it." msgstr "T'es fou? Un événement ne peut pas finir avant même de commencer." -#: com/views.py:331 +#: com/views.py:366 msgid "Delete and save to regenerate" msgstr "Supprimer et sauver pour regénérer" -#: com/views.py:339 +#: com/views.py:374 msgid "Weekmail of the " msgstr "Weekmail du " -#: com/views.py:419 +#: com/views.py:454 msgid "" "You must be a board member of the selected club to post in the Weekmail." msgstr "" @@ -2010,113 +2107,109 @@ msgstr "Un utilisateur de ce nom d'utilisateur existe déjà" msgid "Profile" msgstr "Profil" -#: core/models.py:592 +#: core/models.py:600 msgid "Visitor" msgstr "Visiteur" -#: core/models.py:598 +#: core/models.py:606 msgid "do you want to receive the weekmail" msgstr "voulez-vous recevoir le Weekmail" -#: core/models.py:602 +#: core/models.py:610 msgid "show your stats to others" msgstr "montrez vos statistiques aux autres" -#: core/models.py:606 +#: core/models.py:614 msgid "get a notification for every click" msgstr "recevez une notification pour chaque click" -#: core/models.py:610 +#: core/models.py:618 msgid "get a notification for every refilling" msgstr "recevez une notification pour chaque rechargement" -#: core/models.py:634 +#: core/models.py:642 msgid "file name" msgstr "nom du fichier" -#: core/models.py:635 core/models.py:850 +#: core/models.py:643 core/models.py:858 msgid "parent" msgstr "parent" -#: core/models.py:636 core/models.py:652 -msgid "file" -msgstr "fichier" - -#: core/models.py:637 +#: core/models.py:645 msgid "compressed file" msgstr "version allégée" -#: core/models.py:638 +#: core/models.py:646 msgid "thumbnail" msgstr "miniature" -#: core/models.py:639 core/models.py:647 +#: core/models.py:647 core/models.py:655 msgid "owner" msgstr "propriétaire" -#: core/models.py:640 core/models.py:856 core/views/files.py:149 +#: core/models.py:648 core/models.py:864 core/views/files.py:149 msgid "edit group" msgstr "groupe d'édition" -#: core/models.py:641 core/models.py:857 core/views/files.py:150 +#: core/models.py:649 core/models.py:865 core/views/files.py:150 msgid "view group" msgstr "groupe de vue" -#: core/models.py:642 +#: core/models.py:650 msgid "is folder" msgstr "est un dossier" -#: core/models.py:643 +#: core/models.py:651 msgid "mime type" msgstr "type mime" -#: core/models.py:644 +#: core/models.py:652 msgid "size" msgstr "taille" -#: core/models.py:648 +#: core/models.py:656 msgid "asked for removal" msgstr "retrait demandé" -#: core/models.py:649 +#: core/models.py:657 msgid "is in the SAS" msgstr "est dans le SAS" -#: core/models.py:688 +#: core/models.py:696 msgid "Character '/' not authorized in name" msgstr "Le caractère '/' n'est pas autorisé dans les noms de fichier" -#: core/models.py:691 core/models.py:696 +#: core/models.py:699 core/models.py:704 msgid "Loop in folder tree" msgstr "Boucle dans l'arborescence des dossiers" -#: core/models.py:700 +#: core/models.py:708 msgid "You can not make a file be a children of a non folder file" msgstr "" "Vous ne pouvez pas mettre un fichier enfant de quelque chose qui n'est pas " "un dossier" -#: core/models.py:704 +#: core/models.py:712 msgid "Duplicate file" msgstr "Un fichier de ce nom existe déjà" -#: core/models.py:718 +#: core/models.py:726 msgid "You must provide a file" msgstr "Vous devez fournir un fichier" -#: core/models.py:788 +#: core/models.py:796 msgid "Folder: " msgstr "Dossier : " -#: core/models.py:790 +#: core/models.py:798 msgid "File: " msgstr "Fichier : " -#: core/models.py:842 +#: core/models.py:850 msgid "page unix name" msgstr "nom unix de la page" -#: core/models.py:846 +#: core/models.py:854 msgid "" "Enter a valid page name. This value may contain only unaccented letters, " "numbers and ./+/-/_ characters." @@ -2124,51 +2217,51 @@ msgstr "" "Entrez un nom de page correct. Uniquement des lettres non accentuées, " "numéros, et ./+/-/_" -#: core/models.py:853 +#: core/models.py:861 msgid "page name" msgstr "nom de la page" -#: core/models.py:854 +#: core/models.py:862 msgid "owner group" msgstr "groupe propriétaire" -#: core/models.py:858 +#: core/models.py:866 msgid "lock user" msgstr "utilisateur bloquant" -#: core/models.py:859 +#: core/models.py:867 msgid "lock_timeout" msgstr "décompte du déblocage" -#: core/models.py:886 +#: core/models.py:894 msgid "Duplicate page" msgstr "Une page de ce nom existe déjà" -#: core/models.py:892 +#: core/models.py:900 msgid "Loop in page tree" msgstr "Boucle dans l'arborescence des pages" -#: core/models.py:1043 +#: core/models.py:1051 msgid "revision" msgstr "révision" -#: core/models.py:1044 +#: core/models.py:1052 msgid "page title" msgstr "titre de la page" -#: core/models.py:1045 +#: core/models.py:1053 msgid "page content" msgstr "contenu de la page" -#: core/models.py:1087 +#: core/models.py:1095 msgid "url" msgstr "url" -#: core/models.py:1088 +#: core/models.py:1096 msgid "param" msgstr "param" -#: core/models.py:1091 +#: core/models.py:1099 msgid "viewed" msgstr "vue" @@ -3142,35 +3235,35 @@ msgstr "Éditer le message d'informations" msgid "Moderate files" msgstr "Modérer les fichiers" -#: core/templates/core/user_tools.jinja:92 +#: core/templates/core/user_tools.jinja:94 msgid "Moderate pictures" msgstr "Modérer les photos" -#: core/templates/core/user_tools.jinja:105 +#: core/templates/core/user_tools.jinja:107 msgid "Elections" msgstr "Élections" -#: core/templates/core/user_tools.jinja:107 +#: core/templates/core/user_tools.jinja:109 msgid "See available elections" msgstr "Voir les élections disponibles" -#: core/templates/core/user_tools.jinja:108 +#: core/templates/core/user_tools.jinja:110 msgid "See archived elections" msgstr "Voir les élections archivées" -#: core/templates/core/user_tools.jinja:110 +#: core/templates/core/user_tools.jinja:112 msgid "Create a new election" msgstr "Créer une nouvelle élection" -#: core/templates/core/user_tools.jinja:113 +#: core/templates/core/user_tools.jinja:115 msgid "Other tools" msgstr "Autres outils" -#: core/templates/core/user_tools.jinja:115 +#: core/templates/core/user_tools.jinja:117 msgid "Convert dokuwiki/BBcode syntax to Markdown" msgstr "Convertir de la syntaxe dokuwiki/BBcode vers Markdown" -#: core/templates/core/user_tools.jinja:116 +#: core/templates/core/user_tools.jinja:118 msgid "Trombi tools" msgstr "Outils Trombi" @@ -3237,6 +3330,16 @@ msgstr "Parrain" msgid "Godchild" msgstr "Fillot" +#: core/views/forms.py:264 core/views/forms.py:277 election/models.py:22 +#: election/views.py:128 +msgid "edit groups" +msgstr "groupe d'édition" + +#: core/views/forms.py:265 core/views/forms.py:278 election/models.py:26 +#: election/views.py:129 +msgid "view groups" +msgstr "groupe de vue" + #: core/views/user.py:176 trombi/templates/trombi/export.jinja:25 #: trombi/templates/trombi/user_profile.jinja:11 msgid "Pictures" @@ -3916,19 +4019,11 @@ msgstr "début des candidatures" msgid "end candidature" msgstr "fin des candidatures" -#: election/models.py:22 -msgid "edit groups" -msgstr "groupe d'édition" - -#: election/models.py:26 -msgid "view groups" -msgstr "groupe de vue" - -#: election/models.py:30 +#: election/models.py:30 election/views.py:130 msgid "vote groups" msgstr "groupe de vote" -#: election/models.py:34 +#: election/models.py:34 election/views.py:131 msgid "candidature groups" msgstr "groupe de candidature" @@ -3944,7 +4039,7 @@ msgstr "nombre de choix maxi" msgid "election list" msgstr "liste électorale" -#: election/models.py:174 +#: election/models.py:175 msgid "candidature" msgstr "candidature" @@ -3992,7 +4087,7 @@ msgstr "Vous avez déjà soumis votre vote." msgid "You have voted in this election." msgstr "Vous avez déjà voté pour cette élection." -#: election/templates/election/election_detail.jinja:266 election/views.py:82 +#: election/templates/election/election_detail.jinja:266 election/views.py:84 msgid "Blank vote" msgstr "Vote blanc" @@ -4061,15 +4156,15 @@ msgstr "au" msgid "Polls open from" msgstr "Votes ouverts du" -#: election/views.py:43 +#: election/views.py:45 msgid "You have selected too much candidates." msgstr "Vous avez sélectionné trop de candidats." -#: election/views.py:58 +#: election/views.py:60 msgid "User to candidate" msgstr "Utilisateur se présentant" -#: election/views.py:102 +#: election/views.py:104 msgid "This role already exists for this election" msgstr "Ce rôle existe déjà pour cette élection" @@ -4389,10 +4484,6 @@ msgstr "Derniers albums" msgid "All categories" msgstr "Toutes les catégories" -#: sas/templates/sas/main.jinja:53 -msgid "Create" -msgstr "Créer" - #: sas/templates/sas/moderation.jinja:4 sas/templates/sas/moderation.jinja:8 msgid "SAS moderation" msgstr "Modération du SAS" @@ -4615,62 +4706,66 @@ msgid "Curious" msgstr "Curieux" #: sith/settings.py:565 +msgid "A new poster needs to be moderated" +msgstr "Une nouvelle affiche a besoin d'être modérée" + +#: sith/settings.py:566 msgid "A new mailing list needs to be moderated" msgstr "Une nouvelle mailing list a besoin d'être modérée" -#: sith/settings.py:566 +#: sith/settings.py:567 #, 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:567 +#: sith/settings.py:568 msgid "New files to be moderated" msgstr "Nouveaux fichiers à modérer" -#: sith/settings.py:568 +#: sith/settings.py:569 #, 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:569 +#: sith/settings.py:570 msgid "You've been identified on some pictures" msgstr "Vous avez été identifié sur des photos" -#: sith/settings.py:570 +#: sith/settings.py:571 #, python-format msgid "You just refilled of %s €" msgstr "Vous avez rechargé votre compte de %s€" -#: sith/settings.py:571 +#: sith/settings.py:572 #, python-format msgid "You just bought %s" msgstr "Vous avez acheté %s" -#: sith/settings.py:572 +#: sith/settings.py:573 msgid "You have a notification" msgstr "Vous avez une notification" -#: sith/settings.py:584 +#: sith/settings.py:585 msgid "Success!" msgstr "Succès !" -#: sith/settings.py:585 +#: sith/settings.py:586 msgid "Fail!" msgstr "Échec !" -#: sith/settings.py:586 +#: sith/settings.py:587 msgid "You successfully posted an article in the Weekmail" msgstr "Article posté avec succès dans le Weekmail" -#: sith/settings.py:587 +#: sith/settings.py:588 msgid "You successfully edited an article in the Weekmail" msgstr "Article édité avec succès dans le Weekmail" -#: sith/settings.py:588 +#: sith/settings.py:589 msgid "You successfully sent the Weekmail" msgstr "Weekmail envoyé avec succès" -#: sith/settings.py:597 +#: sith/settings.py:598 msgid "AE tee-shirt" msgstr "Tee-shirt AE"