From 9c7cb07decd659e0776b21b9bd71c84748808652 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 6 Aug 2020 17:41:30 +0200 Subject: [PATCH] Improve activity interface --- apps/activity/fixtures/initial.json | 2 + apps/activity/forms.py | 15 +- apps/activity/models.py | 20 +- apps/activity/tables.py | 6 +- apps/activity/views.py | 19 +- apps/scripts | 2 +- locale/de/LC_MESSAGES/django.po | 610 ++++++++++++------------ locale/fr/LC_MESSAGES/django.po | 610 ++++++++++++------------ templates/activity/activity_detail.html | 65 +-- templates/activity/activity_entry.html | 10 +- templates/activity/activity_info.html | 78 +++ templates/activity/activity_list.html | 8 + templates/note/transaction_form.html | 10 +- 13 files changed, 772 insertions(+), 683 deletions(-) create mode 100644 templates/activity/activity_info.html diff --git a/apps/activity/fixtures/initial.json b/apps/activity/fixtures/initial.json index 1856bce4..95e841ca 100644 --- a/apps/activity/fixtures/initial.json +++ b/apps/activity/fixtures/initial.json @@ -4,6 +4,7 @@ "pk": 1, "fields": { "name": "Pot", + "manage_entries": true, "can_invite": true, "guest_entry_fee": 500 } @@ -13,6 +14,7 @@ "pk": 2, "fields": { "name": "Soir\u00e9e de club", + "manage_entries": false, "can_invite": false, "guest_entry_fee": 0 } diff --git a/apps/activity/forms.py b/apps/activity/forms.py index c41769a9..4f03f32a 100644 --- a/apps/activity/forms.py +++ b/apps/activity/forms.py @@ -43,7 +43,7 @@ class GuestForm(forms.ModelForm): def clean(self): cleaned_data = super().clean() - if self.activity.date_start > timezone.now(): + if timezone.now() > timezone.localtime(self.activity.date_start): self.add_error("inviter", _("You can't invite someone once the activity is started.")) if not self.activity.valid: @@ -52,20 +52,21 @@ class GuestForm(forms.ModelForm): one_year = timedelta(days=365) qs = Guest.objects.filter( - first_name=cleaned_data["first_name"], - last_name=cleaned_data["last_name"], + first_name__iexact=cleaned_data["first_name"], + last_name__iexact=cleaned_data["last_name"], activity__date_start__gte=self.activity.date_start - one_year, + entry__isnull=False, ) - if len(qs) >= 5: + if qs.count() >= 5: self.add_error("last_name", _("This person has been already invited 5 times this year.")) qs = qs.filter(activity=self.activity) if qs.exists(): self.add_error("last_name", _("This person is already invited.")) - qs = Guest.objects.filter(inviter=cleaned_data["inviter"], activity=self.activity) - if len(qs) >= 3: - self.add_error("inviter", _("You can't invite more than 3 people to this activity.")) + if "inviter" in cleaned_data: + if Guest.objects.filter(inviter=cleaned_data["inviter"], activity=self.activity).count() >= 3: + self.add_error("inviter", _("You can't invite more than 3 people to this activity.")) return cleaned_data diff --git a/apps/activity/models.py b/apps/activity/models.py index c43e9258..e576b9d9 100644 --- a/apps/activity/models.py +++ b/apps/activity/models.py @@ -27,11 +27,21 @@ class ActivityType(models.Model): verbose_name=_('name'), max_length=255, ) + + manage_entries = models.BooleanField( + verbose_name=_('manage entries'), + help_text=_('Enable the support of entries for this activity.'), + default=False, + ) + can_invite = models.BooleanField( verbose_name=_('can invite'), + default=False, ) + guest_entry_fee = models.PositiveIntegerField( verbose_name=_('guest entry fee'), + default=0, ) class Meta: @@ -236,18 +246,18 @@ class Guest(models.Model): one_year = timedelta(days=365) if not force_insert: - if self.activity.date_start > timezone.now(): + if timezone.now() > timezone.localtime(self.activity.date_start): raise ValidationError(_("You can't invite someone once the activity is started.")) if not self.activity.valid: raise ValidationError(_("This activity is not validated yet.")) qs = Guest.objects.filter( - first_name=self.first_name, - last_name=self.last_name, + first_name__iexact=self.first_name, + last_name__iexact=self.last_name, activity__date_start__gte=self.activity.date_start - one_year, ) - if len(qs) >= 5: + if qs.count() >= 5: raise ValidationError(_("This person has been already invited 5 times this year.")) qs = qs.filter(activity=self.activity) @@ -255,7 +265,7 @@ class Guest(models.Model): raise ValidationError(_("This person is already invited.")) qs = Guest.objects.filter(inviter=self.inviter, activity=self.activity) - if len(qs) >= 3: + if qs.count() >= 3: raise ValidationError(_("You can't invite more than 3 people to this activity.")) return super().save(force_insert, force_update, using, update_fields) diff --git a/apps/activity/tables.py b/apps/activity/tables.py index d6e566d3..b63c3dd7 100644 --- a/apps/activity/tables.py +++ b/apps/activity/tables.py @@ -1,6 +1,6 @@ # Copyright (C) 2018-2020 by BDE ENS Paris-Saclay # SPDX-License-Identifier: GPL-3.0-or-later - +from django.utils import timezone from django.utils.html import format_html from django.utils.translation import gettext_lazy as _ import django_tables2 as tables @@ -66,6 +66,10 @@ def get_row_class(record): qs = Entry.objects.filter(note=record.note, activity=record.activity, guest=None) if qs.exists(): c += " table-success" + elif not record.note.user.memberships.filter(club=record.activity.attendees_club, + date_start__lte=timezone.now(), + date_end__gte=timezone.now()).exists(): + c += " table-info" elif record.note.balance < 0: c += " table-danger" return c diff --git a/apps/activity/views.py b/apps/activity/views.py index 25565f2c..6ce84185 100644 --- a/apps/activity/views.py +++ b/apps/activity/views.py @@ -1,13 +1,12 @@ # Copyright (C) 2018-2020 by BDE ENS Paris-Saclay # SPDX-License-Identifier: GPL-3.0-or-later -from datetime import datetime, timezone - from django.conf import settings from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.contenttypes.models import ContentType from django.db.models import F, Q from django.urls import reverse_lazy +from django.utils import timezone from django.views.generic import CreateView, DetailView, UpdateView, TemplateView from django.utils.translation import gettext_lazy as _ from django_tables2.views import SingleTableView @@ -46,12 +45,17 @@ class ActivityListView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - upcoming_activities = Activity.objects.filter(date_end__gt=datetime.now()) + upcoming_activities = Activity.objects.filter(date_end__gt=timezone.now()) context['upcoming'] = ActivityTable( data=upcoming_activities.filter(PermissionBackend.filter_queryset(self.request.user, Activity, "view")), prefix='upcoming-', ) + started_activities = Activity.objects\ + .filter(PermissionBackend.filter_queryset(self.request.user, Activity, "view"))\ + .filter(open=True, valid=True).all() + context["started_activities"] = started_activities + return context @@ -67,7 +71,7 @@ class ActivityDetailView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView): .filter(PermissionBackend.filter_queryset(self.request.user, Guest, "view"))) context["guests"] = table - context["activity_started"] = datetime.now(timezone.utc) > self.object.date_start + context["activity_started"] = timezone.now() > timezone.localtime(self.object.date_start) return context @@ -148,7 +152,12 @@ class ActivityEntryView(LoginRequiredMixin, TemplateView): username=F("note__noteuser__user__username"), note_name=F("name"), balance=F("note__balance"))\ - .filter(note__polymorphic_ctype__model="noteuser")\ + .filter(note__noteuser__isnull=False)\ + .filter( + note__noteuser__user__memberships__club=activity.attendees_club, + note__noteuser__user__memberships__date_start__lte=timezone.now(), + note__noteuser__user__memberships__date_end__gte=timezone.now(), + )\ .filter(PermissionBackend.filter_queryset(self.request.user, Alias, "view")) if pattern: note_qs = note_qs.filter( diff --git a/apps/scripts b/apps/scripts index 3806feb6..4984159a 160000 --- a/apps/scripts +++ b/apps/scripts @@ -1 +1 @@ -Subproject commit 3806feb67fcb1fe822cfdedddbbc4ca7eeef3829 +Subproject commit 4984159a61642a0d3668e85daf39472b59b86447 diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index a9240ee5..d54f1006 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-05 23:17+0200\n" +"POT-Creation-Date: 2020-08-06 17:40+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,159 +18,171 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps/activity/apps.py:10 apps/activity/models.py:106 -#: apps/activity/models.py:121 +#: apps/activity/apps.py:10 apps/activity/models.py:139 +#: apps/activity/models.py:154 msgid "activity" msgstr "" -#: apps/activity/forms.py:45 apps/activity/models.py:217 +#: apps/activity/forms.py:47 apps/activity/models.py:250 msgid "You can't invite someone once the activity is started." msgstr "" -#: apps/activity/forms.py:48 apps/activity/models.py:220 +#: apps/activity/forms.py:50 apps/activity/models.py:253 msgid "This activity is not validated yet." msgstr "" -#: apps/activity/forms.py:58 apps/activity/models.py:228 +#: apps/activity/forms.py:61 apps/activity/models.py:261 msgid "This person has been already invited 5 times this year." msgstr "" -#: apps/activity/forms.py:62 apps/activity/models.py:232 +#: apps/activity/forms.py:65 apps/activity/models.py:265 msgid "This person is already invited." msgstr "" -#: apps/activity/forms.py:66 apps/activity/models.py:236 +#: apps/activity/forms.py:69 apps/activity/models.py:269 msgid "You can't invite more than 3 people to this activity." msgstr "" -#: apps/activity/models.py:24 apps/activity/models.py:49 -#: apps/member/models.py:173 apps/note/models/notes.py:212 +#: apps/activity/models.py:27 apps/activity/models.py:62 +#: apps/member/models.py:172 apps/note/models/notes.py:212 #: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45 -#: apps/note/models/transactions.py:298 apps/permission/models.py:332 -#: apps/wei/models.py:67 apps/wei/models.py:119 +#: apps/note/models/transactions.py:295 apps/permission/models.py:331 +#: apps/wei/models.py:66 apps/wei/models.py:118 #: templates/member/club_info.html:13 templates/member/profile_info.html:14 #: templates/registration/future_profile_detail.html:16 #: templates/wei/weiclub_info.html:13 templates/wei/weimembership_form.html:18 msgid "name" msgstr "" -#: apps/activity/models.py:28 templates/activity/activity_detail.html:39 +#: apps/activity/models.py:32 +msgid "manage entries" +msgstr "" + +#: apps/activity/models.py:33 +msgid "Enable the support of entries for this activity." +msgstr "" + +#: apps/activity/models.py:38 templates/activity/activity_info.html:42 msgid "can invite" msgstr "" -#: apps/activity/models.py:31 templates/activity/activity_detail.html:43 +#: apps/activity/models.py:43 templates/activity/activity_info.html:46 msgid "guest entry fee" msgstr "" -#: apps/activity/models.py:35 +#: apps/activity/models.py:48 msgid "activity type" msgstr "" -#: apps/activity/models.py:36 +#: apps/activity/models.py:49 msgid "activity types" msgstr "" -#: apps/activity/models.py:54 apps/note/models/transactions.py:81 -#: apps/permission/models.py:113 apps/permission/models.py:192 -#: apps/wei/models.py:73 apps/wei/models.py:130 -#: templates/activity/activity_detail.html:16 +#: apps/activity/models.py:67 apps/note/models/transactions.py:81 +#: apps/permission/models.py:112 apps/permission/models.py:191 +#: apps/wei/models.py:72 apps/wei/models.py:129 +#: templates/activity/activity_info.html:19 msgid "description" msgstr "" -#: apps/activity/models.py:61 apps/note/models/notes.py:188 -#: apps/note/models/transactions.py:66 apps/permission/models.py:167 -#: templates/activity/activity_detail.html:19 +#: apps/activity/models.py:71 +msgid "location" +msgstr "" + +#: apps/activity/models.py:81 apps/note/models/notes.py:188 +#: apps/note/models/transactions.py:66 apps/permission/models.py:166 +#: templates/activity/activity_info.html:22 msgid "type" msgstr "" -#: apps/activity/models.py:67 apps/logs/models.py:22 apps/member/models.py:281 +#: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:280 #: apps/note/models/notes.py:126 apps/treasury/models.py:222 -#: apps/wei/models.py:161 templates/treasury/sogecredit_detail.html:14 +#: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14 #: templates/wei/survey.html:16 msgid "user" msgstr "" -#: apps/activity/models.py:74 templates/activity/activity_detail.html:33 +#: apps/activity/models.py:94 templates/activity/activity_info.html:36 msgid "organizer" msgstr "" -#: apps/activity/models.py:81 templates/activity/activity_detail.html:36 +#: apps/activity/models.py:101 templates/activity/activity_info.html:39 msgid "attendees club" msgstr "" -#: apps/activity/models.py:85 templates/activity/activity_detail.html:22 +#: apps/activity/models.py:105 templates/activity/activity_info.html:25 msgid "start date" msgstr "" -#: apps/activity/models.py:89 templates/activity/activity_detail.html:25 +#: apps/activity/models.py:109 templates/activity/activity_info.html:28 msgid "end date" msgstr "" -#: apps/activity/models.py:94 apps/note/models/transactions.py:146 -#: templates/activity/activity_detail.html:47 +#: apps/activity/models.py:114 apps/note/models/transactions.py:146 +#: templates/activity/activity_info.html:50 msgid "valid" msgstr "" -#: apps/activity/models.py:99 templates/activity/activity_detail.html:61 +#: apps/activity/models.py:119 templates/activity/activity_info.html:65 msgid "open" msgstr "" -#: apps/activity/models.py:107 +#: apps/activity/models.py:140 msgid "activities" msgstr "" -#: apps/activity/models.py:126 +#: apps/activity/models.py:159 msgid "entry time" msgstr "" -#: apps/activity/models.py:132 apps/note/apps.py:14 +#: apps/activity/models.py:165 apps/note/apps.py:14 #: apps/note/models/notes.py:60 msgid "note" msgstr "" -#: apps/activity/models.py:143 templates/activity/activity_entry.html:38 +#: apps/activity/models.py:176 templates/activity/activity_entry.html:38 msgid "entry" msgstr "" -#: apps/activity/models.py:144 templates/activity/activity_entry.html:38 +#: apps/activity/models.py:177 templates/activity/activity_entry.html:38 msgid "entries" msgstr "" -#: apps/activity/models.py:150 +#: apps/activity/models.py:183 msgid "Already entered on " msgstr "" -#: apps/activity/models.py:150 apps/activity/tables.py:54 +#: apps/activity/models.py:183 apps/activity/tables.py:54 msgid "{:%Y-%m-%d %H:%M:%S}" msgstr "" -#: apps/activity/models.py:158 +#: apps/activity/models.py:191 msgid "The balance is negative." msgstr "" -#: apps/activity/models.py:188 +#: apps/activity/models.py:221 msgid "last name" msgstr "" -#: apps/activity/models.py:193 templates/member/profile_info.html:14 +#: apps/activity/models.py:226 templates/member/profile_info.html:14 #: templates/registration/future_profile_detail.html:16 #: templates/wei/weimembership_form.html:18 msgid "first name" msgstr "" -#: apps/activity/models.py:200 +#: apps/activity/models.py:233 msgid "inviter" msgstr "" -#: apps/activity/models.py:244 +#: apps/activity/models.py:277 msgid "guest" msgstr "" -#: apps/activity/models.py:245 +#: apps/activity/models.py:278 msgid "guests" msgstr "" -#: apps/activity/models.py:257 +#: apps/activity/models.py:290 msgid "Invitation" msgstr "" @@ -182,51 +194,51 @@ msgstr "" msgid "remove" msgstr "" -#: apps/activity/tables.py:75 apps/note/forms.py:76 apps/treasury/models.py:141 +#: apps/activity/tables.py:79 apps/note/forms.py:76 apps/treasury/models.py:141 msgid "Type" msgstr "" -#: apps/activity/tables.py:77 apps/member/forms.py:104 +#: apps/activity/tables.py:81 apps/member/forms.py:104 #: apps/registration/forms.py:70 apps/treasury/forms.py:130 -#: apps/wei/forms/registration.py:95 +#: apps/wei/forms/registration.py:94 msgid "Last name" msgstr "" -#: apps/activity/tables.py:79 apps/member/forms.py:109 +#: apps/activity/tables.py:83 apps/member/forms.py:109 #: apps/registration/forms.py:75 apps/treasury/forms.py:132 -#: apps/wei/forms/registration.py:100 templates/note/transaction_form.html:129 +#: apps/wei/forms/registration.py:99 templates/note/transaction_form.html:131 msgid "First name" msgstr "" -#: apps/activity/tables.py:81 apps/note/models/notes.py:69 +#: apps/activity/tables.py:85 apps/note/models/notes.py:69 msgid "Note" msgstr "" -#: apps/activity/tables.py:83 apps/member/tables.py:43 +#: apps/activity/tables.py:87 apps/member/tables.py:45 msgid "Balance" msgstr "" -#: apps/activity/views.py:26 +#: apps/activity/views.py:25 msgid "Create new activity" msgstr "" -#: apps/activity/views.py:41 templates/base.html:114 +#: apps/activity/views.py:40 templates/base.html:114 msgid "Activities" msgstr "" -#: apps/activity/views.py:61 +#: apps/activity/views.py:65 msgid "Activity detail" msgstr "" -#: apps/activity/views.py:78 +#: apps/activity/views.py:82 msgid "Update activity" msgstr "" -#: apps/activity/views.py:92 +#: apps/activity/views.py:96 msgid "Invite guest to the activity \"{}\"" msgstr "" -#: apps/activity/views.py:181 +#: apps/activity/views.py:190 msgid "Entry for activity \"{}\"" msgstr "" @@ -242,7 +254,7 @@ msgstr "" msgid "IP Address" msgstr "" -#: apps/logs/models.py:36 apps/permission/models.py:137 +#: apps/logs/models.py:36 apps/permission/models.py:136 msgid "model" msgstr "" @@ -263,12 +275,12 @@ msgid "create" msgstr "" #: apps/logs/models.py:62 apps/note/tables.py:160 -#: templates/activity/activity_detail.html:67 +#: templates/activity/activity_info.html:71 msgid "edit" msgstr "" #: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:165 -#: apps/permission/models.py:130 apps/wei/tables.py:73 +#: apps/permission/models.py:129 apps/wei/tables.py:73 msgid "delete" msgstr "" @@ -292,21 +304,21 @@ msgstr "" msgid "changelogs" msgstr "" -#: apps/member/admin.py:52 apps/member/models.py:200 +#: apps/member/admin.py:52 apps/member/models.py:199 #: templates/member/club_info.html:41 msgid "membership fee (paid students)" msgstr "" -#: apps/member/admin.py:53 apps/member/models.py:205 +#: apps/member/admin.py:53 apps/member/models.py:204 #: templates/member/club_info.html:44 msgid "membership fee (unpaid students)" msgstr "" -#: apps/member/admin.py:67 apps/member/models.py:292 +#: apps/member/admin.py:67 apps/member/models.py:291 msgid "roles" msgstr "" -#: apps/member/admin.py:68 apps/member/models.py:306 +#: apps/member/admin.py:68 apps/member/models.py:305 msgid "fee" msgstr "" @@ -332,12 +344,12 @@ msgid "Check this case is the Société Générale paid the inscription." msgstr "" #: apps/member/forms.py:90 apps/registration/forms.py:57 -#: apps/wei/forms/registration.py:82 +#: apps/wei/forms/registration.py:81 msgid "Credit type" msgstr "" #: apps/member/forms.py:91 apps/registration/forms.py:58 -#: apps/wei/forms/registration.py:83 +#: apps/wei/forms/registration.py:82 msgid "No credit" msgstr "" @@ -346,13 +358,13 @@ msgid "You can credit the note of the user." msgstr "" #: apps/member/forms.py:97 apps/registration/forms.py:63 -#: apps/wei/forms/registration.py:88 +#: apps/wei/forms/registration.py:87 msgid "Credit amount" msgstr "" #: apps/member/forms.py:114 apps/registration/forms.py:80 -#: apps/treasury/forms.py:134 apps/wei/forms/registration.py:105 -#: templates/note/transaction_form.html:135 +#: apps/treasury/forms.py:134 apps/wei/forms/registration.py:104 +#: templates/note/transaction_form.html:137 msgid "Bank" msgstr "" @@ -364,226 +376,226 @@ msgstr "" msgid "Roles" msgstr "" -#: apps/member/models.py:39 +#: apps/member/models.py:38 #: templates/registration/future_profile_detail.html:40 #: templates/wei/weimembership_form.html:48 msgid "phone number" msgstr "" -#: apps/member/models.py:46 templates/member/profile_info.html:29 +#: apps/member/models.py:45 templates/member/profile_info.html:29 #: templates/registration/future_profile_detail.html:34 #: templates/wei/weimembership_form.html:42 msgid "section" msgstr "" -#: apps/member/models.py:47 +#: apps/member/models.py:46 msgid "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\"" msgstr "" -#: apps/member/models.py:55 templates/wei/weimembership_form.html:36 +#: apps/member/models.py:54 templates/wei/weimembership_form.html:36 msgid "department" msgstr "" -#: apps/member/models.py:57 +#: apps/member/models.py:56 msgid "Informatics (A0)" msgstr "" -#: apps/member/models.py:58 +#: apps/member/models.py:57 msgid "Mathematics (A1)" msgstr "" -#: apps/member/models.py:59 +#: apps/member/models.py:58 msgid "Physics (A2)" msgstr "" -#: apps/member/models.py:60 +#: apps/member/models.py:59 msgid "Applied physics (A'2)" msgstr "" -#: apps/member/models.py:61 +#: apps/member/models.py:60 msgid "Chemistry (A''2)" msgstr "" -#: apps/member/models.py:62 +#: apps/member/models.py:61 msgid "Biology (A3)" msgstr "" -#: apps/member/models.py:63 +#: apps/member/models.py:62 msgid "SAPHIRE (B1234)" msgstr "" -#: apps/member/models.py:64 +#: apps/member/models.py:63 msgid "Mechanics (B1)" msgstr "" -#: apps/member/models.py:65 +#: apps/member/models.py:64 msgid "Civil engineering (B2)" msgstr "" -#: apps/member/models.py:66 +#: apps/member/models.py:65 msgid "Mechanical engineering (B3)" msgstr "" -#: apps/member/models.py:67 +#: apps/member/models.py:66 msgid "EEA (B4)" msgstr "" -#: apps/member/models.py:68 +#: apps/member/models.py:67 msgid "Design (C)" msgstr "" -#: apps/member/models.py:69 +#: apps/member/models.py:68 msgid "Economy-management (D2)" msgstr "" -#: apps/member/models.py:70 +#: apps/member/models.py:69 msgid "Social sciences (D3)" msgstr "" -#: apps/member/models.py:71 +#: apps/member/models.py:70 msgid "English (E)" msgstr "" -#: apps/member/models.py:72 +#: apps/member/models.py:71 msgid "External (EXT)" msgstr "" -#: apps/member/models.py:79 +#: apps/member/models.py:78 msgid "promotion" msgstr "" -#: apps/member/models.py:80 +#: apps/member/models.py:79 msgid "Year of entry to the school (None if not ENS student)" msgstr "" -#: apps/member/models.py:84 templates/member/profile_info.html:32 +#: apps/member/models.py:83 templates/member/profile_info.html:32 #: templates/registration/future_profile_detail.html:37 #: templates/wei/weimembership_form.html:45 msgid "address" msgstr "" -#: apps/member/models.py:91 +#: apps/member/models.py:90 #: templates/registration/future_profile_detail.html:43 #: templates/wei/weimembership_form.html:51 msgid "paid" msgstr "" -#: apps/member/models.py:92 +#: apps/member/models.py:91 msgid "Tells if the user receive a salary." msgstr "" -#: apps/member/models.py:97 +#: apps/member/models.py:96 msgid "report frequency (in days)" msgstr "" -#: apps/member/models.py:102 +#: apps/member/models.py:101 msgid "last report date" msgstr "" -#: apps/member/models.py:107 +#: apps/member/models.py:106 msgid "email confirmed" msgstr "" -#: apps/member/models.py:112 +#: apps/member/models.py:111 msgid "registration valid" msgstr "" -#: apps/member/models.py:141 apps/member/models.py:142 +#: apps/member/models.py:140 apps/member/models.py:141 msgid "user profile" msgstr "" -#: apps/member/models.py:149 +#: apps/member/models.py:148 msgid "Activate your Note Kfet account" msgstr "" -#: apps/member/models.py:178 templates/member/club_info.html:57 +#: apps/member/models.py:177 templates/member/club_info.html:57 #: templates/registration/future_profile_detail.html:22 #: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24 msgid "email" msgstr "" -#: apps/member/models.py:185 +#: apps/member/models.py:184 msgid "parent club" msgstr "" -#: apps/member/models.py:194 +#: apps/member/models.py:193 msgid "require memberships" msgstr "" -#: apps/member/models.py:195 +#: apps/member/models.py:194 msgid "Uncheck if this club don't require memberships." msgstr "" -#: apps/member/models.py:211 templates/member/club_info.html:33 +#: apps/member/models.py:210 templates/member/club_info.html:33 msgid "membership duration" msgstr "" -#: apps/member/models.py:212 +#: apps/member/models.py:211 msgid "The longest time (in days) a membership can last (NULL = infinite)." msgstr "" -#: apps/member/models.py:219 templates/member/club_info.html:23 +#: apps/member/models.py:218 templates/member/club_info.html:23 msgid "membership start" msgstr "" -#: apps/member/models.py:220 +#: apps/member/models.py:219 msgid "How long after January 1st the members can renew their membership." msgstr "" -#: apps/member/models.py:227 templates/member/club_info.html:28 +#: apps/member/models.py:226 templates/member/club_info.html:28 msgid "membership end" msgstr "" -#: apps/member/models.py:228 +#: apps/member/models.py:227 msgid "" "How long the membership can last after January 1st of the next year after " "members can renew their membership." msgstr "" -#: apps/member/models.py:262 apps/member/models.py:287 +#: apps/member/models.py:261 apps/member/models.py:286 #: apps/note/models/notes.py:163 msgid "club" msgstr "" -#: apps/member/models.py:263 +#: apps/member/models.py:262 msgid "clubs" msgstr "" -#: apps/member/models.py:297 +#: apps/member/models.py:296 msgid "membership starts on" msgstr "" -#: apps/member/models.py:301 +#: apps/member/models.py:300 msgid "membership ends on" msgstr "" -#: apps/member/models.py:353 +#: apps/member/models.py:351 #, python-brace-format msgid "The role {role} does not apply to the club {club}." msgstr "" -#: apps/member/models.py:364 apps/member/views.py:590 +#: apps/member/models.py:362 apps/member/views.py:592 msgid "User is already a member of the club" msgstr "" -#: apps/member/models.py:411 +#: apps/member/models.py:409 msgid "User is not a member of the parent club" msgstr "" -#: apps/member/models.py:464 +#: apps/member/models.py:462 #, python-brace-format msgid "Membership of {user} for the club {club}" msgstr "" -#: apps/member/models.py:467 +#: apps/member/models.py:465 msgid "membership" msgstr "" -#: apps/member/models.py:468 +#: apps/member/models.py:466 msgid "memberships" msgstr "" -#: apps/member/tables.py:114 +#: apps/member/tables.py:116 msgid "Renew" msgstr "" @@ -605,63 +617,63 @@ msgstr "" msgid "Search user" msgstr "" -#: apps/member/views.py:203 apps/member/views.py:389 +#: apps/member/views.py:205 apps/member/views.py:391 msgid "Note aliases" msgstr "" -#: apps/member/views.py:217 +#: apps/member/views.py:219 msgid "Update note picture" msgstr "" -#: apps/member/views.py:275 templates/member/profile_info.html:43 +#: apps/member/views.py:277 templates/member/profile_info.html:43 msgid "Manage auth token" msgstr "" -#: apps/member/views.py:303 +#: apps/member/views.py:305 msgid "Create new club" msgstr "" -#: apps/member/views.py:315 +#: apps/member/views.py:317 msgid "Search club" msgstr "" -#: apps/member/views.py:340 +#: apps/member/views.py:342 msgid "Club detail" msgstr "" -#: apps/member/views.py:406 +#: apps/member/views.py:408 msgid "Update club" msgstr "" -#: apps/member/views.py:440 +#: apps/member/views.py:442 msgid "Add new member to the club" msgstr "" -#: apps/member/views.py:581 apps/wei/views.py:862 +#: apps/member/views.py:583 apps/wei/views.py:861 msgid "" "This user don't have enough money to join this club, and can't have a " "negative balance." msgstr "" -#: apps/member/views.py:594 +#: apps/member/views.py:596 msgid "The membership must start after {:%m-%d-%Y}." msgstr "" -#: apps/member/views.py:599 +#: apps/member/views.py:601 msgid "The membership must begin before {:%m-%d-%Y}." msgstr "" -#: apps/member/views.py:616 apps/member/views.py:618 apps/member/views.py:620 +#: apps/member/views.py:618 apps/member/views.py:620 apps/member/views.py:622 #: apps/registration/views.py:292 apps/registration/views.py:294 -#: apps/registration/views.py:296 apps/wei/views.py:867 apps/wei/views.py:871 +#: apps/registration/views.py:296 apps/wei/views.py:866 apps/wei/views.py:870 msgid "This field is required." msgstr "" -#: apps/member/views.py:704 +#: apps/member/views.py:706 msgid "Manage roles of an user in the club" msgstr "" -#: apps/member/views.py:729 +#: apps/member/views.py:731 msgid "Members of the club" msgstr "" @@ -695,7 +707,7 @@ msgstr "" msgid "Destination" msgstr "" -#: apps/note/forms.py:82 templates/note/transaction_form.html:104 +#: apps/note/forms.py:82 templates/note/transaction_form.html:106 msgid "Reason" msgstr "" @@ -883,68 +895,68 @@ msgid "" "The note balances must be between - 21 474 836.47 € and 21 474 836.47 €." msgstr "" -#: apps/note/models/transactions.py:214 +#: apps/note/models/transactions.py:212 msgid "" "The transaction can't be saved since the source note or the destination note " "is not active." msgstr "" -#: apps/note/models/transactions.py:260 +#: apps/note/models/transactions.py:257 #: templates/activity/activity_entry.html:13 templates/base.html:99 #: templates/note/transaction_form.html:15 -#: templates/note/transaction_form.html:143 +#: templates/note/transaction_form.html:145 msgid "Transfer" msgstr "" -#: apps/note/models/transactions.py:284 +#: apps/note/models/transactions.py:281 msgid "Template" msgstr "" -#: apps/note/models/transactions.py:287 +#: apps/note/models/transactions.py:284 msgid "recurrent transaction" msgstr "" -#: apps/note/models/transactions.py:288 +#: apps/note/models/transactions.py:285 msgid "recurrent transactions" msgstr "" -#: apps/note/models/transactions.py:303 +#: apps/note/models/transactions.py:300 msgid "first_name" msgstr "" -#: apps/note/models/transactions.py:308 +#: apps/note/models/transactions.py:305 msgid "bank" msgstr "" -#: apps/note/models/transactions.py:314 +#: apps/note/models/transactions.py:311 #: templates/activity/activity_entry.html:17 #: templates/note/transaction_form.html:20 msgid "Credit" msgstr "" -#: apps/note/models/transactions.py:314 templates/note/transaction_form.html:24 +#: apps/note/models/transactions.py:311 templates/note/transaction_form.html:25 msgid "Debit" msgstr "" -#: apps/note/models/transactions.py:325 +#: apps/note/models/transactions.py:322 msgid "" "A special transaction is only possible between a Note associated to a " "payment method and a User or a Club" msgstr "" -#: apps/note/models/transactions.py:329 +#: apps/note/models/transactions.py:326 msgid "Special transaction" msgstr "" -#: apps/note/models/transactions.py:330 +#: apps/note/models/transactions.py:327 msgid "Special transactions" msgstr "" -#: apps/note/models/transactions.py:346 apps/note/models/transactions.py:351 +#: apps/note/models/transactions.py:343 apps/note/models/transactions.py:348 msgid "membership transaction" msgstr "" -#: apps/note/models/transactions.py:347 apps/treasury/models.py:228 +#: apps/note/models/transactions.py:344 apps/treasury/models.py:228 msgid "membership transactions" msgstr "" @@ -973,103 +985,103 @@ msgstr "" msgid "Edit" msgstr "" -#: apps/note/views.py:35 +#: apps/note/views.py:34 msgid "Transfer money" msgstr "" -#: apps/note/views.py:75 +#: apps/note/views.py:74 msgid "Create new button" msgstr "" -#: apps/note/views.py:84 +#: apps/note/views.py:83 msgid "Search button" msgstr "" -#: apps/note/views.py:107 +#: apps/note/views.py:106 msgid "Update button" msgstr "" -#: apps/note/views.py:144 templates/base.html:94 +#: apps/note/views.py:143 templates/base.html:94 msgid "Consumptions" msgstr "" -#: apps/note/views.py:180 +#: apps/note/views.py:179 msgid "Search transactions" msgstr "" -#: apps/permission/models.py:92 +#: apps/permission/models.py:91 #, python-brace-format msgid "Can {type} {model}.{field} in {query}" msgstr "" -#: apps/permission/models.py:94 +#: apps/permission/models.py:93 #, python-brace-format msgid "Can {type} {model} in {query}" msgstr "" -#: apps/permission/models.py:107 +#: apps/permission/models.py:106 msgid "rank" msgstr "" -#: apps/permission/models.py:120 +#: apps/permission/models.py:119 msgid "permission mask" msgstr "" -#: apps/permission/models.py:121 +#: apps/permission/models.py:120 msgid "permission masks" msgstr "" -#: apps/permission/models.py:127 +#: apps/permission/models.py:126 msgid "add" msgstr "" -#: apps/permission/models.py:128 +#: apps/permission/models.py:127 msgid "view" msgstr "" -#: apps/permission/models.py:129 +#: apps/permission/models.py:128 msgid "change" msgstr "" -#: apps/permission/models.py:161 +#: apps/permission/models.py:160 msgid "query" msgstr "" -#: apps/permission/models.py:174 +#: apps/permission/models.py:173 msgid "mask" msgstr "" -#: apps/permission/models.py:180 +#: apps/permission/models.py:179 msgid "field" msgstr "" -#: apps/permission/models.py:185 +#: apps/permission/models.py:184 msgid "" "Tells if the permission should be granted even if the membership of the user " "is expired." msgstr "" -#: apps/permission/models.py:186 templates/permission/all_rights.html:36 +#: apps/permission/models.py:185 templates/permission/all_rights.html:36 msgid "permanent" msgstr "" -#: apps/permission/models.py:197 +#: apps/permission/models.py:196 msgid "permission" msgstr "" -#: apps/permission/models.py:198 apps/permission/models.py:337 +#: apps/permission/models.py:197 apps/permission/models.py:336 msgid "permissions" msgstr "" -#: apps/permission/models.py:203 +#: apps/permission/models.py:202 msgid "Specifying field applies only to view and change permission types." msgstr "" -#: apps/permission/models.py:342 +#: apps/permission/models.py:341 msgid "for club" msgstr "" -#: apps/permission/models.py:352 apps/permission/models.py:353 +#: apps/permission/models.py:351 apps/permission/models.py:352 msgid "role permissions" msgstr "" @@ -1218,7 +1230,7 @@ msgid "No attached remittance" msgstr "" #: apps/treasury/forms.py:136 apps/treasury/tables.py:47 -#: apps/treasury/tables.py:115 templates/note/transaction_form.html:97 +#: apps/treasury/tables.py:115 templates/note/transaction_form.html:99 #: templates/treasury/remittance_form.html:18 msgid "Amount" msgstr "" @@ -1239,7 +1251,7 @@ msgstr "" msgid "Description" msgstr "" -#: apps/treasury/models.py:49 templates/note/transaction_form.html:123 +#: apps/treasury/models.py:49 templates/note/transaction_form.html:125 msgid "Name" msgstr "" @@ -1412,198 +1424,198 @@ msgstr "" msgid "Manage credits from the Société générale" msgstr "" -#: apps/wei/apps.py:10 apps/wei/models.py:50 apps/wei/models.py:51 -#: apps/wei/models.py:62 apps/wei/models.py:168 templates/base.html:124 +#: apps/wei/apps.py:10 apps/wei/models.py:49 apps/wei/models.py:50 +#: apps/wei/models.py:61 apps/wei/models.py:167 templates/base.html:124 msgid "WEI" msgstr "" -#: apps/wei/forms/registration.py:50 apps/wei/models.py:114 -#: apps/wei/models.py:299 +#: apps/wei/forms/registration.py:49 apps/wei/models.py:113 +#: apps/wei/models.py:298 msgid "bus" msgstr "" -#: apps/wei/forms/registration.py:51 +#: apps/wei/forms/registration.py:50 msgid "" "This choice is not definitive. The WEI organizers are free to attribute for " "you a bus and a team, in particular if you are a free eletron." msgstr "" -#: apps/wei/forms/registration.py:58 +#: apps/wei/forms/registration.py:57 msgid "Team" msgstr "" -#: apps/wei/forms/registration.py:60 +#: apps/wei/forms/registration.py:59 msgid "" "Leave this field empty if you won't be in a team (staff, bus chief, free " "electron)" msgstr "" -#: apps/wei/forms/registration.py:66 apps/wei/forms/registration.py:76 -#: apps/wei/models.py:149 +#: apps/wei/forms/registration.py:65 apps/wei/forms/registration.py:75 +#: apps/wei/models.py:148 msgid "WEI Roles" msgstr "" -#: apps/wei/forms/registration.py:67 +#: apps/wei/forms/registration.py:66 msgid "Select the roles that you are interested in." msgstr "" -#: apps/wei/forms/registration.py:112 +#: apps/wei/forms/registration.py:111 msgid "This team doesn't belong to the given bus." msgstr "" -#: apps/wei/models.py:25 templates/wei/weiclub_info.html:23 +#: apps/wei/models.py:24 templates/wei/weiclub_info.html:23 msgid "year" msgstr "" -#: apps/wei/models.py:29 templates/wei/weiclub_info.html:17 +#: apps/wei/models.py:28 templates/wei/weiclub_info.html:17 msgid "date start" msgstr "" -#: apps/wei/models.py:33 templates/wei/weiclub_info.html:20 +#: apps/wei/models.py:32 templates/wei/weiclub_info.html:20 msgid "date end" msgstr "" -#: apps/wei/models.py:78 +#: apps/wei/models.py:77 msgid "survey information" msgstr "" -#: apps/wei/models.py:79 +#: apps/wei/models.py:78 msgid "Information about the survey for new members, encoded in JSON" msgstr "" -#: apps/wei/models.py:101 +#: apps/wei/models.py:100 msgid "Bus" msgstr "" -#: apps/wei/models.py:102 templates/wei/weiclub_tables.html:32 +#: apps/wei/models.py:101 templates/wei/weiclub_tables.html:32 msgid "Buses" msgstr "" -#: apps/wei/models.py:123 +#: apps/wei/models.py:122 msgid "color" msgstr "" -#: apps/wei/models.py:124 +#: apps/wei/models.py:123 msgid "The color of the T-Shirt, stored with its number equivalent" msgstr "" -#: apps/wei/models.py:138 +#: apps/wei/models.py:137 msgid "Bus team" msgstr "" -#: apps/wei/models.py:139 +#: apps/wei/models.py:138 msgid "Bus teams" msgstr "" -#: apps/wei/models.py:148 +#: apps/wei/models.py:147 msgid "WEI Role" msgstr "" -#: apps/wei/models.py:173 +#: apps/wei/models.py:172 msgid "Credit from Société générale" msgstr "" -#: apps/wei/models.py:178 +#: apps/wei/models.py:177 msgid "Caution check given" msgstr "" -#: apps/wei/models.py:182 templates/wei/weimembership_form.html:68 +#: apps/wei/models.py:181 templates/wei/weimembership_form.html:68 msgid "birth date" msgstr "" -#: apps/wei/models.py:188 apps/wei/models.py:198 +#: apps/wei/models.py:187 apps/wei/models.py:197 msgid "Male" msgstr "" -#: apps/wei/models.py:189 apps/wei/models.py:199 +#: apps/wei/models.py:188 apps/wei/models.py:198 msgid "Female" msgstr "" -#: apps/wei/models.py:190 +#: apps/wei/models.py:189 msgid "Non binary" msgstr "" -#: apps/wei/models.py:192 templates/wei/weimembership_form.html:59 +#: apps/wei/models.py:191 templates/wei/weimembership_form.html:59 msgid "gender" msgstr "" -#: apps/wei/models.py:201 templates/wei/weimembership_form.html:62 +#: apps/wei/models.py:200 templates/wei/weimembership_form.html:62 msgid "clothing cut" msgstr "" -#: apps/wei/models.py:214 templates/wei/weimembership_form.html:65 +#: apps/wei/models.py:213 templates/wei/weimembership_form.html:65 msgid "clothing size" msgstr "" -#: apps/wei/models.py:220 templates/wei/weimembership_form.html:71 +#: apps/wei/models.py:219 templates/wei/weimembership_form.html:71 msgid "health issues" msgstr "" -#: apps/wei/models.py:225 templates/wei/weimembership_form.html:74 +#: apps/wei/models.py:224 templates/wei/weimembership_form.html:74 msgid "emergency contact name" msgstr "" -#: apps/wei/models.py:230 templates/wei/weimembership_form.html:77 +#: apps/wei/models.py:229 templates/wei/weimembership_form.html:77 msgid "emergency contact phone" msgstr "" -#: apps/wei/models.py:235 templates/wei/weimembership_form.html:80 +#: apps/wei/models.py:234 templates/wei/weimembership_form.html:80 msgid "" "Register on the mailing list to stay informed of the events of the campus (1 " "mail/week)" msgstr "" -#: apps/wei/models.py:240 templates/wei/weimembership_form.html:83 +#: apps/wei/models.py:239 templates/wei/weimembership_form.html:83 msgid "" "Register on the mailing list to stay informed of the sport events of the " "campus (1 mail/week)" msgstr "" -#: apps/wei/models.py:245 templates/wei/weimembership_form.html:86 +#: apps/wei/models.py:244 templates/wei/weimembership_form.html:86 msgid "" "Register on the mailing list to stay informed of the art events of the " "campus (1 mail/week)" msgstr "" -#: apps/wei/models.py:250 templates/wei/weimembership_form.html:56 +#: apps/wei/models.py:249 templates/wei/weimembership_form.html:56 msgid "first year" msgstr "" -#: apps/wei/models.py:251 +#: apps/wei/models.py:250 msgid "Tells if the user is new in the school." msgstr "" -#: apps/wei/models.py:256 +#: apps/wei/models.py:255 msgid "registration information" msgstr "" -#: apps/wei/models.py:257 +#: apps/wei/models.py:256 msgid "" "Information about the registration (buses for old members, survey fot the " "new members), encoded in JSON" msgstr "" -#: apps/wei/models.py:288 +#: apps/wei/models.py:287 msgid "WEI User" msgstr "" -#: apps/wei/models.py:289 +#: apps/wei/models.py:288 msgid "WEI Users" msgstr "" -#: apps/wei/models.py:309 +#: apps/wei/models.py:308 msgid "team" msgstr "" -#: apps/wei/models.py:319 +#: apps/wei/models.py:318 msgid "WEI registration" msgstr "" -#: apps/wei/models.py:323 +#: apps/wei/models.py:322 msgid "WEI membership" msgstr "" -#: apps/wei/models.py:324 +#: apps/wei/models.py:323 msgid "WEI memberships" msgstr "" @@ -1629,113 +1641,113 @@ msgstr "" msgid "members" msgstr "" -#: apps/wei/views.py:57 +#: apps/wei/views.py:56 msgid "Search WEI" msgstr "" -#: apps/wei/views.py:75 templates/wei/weiclub_list.html:10 +#: apps/wei/views.py:74 templates/wei/weiclub_list.html:10 msgid "Create WEI" msgstr "" -#: apps/wei/views.py:95 +#: apps/wei/views.py:94 msgid "WEI Detail" msgstr "" -#: apps/wei/views.py:190 +#: apps/wei/views.py:189 msgid "View members of the WEI" msgstr "" -#: apps/wei/views.py:218 +#: apps/wei/views.py:217 msgid "Find WEI Membership" msgstr "" -#: apps/wei/views.py:228 +#: apps/wei/views.py:227 msgid "View registrations to the WEI" msgstr "" -#: apps/wei/views.py:252 +#: apps/wei/views.py:251 msgid "Find WEI Registration" msgstr "" -#: apps/wei/views.py:263 +#: apps/wei/views.py:262 msgid "Update the WEI" msgstr "" -#: apps/wei/views.py:284 +#: apps/wei/views.py:283 msgid "Create new bus" msgstr "" -#: apps/wei/views.py:315 +#: apps/wei/views.py:314 msgid "Update bus" msgstr "" -#: apps/wei/views.py:345 +#: apps/wei/views.py:344 msgid "Manage bus" msgstr "" -#: apps/wei/views.py:372 +#: apps/wei/views.py:371 msgid "Create new team" msgstr "" -#: apps/wei/views.py:404 +#: apps/wei/views.py:403 msgid "Update team" msgstr "" -#: apps/wei/views.py:435 +#: apps/wei/views.py:434 msgid "Manage WEI team" msgstr "" -#: apps/wei/views.py:457 +#: apps/wei/views.py:456 msgid "Register first year student to the WEI" msgstr "" -#: apps/wei/views.py:469 templates/wei/weiclub_info.html:62 +#: apps/wei/views.py:468 templates/wei/weiclub_info.html:62 msgid "Register 1A" msgstr "" -#: apps/wei/views.py:490 apps/wei/views.py:561 +#: apps/wei/views.py:489 apps/wei/views.py:560 msgid "This user is already registered to this WEI." msgstr "" -#: apps/wei/views.py:495 +#: apps/wei/views.py:494 msgid "" "This user can't be in her/his first year since he/she has already participed " "to a WEI." msgstr "" -#: apps/wei/views.py:512 +#: apps/wei/views.py:511 msgid "Register old student to the WEI" msgstr "" -#: apps/wei/views.py:524 templates/wei/weiclub_info.html:65 +#: apps/wei/views.py:523 templates/wei/weiclub_info.html:65 msgid "Register 2A+" msgstr "" -#: apps/wei/views.py:543 apps/wei/views.py:628 +#: apps/wei/views.py:542 apps/wei/views.py:627 msgid "You already opened an account in the Société générale." msgstr "" -#: apps/wei/views.py:591 +#: apps/wei/views.py:590 msgid "Update WEI Registration" msgstr "" -#: apps/wei/views.py:687 +#: apps/wei/views.py:686 msgid "Delete WEI registration" msgstr "" -#: apps/wei/views.py:698 +#: apps/wei/views.py:697 msgid "You don't have the right to delete this WEI registration." msgstr "" -#: apps/wei/views.py:717 +#: apps/wei/views.py:716 msgid "Validate WEI registration" msgstr "" -#: apps/wei/views.py:856 +#: apps/wei/views.py:855 msgid "This user didn't give her/his caution check." msgstr "" -#: apps/wei/views.py:918 apps/wei/views.py:971 apps/wei/views.py:981 +#: apps/wei/views.py:917 apps/wei/views.py:970 apps/wei/views.py:980 #: templates/wei/survey.html:12 templates/wei/survey_closed.html:12 #: templates/wei/survey_end.html:12 msgid "Survey WEI" @@ -1797,40 +1809,12 @@ msgid "" "soon. You can now drink a beer." msgstr "" -#: templates/activity/activity_detail.html:29 -msgid "creater" -msgstr "" - -#: templates/activity/activity_detail.html:50 -msgid "opened" -msgstr "" - -#: templates/activity/activity_detail.html:57 -msgid "Entry page" -msgstr "" - -#: templates/activity/activity_detail.html:61 -msgid "close" -msgstr "" - -#: templates/activity/activity_detail.html:64 -msgid "invalidate" -msgstr "" - -#: templates/activity/activity_detail.html:64 -msgid "validate" -msgstr "" - -#: templates/activity/activity_detail.html:70 -msgid "Invite" -msgstr "" - -#: templates/activity/activity_detail.html:77 +#: templates/activity/activity_detail.html:14 msgid "Guests list" msgstr "" #: templates/activity/activity_entry.html:22 -#: templates/note/transaction_form.html:29 +#: templates/note/transaction_form.html:31 msgid "Entries" msgstr "" @@ -1838,19 +1822,51 @@ msgstr "" msgid "Return to activity page" msgstr "" -#: templates/activity/activity_list.html:5 +#: templates/activity/activity_info.html:32 +msgid "creater" +msgstr "" + +#: templates/activity/activity_info.html:53 +msgid "opened" +msgstr "" + +#: templates/activity/activity_info.html:60 +msgid "Entry page" +msgstr "" + +#: templates/activity/activity_info.html:65 +msgid "close" +msgstr "" + +#: templates/activity/activity_info.html:68 +msgid "invalidate" +msgstr "" + +#: templates/activity/activity_info.html:68 +msgid "validate" +msgstr "" + +#: templates/activity/activity_info.html:74 +msgid "Invite" +msgstr "" + +#: templates/activity/activity_list.html:6 +msgid "Current activity" +msgstr "" + +#: templates/activity/activity_list.html:13 msgid "Upcoming activities" msgstr "" -#: templates/activity/activity_list.html:10 +#: templates/activity/activity_list.html:18 msgid "There is no planned activity." msgstr "" -#: templates/activity/activity_list.html:14 +#: templates/activity/activity_list.html:22 msgid "New activity" msgstr "" -#: templates/activity/activity_list.html:18 +#: templates/activity/activity_list.html:26 msgid "All activities" msgstr "" @@ -2039,8 +2055,8 @@ msgstr "" msgid "Consum" msgstr "" -#: templates/note/conso_form.html:41 templates/note/transaction_form.html:57 -#: templates/note/transaction_form.html:78 +#: templates/note/conso_form.html:41 templates/note/transaction_form.html:59 +#: templates/note/transaction_form.html:80 msgid "Name or alias..." msgstr "" @@ -2064,27 +2080,27 @@ msgstr "" msgid "Double consumptions" msgstr "" -#: templates/note/conso_form.html:152 templates/note/transaction_form.html:154 +#: templates/note/conso_form.html:152 templates/note/transaction_form.html:156 msgid "Recent transactions history" msgstr "" -#: templates/note/transaction_form.html:51 +#: templates/note/transaction_form.html:53 msgid "Select emitters" msgstr "" -#: templates/note/transaction_form.html:61 +#: templates/note/transaction_form.html:63 msgid "I am the emitter" msgstr "" -#: templates/note/transaction_form.html:72 +#: templates/note/transaction_form.html:74 msgid "Select receivers" msgstr "" -#: templates/note/transaction_form.html:89 +#: templates/note/transaction_form.html:91 msgid "Action" msgstr "" -#: templates/note/transaction_form.html:113 +#: templates/note/transaction_form.html:115 msgid "Transfer type" msgstr "" diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 4c65a5ac..e9b09431 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-05 23:17+0200\n" +"POT-Creation-Date: 2020-08-06 17:40+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,160 +18,172 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps/activity/apps.py:10 apps/activity/models.py:106 -#: apps/activity/models.py:121 +#: apps/activity/apps.py:10 apps/activity/models.py:139 +#: apps/activity/models.py:154 msgid "activity" msgstr "activité" -#: apps/activity/forms.py:45 apps/activity/models.py:217 +#: apps/activity/forms.py:47 apps/activity/models.py:250 msgid "You can't invite someone once the activity is started." msgstr "" "Vous ne pouvez pas inviter quelqu'un une fois que l'activité a démarré." -#: apps/activity/forms.py:48 apps/activity/models.py:220 +#: apps/activity/forms.py:50 apps/activity/models.py:253 msgid "This activity is not validated yet." msgstr "Cette activité n'est pas encore validée." -#: apps/activity/forms.py:58 apps/activity/models.py:228 +#: apps/activity/forms.py:61 apps/activity/models.py:261 msgid "This person has been already invited 5 times this year." msgstr "Cette personne a déjà été invitée 5 fois cette année." -#: apps/activity/forms.py:62 apps/activity/models.py:232 +#: apps/activity/forms.py:65 apps/activity/models.py:265 msgid "This person is already invited." msgstr "Cette personne est déjà invitée." -#: apps/activity/forms.py:66 apps/activity/models.py:236 +#: apps/activity/forms.py:69 apps/activity/models.py:269 msgid "You can't invite more than 3 people to this activity." msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité." -#: apps/activity/models.py:24 apps/activity/models.py:49 -#: apps/member/models.py:173 apps/note/models/notes.py:212 +#: apps/activity/models.py:27 apps/activity/models.py:62 +#: apps/member/models.py:172 apps/note/models/notes.py:212 #: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45 -#: apps/note/models/transactions.py:298 apps/permission/models.py:332 -#: apps/wei/models.py:67 apps/wei/models.py:119 +#: apps/note/models/transactions.py:295 apps/permission/models.py:331 +#: apps/wei/models.py:66 apps/wei/models.py:118 #: templates/member/club_info.html:13 templates/member/profile_info.html:14 #: templates/registration/future_profile_detail.html:16 #: templates/wei/weiclub_info.html:13 templates/wei/weimembership_form.html:18 msgid "name" msgstr "nom" -#: apps/activity/models.py:28 templates/activity/activity_detail.html:39 +#: apps/activity/models.py:32 +msgid "manage entries" +msgstr "gérer les entrées" + +#: apps/activity/models.py:33 +msgid "Enable the support of entries for this activity." +msgstr "Activer le support des entrées pour cette activité." + +#: apps/activity/models.py:38 templates/activity/activity_info.html:42 msgid "can invite" msgstr "peut inviter" -#: apps/activity/models.py:31 templates/activity/activity_detail.html:43 +#: apps/activity/models.py:43 templates/activity/activity_info.html:46 msgid "guest entry fee" msgstr "cotisation de l'entrée invité" -#: apps/activity/models.py:35 +#: apps/activity/models.py:48 msgid "activity type" msgstr "type d'activité" -#: apps/activity/models.py:36 +#: apps/activity/models.py:49 msgid "activity types" msgstr "types d'activité" -#: apps/activity/models.py:54 apps/note/models/transactions.py:81 -#: apps/permission/models.py:113 apps/permission/models.py:192 -#: apps/wei/models.py:73 apps/wei/models.py:130 -#: templates/activity/activity_detail.html:16 +#: apps/activity/models.py:67 apps/note/models/transactions.py:81 +#: apps/permission/models.py:112 apps/permission/models.py:191 +#: apps/wei/models.py:72 apps/wei/models.py:129 +#: templates/activity/activity_info.html:19 msgid "description" msgstr "description" -#: apps/activity/models.py:61 apps/note/models/notes.py:188 -#: apps/note/models/transactions.py:66 apps/permission/models.py:167 -#: templates/activity/activity_detail.html:19 +#: apps/activity/models.py:71 +msgid "location" +msgstr "lieu" + +#: apps/activity/models.py:81 apps/note/models/notes.py:188 +#: apps/note/models/transactions.py:66 apps/permission/models.py:166 +#: templates/activity/activity_info.html:22 msgid "type" msgstr "type" -#: apps/activity/models.py:67 apps/logs/models.py:22 apps/member/models.py:281 +#: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:280 #: apps/note/models/notes.py:126 apps/treasury/models.py:222 -#: apps/wei/models.py:161 templates/treasury/sogecredit_detail.html:14 +#: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14 #: templates/wei/survey.html:16 msgid "user" msgstr "utilisateur" -#: apps/activity/models.py:74 templates/activity/activity_detail.html:33 +#: apps/activity/models.py:94 templates/activity/activity_info.html:36 msgid "organizer" msgstr "organisateur" -#: apps/activity/models.py:81 templates/activity/activity_detail.html:36 +#: apps/activity/models.py:101 templates/activity/activity_info.html:39 msgid "attendees club" msgstr "club attendu" -#: apps/activity/models.py:85 templates/activity/activity_detail.html:22 +#: apps/activity/models.py:105 templates/activity/activity_info.html:25 msgid "start date" msgstr "date de début" -#: apps/activity/models.py:89 templates/activity/activity_detail.html:25 +#: apps/activity/models.py:109 templates/activity/activity_info.html:28 msgid "end date" msgstr "date de fin" -#: apps/activity/models.py:94 apps/note/models/transactions.py:146 -#: templates/activity/activity_detail.html:47 +#: apps/activity/models.py:114 apps/note/models/transactions.py:146 +#: templates/activity/activity_info.html:50 msgid "valid" msgstr "valide" -#: apps/activity/models.py:99 templates/activity/activity_detail.html:61 +#: apps/activity/models.py:119 templates/activity/activity_info.html:65 msgid "open" msgstr "ouvrir" -#: apps/activity/models.py:107 +#: apps/activity/models.py:140 msgid "activities" msgstr "activités" -#: apps/activity/models.py:126 +#: apps/activity/models.py:159 msgid "entry time" msgstr "heure d'entrée" -#: apps/activity/models.py:132 apps/note/apps.py:14 +#: apps/activity/models.py:165 apps/note/apps.py:14 #: apps/note/models/notes.py:60 msgid "note" msgstr "note" -#: apps/activity/models.py:143 templates/activity/activity_entry.html:38 +#: apps/activity/models.py:176 templates/activity/activity_entry.html:38 msgid "entry" msgstr "entrée" -#: apps/activity/models.py:144 templates/activity/activity_entry.html:38 +#: apps/activity/models.py:177 templates/activity/activity_entry.html:38 msgid "entries" msgstr "entrées" -#: apps/activity/models.py:150 +#: apps/activity/models.py:183 msgid "Already entered on " msgstr "Déjà rentré le " -#: apps/activity/models.py:150 apps/activity/tables.py:54 +#: apps/activity/models.py:183 apps/activity/tables.py:54 msgid "{:%Y-%m-%d %H:%M:%S}" msgstr "{:%d/%m/%Y %H:%M:%S}" -#: apps/activity/models.py:158 +#: apps/activity/models.py:191 msgid "The balance is negative." msgstr "La note est en négatif." -#: apps/activity/models.py:188 +#: apps/activity/models.py:221 msgid "last name" msgstr "nom de famille" -#: apps/activity/models.py:193 templates/member/profile_info.html:14 +#: apps/activity/models.py:226 templates/member/profile_info.html:14 #: templates/registration/future_profile_detail.html:16 #: templates/wei/weimembership_form.html:18 msgid "first name" msgstr "prénom" -#: apps/activity/models.py:200 +#: apps/activity/models.py:233 msgid "inviter" msgstr "hôte" -#: apps/activity/models.py:244 +#: apps/activity/models.py:277 msgid "guest" msgstr "invité" -#: apps/activity/models.py:245 +#: apps/activity/models.py:278 msgid "guests" msgstr "invités" -#: apps/activity/models.py:257 +#: apps/activity/models.py:290 msgid "Invitation" msgstr "Invitation" @@ -183,51 +195,51 @@ msgstr "Entré le " msgid "remove" msgstr "supprimer" -#: apps/activity/tables.py:75 apps/note/forms.py:76 apps/treasury/models.py:141 +#: apps/activity/tables.py:79 apps/note/forms.py:76 apps/treasury/models.py:141 msgid "Type" msgstr "Type" -#: apps/activity/tables.py:77 apps/member/forms.py:104 +#: apps/activity/tables.py:81 apps/member/forms.py:104 #: apps/registration/forms.py:70 apps/treasury/forms.py:130 -#: apps/wei/forms/registration.py:95 +#: apps/wei/forms/registration.py:94 msgid "Last name" msgstr "Nom de famille" -#: apps/activity/tables.py:79 apps/member/forms.py:109 +#: apps/activity/tables.py:83 apps/member/forms.py:109 #: apps/registration/forms.py:75 apps/treasury/forms.py:132 -#: apps/wei/forms/registration.py:100 templates/note/transaction_form.html:129 +#: apps/wei/forms/registration.py:99 templates/note/transaction_form.html:131 msgid "First name" msgstr "Prénom" -#: apps/activity/tables.py:81 apps/note/models/notes.py:69 +#: apps/activity/tables.py:85 apps/note/models/notes.py:69 msgid "Note" msgstr "Note" -#: apps/activity/tables.py:83 apps/member/tables.py:43 +#: apps/activity/tables.py:87 apps/member/tables.py:45 msgid "Balance" msgstr "Solde du compte" -#: apps/activity/views.py:26 +#: apps/activity/views.py:25 msgid "Create new activity" msgstr "Créer une nouvelle activité" -#: apps/activity/views.py:41 templates/base.html:114 +#: apps/activity/views.py:40 templates/base.html:114 msgid "Activities" msgstr "Activités" -#: apps/activity/views.py:61 +#: apps/activity/views.py:65 msgid "Activity detail" msgstr "Détails de l'activité" -#: apps/activity/views.py:78 +#: apps/activity/views.py:82 msgid "Update activity" msgstr "Modifier l'activité" -#: apps/activity/views.py:92 +#: apps/activity/views.py:96 msgid "Invite guest to the activity \"{}\"" msgstr "Invitation pour l'activité « {} »" -#: apps/activity/views.py:181 +#: apps/activity/views.py:190 msgid "Entry for activity \"{}\"" msgstr "Entrées pour l'activité « {} »" @@ -243,7 +255,7 @@ msgstr "Logs" msgid "IP Address" msgstr "Adresse IP" -#: apps/logs/models.py:36 apps/permission/models.py:137 +#: apps/logs/models.py:36 apps/permission/models.py:136 msgid "model" msgstr "Modèle" @@ -264,12 +276,12 @@ msgid "create" msgstr "Créer" #: apps/logs/models.py:62 apps/note/tables.py:160 -#: templates/activity/activity_detail.html:67 +#: templates/activity/activity_info.html:71 msgid "edit" msgstr "Modifier" #: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:165 -#: apps/permission/models.py:130 apps/wei/tables.py:73 +#: apps/permission/models.py:129 apps/wei/tables.py:73 msgid "delete" msgstr "Supprimer" @@ -293,21 +305,21 @@ msgstr "journal de modification" msgid "changelogs" msgstr "journaux de modifications" -#: apps/member/admin.py:52 apps/member/models.py:200 +#: apps/member/admin.py:52 apps/member/models.py:199 #: templates/member/club_info.html:41 msgid "membership fee (paid students)" msgstr "cotisation pour adhérer (normalien élève)" -#: apps/member/admin.py:53 apps/member/models.py:205 +#: apps/member/admin.py:53 apps/member/models.py:204 #: templates/member/club_info.html:44 msgid "membership fee (unpaid students)" msgstr "cotisation pour adhérer (normalien étudiant)" -#: apps/member/admin.py:67 apps/member/models.py:292 +#: apps/member/admin.py:67 apps/member/models.py:291 msgid "roles" msgstr "rôles" -#: apps/member/admin.py:68 apps/member/models.py:306 +#: apps/member/admin.py:68 apps/member/models.py:305 msgid "fee" msgstr "cotisation" @@ -333,12 +345,12 @@ msgid "Check this case is the Société Générale paid the inscription." msgstr "Cochez cette case si la Société Générale a payé l'inscription." #: apps/member/forms.py:90 apps/registration/forms.py:57 -#: apps/wei/forms/registration.py:82 +#: apps/wei/forms/registration.py:81 msgid "Credit type" msgstr "Type de rechargement" #: apps/member/forms.py:91 apps/registration/forms.py:58 -#: apps/wei/forms/registration.py:83 +#: apps/wei/forms/registration.py:82 msgid "No credit" msgstr "Pas de rechargement" @@ -347,13 +359,13 @@ msgid "You can credit the note of the user." msgstr "Vous pouvez créditer la note de l'utisateur avant l'adhésion." #: apps/member/forms.py:97 apps/registration/forms.py:63 -#: apps/wei/forms/registration.py:88 +#: apps/wei/forms/registration.py:87 msgid "Credit amount" msgstr "Montant à créditer" #: apps/member/forms.py:114 apps/registration/forms.py:80 -#: apps/treasury/forms.py:134 apps/wei/forms/registration.py:105 -#: templates/note/transaction_form.html:135 +#: apps/treasury/forms.py:134 apps/wei/forms/registration.py:104 +#: templates/note/transaction_form.html:137 msgid "Bank" msgstr "Banque" @@ -365,179 +377,179 @@ msgstr "Utilisateur" msgid "Roles" msgstr "Rôles" -#: apps/member/models.py:39 +#: apps/member/models.py:38 #: templates/registration/future_profile_detail.html:40 #: templates/wei/weimembership_form.html:48 msgid "phone number" msgstr "numéro de téléphone" -#: apps/member/models.py:46 templates/member/profile_info.html:29 +#: apps/member/models.py:45 templates/member/profile_info.html:29 #: templates/registration/future_profile_detail.html:34 #: templates/wei/weimembership_form.html:42 msgid "section" msgstr "section" -#: apps/member/models.py:47 +#: apps/member/models.py:46 msgid "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\"" msgstr "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\"" -#: apps/member/models.py:55 templates/wei/weimembership_form.html:36 +#: apps/member/models.py:54 templates/wei/weimembership_form.html:36 msgid "department" msgstr "département" -#: apps/member/models.py:57 +#: apps/member/models.py:56 msgid "Informatics (A0)" msgstr "Informatique (A0)" -#: apps/member/models.py:58 +#: apps/member/models.py:57 msgid "Mathematics (A1)" msgstr "Mathématiques (A1)" -#: apps/member/models.py:59 +#: apps/member/models.py:58 msgid "Physics (A2)" msgstr "Physique (A2)" -#: apps/member/models.py:60 +#: apps/member/models.py:59 msgid "Applied physics (A'2)" msgstr "Physique appliquée (A'2)" -#: apps/member/models.py:61 +#: apps/member/models.py:60 msgid "Chemistry (A''2)" msgstr "Chimie (A''2)" -#: apps/member/models.py:62 +#: apps/member/models.py:61 msgid "Biology (A3)" msgstr "Biologie (A3)" -#: apps/member/models.py:63 +#: apps/member/models.py:62 msgid "SAPHIRE (B1234)" msgstr "SAPHIRE (B1234)" -#: apps/member/models.py:64 +#: apps/member/models.py:63 msgid "Mechanics (B1)" msgstr "Mécanique (B1)" -#: apps/member/models.py:65 +#: apps/member/models.py:64 msgid "Civil engineering (B2)" msgstr "Génie civil (B2)" -#: apps/member/models.py:66 +#: apps/member/models.py:65 msgid "Mechanical engineering (B3)" msgstr "Génie mécanique (B3)" -#: apps/member/models.py:67 +#: apps/member/models.py:66 msgid "EEA (B4)" msgstr "EEA (B4)" -#: apps/member/models.py:68 +#: apps/member/models.py:67 msgid "Design (C)" msgstr "Design (C)" -#: apps/member/models.py:69 +#: apps/member/models.py:68 msgid "Economy-management (D2)" msgstr "Économie-gestion (D2)" -#: apps/member/models.py:70 +#: apps/member/models.py:69 msgid "Social sciences (D3)" msgstr "Sciences sociales (D3)" -#: apps/member/models.py:71 +#: apps/member/models.py:70 msgid "English (E)" msgstr "Anglais (E)" -#: apps/member/models.py:72 +#: apps/member/models.py:71 msgid "External (EXT)" msgstr "Externe (EXT)" -#: apps/member/models.py:79 +#: apps/member/models.py:78 msgid "promotion" msgstr "promotion" -#: apps/member/models.py:80 +#: apps/member/models.py:79 msgid "Year of entry to the school (None if not ENS student)" msgstr "Année d'entrée dans l'école (None si non-étudiant·e de l'ENS)" -#: apps/member/models.py:84 templates/member/profile_info.html:32 +#: apps/member/models.py:83 templates/member/profile_info.html:32 #: templates/registration/future_profile_detail.html:37 #: templates/wei/weimembership_form.html:45 msgid "address" msgstr "adresse" -#: apps/member/models.py:91 +#: apps/member/models.py:90 #: templates/registration/future_profile_detail.html:43 #: templates/wei/weimembership_form.html:51 msgid "paid" msgstr "payé" -#: apps/member/models.py:92 +#: apps/member/models.py:91 msgid "Tells if the user receive a salary." msgstr "Indique si l'utilisateur perçoit un salaire." -#: apps/member/models.py:97 +#: apps/member/models.py:96 msgid "report frequency (in days)" msgstr "fréquence des rapports (en jours)" -#: apps/member/models.py:102 +#: apps/member/models.py:101 msgid "last report date" msgstr "date de dernier rapport" -#: apps/member/models.py:107 +#: apps/member/models.py:106 msgid "email confirmed" msgstr "adresse email confirmée" -#: apps/member/models.py:112 +#: apps/member/models.py:111 msgid "registration valid" msgstr "inscription valid" -#: apps/member/models.py:141 apps/member/models.py:142 +#: apps/member/models.py:140 apps/member/models.py:141 msgid "user profile" msgstr "profil utilisateur" -#: apps/member/models.py:149 +#: apps/member/models.py:148 msgid "Activate your Note Kfet account" msgstr "Activez votre compte Note Kfet" -#: apps/member/models.py:178 templates/member/club_info.html:57 +#: apps/member/models.py:177 templates/member/club_info.html:57 #: templates/registration/future_profile_detail.html:22 #: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24 msgid "email" msgstr "courriel" -#: apps/member/models.py:185 +#: apps/member/models.py:184 msgid "parent club" msgstr "club parent" -#: apps/member/models.py:194 +#: apps/member/models.py:193 msgid "require memberships" msgstr "nécessite des adhésions" -#: apps/member/models.py:195 +#: apps/member/models.py:194 msgid "Uncheck if this club don't require memberships." msgstr "Décochez si ce club n'utilise pas d'adhésions." -#: apps/member/models.py:211 templates/member/club_info.html:33 +#: apps/member/models.py:210 templates/member/club_info.html:33 msgid "membership duration" msgstr "durée de l'adhésion" -#: apps/member/models.py:212 +#: apps/member/models.py:211 msgid "The longest time (in days) a membership can last (NULL = infinite)." msgstr "La durée maximale (en jours) d'une adhésion (NULL = infinie)." -#: apps/member/models.py:219 templates/member/club_info.html:23 +#: apps/member/models.py:218 templates/member/club_info.html:23 msgid "membership start" msgstr "début de l'adhésion" -#: apps/member/models.py:220 +#: apps/member/models.py:219 msgid "How long after January 1st the members can renew their membership." msgstr "" "Combien de temps après le 1er Janvier les adhérents peuvent renouveler leur " "adhésion." -#: apps/member/models.py:227 templates/member/club_info.html:28 +#: apps/member/models.py:226 templates/member/club_info.html:28 msgid "membership end" msgstr "fin de l'adhésion" -#: apps/member/models.py:228 +#: apps/member/models.py:227 msgid "" "How long the membership can last after January 1st of the next year after " "members can renew their membership." @@ -545,50 +557,50 @@ msgstr "" "Combien de temps l'adhésion peut durer après le 1er Janvier de l'année " "suivante avant que les adhérents peuvent renouveler leur adhésion." -#: apps/member/models.py:262 apps/member/models.py:287 +#: apps/member/models.py:261 apps/member/models.py:286 #: apps/note/models/notes.py:163 msgid "club" msgstr "club" -#: apps/member/models.py:263 +#: apps/member/models.py:262 msgid "clubs" msgstr "clubs" -#: apps/member/models.py:297 +#: apps/member/models.py:296 msgid "membership starts on" msgstr "l'adhésion commence le" -#: apps/member/models.py:301 +#: apps/member/models.py:300 msgid "membership ends on" msgstr "l'adhésion finit le" -#: apps/member/models.py:353 +#: apps/member/models.py:351 #, python-brace-format msgid "The role {role} does not apply to the club {club}." msgstr "Le rôle {role} ne s'applique pas au club {club}." -#: apps/member/models.py:364 apps/member/views.py:590 +#: apps/member/models.py:362 apps/member/views.py:592 msgid "User is already a member of the club" msgstr "L'utilisateur est déjà membre du club" -#: apps/member/models.py:411 +#: apps/member/models.py:409 msgid "User is not a member of the parent club" msgstr "L'utilisateur n'est pas membre du club parent" -#: apps/member/models.py:464 +#: apps/member/models.py:462 #, python-brace-format msgid "Membership of {user} for the club {club}" msgstr "Adhésion de {user} pour le club {club}" -#: apps/member/models.py:467 +#: apps/member/models.py:465 msgid "membership" msgstr "adhésion" -#: apps/member/models.py:468 +#: apps/member/models.py:466 msgid "memberships" msgstr "adhésions" -#: apps/member/tables.py:114 +#: apps/member/tables.py:116 msgid "Renew" msgstr "Renouveler" @@ -610,39 +622,39 @@ msgstr "Détails de l'utilisateur" msgid "Search user" msgstr "Chercher un utilisateur" -#: apps/member/views.py:203 apps/member/views.py:389 +#: apps/member/views.py:205 apps/member/views.py:391 msgid "Note aliases" msgstr "Alias de la note" -#: apps/member/views.py:217 +#: apps/member/views.py:219 msgid "Update note picture" msgstr "Modifier la photo de la note" -#: apps/member/views.py:275 templates/member/profile_info.html:43 +#: apps/member/views.py:277 templates/member/profile_info.html:43 msgid "Manage auth token" msgstr "Gérer les jetons d'authentification" -#: apps/member/views.py:303 +#: apps/member/views.py:305 msgid "Create new club" msgstr "Créer un nouveau club" -#: apps/member/views.py:315 +#: apps/member/views.py:317 msgid "Search club" msgstr "Chercher un club" -#: apps/member/views.py:340 +#: apps/member/views.py:342 msgid "Club detail" msgstr "Détails du club" -#: apps/member/views.py:406 +#: apps/member/views.py:408 msgid "Update club" msgstr "Modifier le club" -#: apps/member/views.py:440 +#: apps/member/views.py:442 msgid "Add new member to the club" msgstr "Ajouter un nouveau membre au club" -#: apps/member/views.py:581 apps/wei/views.py:862 +#: apps/member/views.py:583 apps/wei/views.py:861 msgid "" "This user don't have enough money to join this club, and can't have a " "negative balance." @@ -650,25 +662,25 @@ msgstr "" "Cet utilisateur n'a pas assez d'argent pour rejoindre ce club et ne peut pas " "avoir un solde négatif." -#: apps/member/views.py:594 +#: apps/member/views.py:596 msgid "The membership must start after {:%m-%d-%Y}." msgstr "L'adhésion doit commencer après le {:%d/%m/%Y}." -#: apps/member/views.py:599 +#: apps/member/views.py:601 msgid "The membership must begin before {:%m-%d-%Y}." msgstr "L'adhésion doit commencer avant le {:%d/%m/%Y}." -#: apps/member/views.py:616 apps/member/views.py:618 apps/member/views.py:620 +#: apps/member/views.py:618 apps/member/views.py:620 apps/member/views.py:622 #: apps/registration/views.py:292 apps/registration/views.py:294 -#: apps/registration/views.py:296 apps/wei/views.py:867 apps/wei/views.py:871 +#: apps/registration/views.py:296 apps/wei/views.py:866 apps/wei/views.py:870 msgid "This field is required." msgstr "Ce champ est requis." -#: apps/member/views.py:704 +#: apps/member/views.py:706 msgid "Manage roles of an user in the club" msgstr "Gérer les rôles d'un utilisateur dans le club" -#: apps/member/views.py:729 +#: apps/member/views.py:731 msgid "Members of the club" msgstr "Membres du club" @@ -702,7 +714,7 @@ msgstr "Source" msgid "Destination" msgstr "Destination" -#: apps/note/forms.py:82 templates/note/transaction_form.html:104 +#: apps/note/forms.py:82 templates/note/transaction_form.html:106 msgid "Reason" msgstr "Raison" @@ -893,7 +905,7 @@ msgstr "" "Les montants des notes doivent se trouver entre - 21 474 836.47 € et 21 474 " "836.47 €. Ne cherchez pas à capitaliser l'argent du BDE." -#: apps/note/models/transactions.py:214 +#: apps/note/models/transactions.py:212 msgid "" "The transaction can't be saved since the source note or the destination note " "is not active." @@ -901,44 +913,44 @@ msgstr "" "La transaction ne peut pas être sauvegardée puisque la note source ou la " "note de destination n'est pas active." -#: apps/note/models/transactions.py:260 +#: apps/note/models/transactions.py:257 #: templates/activity/activity_entry.html:13 templates/base.html:99 #: templates/note/transaction_form.html:15 -#: templates/note/transaction_form.html:143 +#: templates/note/transaction_form.html:145 msgid "Transfer" msgstr "Virement" -#: apps/note/models/transactions.py:284 +#: apps/note/models/transactions.py:281 msgid "Template" msgstr "Bouton" -#: apps/note/models/transactions.py:287 +#: apps/note/models/transactions.py:284 msgid "recurrent transaction" msgstr "Transaction issue de bouton" -#: apps/note/models/transactions.py:288 +#: apps/note/models/transactions.py:285 msgid "recurrent transactions" msgstr "Transactions issues de boutons" -#: apps/note/models/transactions.py:303 +#: apps/note/models/transactions.py:300 msgid "first_name" msgstr "prénom" -#: apps/note/models/transactions.py:308 +#: apps/note/models/transactions.py:305 msgid "bank" msgstr "banque" -#: apps/note/models/transactions.py:314 +#: apps/note/models/transactions.py:311 #: templates/activity/activity_entry.html:17 #: templates/note/transaction_form.html:20 msgid "Credit" msgstr "Crédit" -#: apps/note/models/transactions.py:314 templates/note/transaction_form.html:24 +#: apps/note/models/transactions.py:311 templates/note/transaction_form.html:25 msgid "Debit" msgstr "Débit" -#: apps/note/models/transactions.py:325 +#: apps/note/models/transactions.py:322 msgid "" "A special transaction is only possible between a Note associated to a " "payment method and a User or a Club" @@ -946,19 +958,19 @@ msgstr "" "Une transaction spéciale n'est possible que entre une note associée à un " "mode de paiement et un utilisateur ou un club." -#: apps/note/models/transactions.py:329 +#: apps/note/models/transactions.py:326 msgid "Special transaction" msgstr "Transaction de crédit/retrait" -#: apps/note/models/transactions.py:330 +#: apps/note/models/transactions.py:327 msgid "Special transactions" msgstr "Transactions de crédit/retrait" -#: apps/note/models/transactions.py:346 apps/note/models/transactions.py:351 +#: apps/note/models/transactions.py:343 apps/note/models/transactions.py:348 msgid "membership transaction" msgstr "Transaction d'adhésion" -#: apps/note/models/transactions.py:347 apps/treasury/models.py:228 +#: apps/note/models/transactions.py:344 apps/treasury/models.py:228 msgid "membership transactions" msgstr "Transactions d'adhésion" @@ -987,77 +999,77 @@ msgstr "Supprimer" msgid "Edit" msgstr "Éditer" -#: apps/note/views.py:35 +#: apps/note/views.py:34 msgid "Transfer money" msgstr "Transférer de l'argent" -#: apps/note/views.py:75 +#: apps/note/views.py:74 msgid "Create new button" msgstr "Créer un nouveau bouton" -#: apps/note/views.py:84 +#: apps/note/views.py:83 msgid "Search button" msgstr "Chercher un bouton" -#: apps/note/views.py:107 +#: apps/note/views.py:106 msgid "Update button" msgstr "Modifier le bouton" -#: apps/note/views.py:144 templates/base.html:94 +#: apps/note/views.py:143 templates/base.html:94 msgid "Consumptions" msgstr "Consommations" -#: apps/note/views.py:180 +#: apps/note/views.py:179 msgid "Search transactions" msgstr "Rechercher des transactions" -#: apps/permission/models.py:92 +#: apps/permission/models.py:91 #, python-brace-format msgid "Can {type} {model}.{field} in {query}" msgstr "Can {type} {model}.{field} in {query}" -#: apps/permission/models.py:94 +#: apps/permission/models.py:93 #, python-brace-format msgid "Can {type} {model} in {query}" msgstr "Can {type} {model} in {query}" -#: apps/permission/models.py:107 +#: apps/permission/models.py:106 msgid "rank" msgstr "Rang" -#: apps/permission/models.py:120 +#: apps/permission/models.py:119 msgid "permission mask" msgstr "masque de permissions" -#: apps/permission/models.py:121 +#: apps/permission/models.py:120 msgid "permission masks" msgstr "masques de permissions" -#: apps/permission/models.py:127 +#: apps/permission/models.py:126 msgid "add" msgstr "ajouter" -#: apps/permission/models.py:128 +#: apps/permission/models.py:127 msgid "view" msgstr "voir" -#: apps/permission/models.py:129 +#: apps/permission/models.py:128 msgid "change" msgstr "modifier" -#: apps/permission/models.py:161 +#: apps/permission/models.py:160 msgid "query" msgstr "requête" -#: apps/permission/models.py:174 +#: apps/permission/models.py:173 msgid "mask" msgstr "masque" -#: apps/permission/models.py:180 +#: apps/permission/models.py:179 msgid "field" msgstr "champ" -#: apps/permission/models.py:185 +#: apps/permission/models.py:184 msgid "" "Tells if the permission should be granted even if the membership of the user " "is expired." @@ -1065,29 +1077,29 @@ msgstr "" "Indique si la permission doit être attribuée même si l'adhésion de " "l'utilisateur est expirée." -#: apps/permission/models.py:186 templates/permission/all_rights.html:36 +#: apps/permission/models.py:185 templates/permission/all_rights.html:36 msgid "permanent" msgstr "permanent" -#: apps/permission/models.py:197 +#: apps/permission/models.py:196 msgid "permission" msgstr "permission" -#: apps/permission/models.py:198 apps/permission/models.py:337 +#: apps/permission/models.py:197 apps/permission/models.py:336 msgid "permissions" msgstr "permissions" -#: apps/permission/models.py:203 +#: apps/permission/models.py:202 msgid "Specifying field applies only to view and change permission types." msgstr "" "Spécifie le champ concerné, ne fonctionne que pour les permissions view et " "change." -#: apps/permission/models.py:342 +#: apps/permission/models.py:341 msgid "for club" msgstr "s'applique au club" -#: apps/permission/models.py:352 apps/permission/models.py:353 +#: apps/permission/models.py:351 apps/permission/models.py:352 msgid "role permissions" msgstr "Permissions par rôles" @@ -1247,7 +1259,7 @@ msgid "No attached remittance" msgstr "Pas de remise associée" #: apps/treasury/forms.py:136 apps/treasury/tables.py:47 -#: apps/treasury/tables.py:115 templates/note/transaction_form.html:97 +#: apps/treasury/tables.py:115 templates/note/transaction_form.html:99 #: templates/treasury/remittance_form.html:18 msgid "Amount" msgstr "Montant" @@ -1268,7 +1280,7 @@ msgstr "Objet" msgid "Description" msgstr "Description" -#: apps/treasury/models.py:49 templates/note/transaction_form.html:123 +#: apps/treasury/models.py:49 templates/note/transaction_form.html:125 msgid "Name" msgstr "Nom" @@ -1443,17 +1455,17 @@ msgstr "Liste des crédits de la Société générale" msgid "Manage credits from the Société générale" msgstr "Gérer les crédits de la Société générale" -#: apps/wei/apps.py:10 apps/wei/models.py:50 apps/wei/models.py:51 -#: apps/wei/models.py:62 apps/wei/models.py:168 templates/base.html:124 +#: apps/wei/apps.py:10 apps/wei/models.py:49 apps/wei/models.py:50 +#: apps/wei/models.py:61 apps/wei/models.py:167 templates/base.html:124 msgid "WEI" msgstr "WEI" -#: apps/wei/forms/registration.py:50 apps/wei/models.py:114 -#: apps/wei/models.py:299 +#: apps/wei/forms/registration.py:49 apps/wei/models.py:113 +#: apps/wei/models.py:298 msgid "bus" msgstr "Bus" -#: apps/wei/forms/registration.py:51 +#: apps/wei/forms/registration.py:50 msgid "" "This choice is not definitive. The WEI organizers are free to attribute for " "you a bus and a team, in particular if you are a free eletron." @@ -1462,11 +1474,11 @@ msgstr "" "attribuer un bus et une équipe, en particulier si vous êtes un électron " "libre." -#: apps/wei/forms/registration.py:58 +#: apps/wei/forms/registration.py:57 msgid "Team" msgstr "Équipe" -#: apps/wei/forms/registration.py:60 +#: apps/wei/forms/registration.py:59 msgid "" "Leave this field empty if you won't be in a team (staff, bus chief, free " "electron)" @@ -1474,118 +1486,118 @@ msgstr "" "Laissez ce champ vide si vous ne serez pas dans une équipe (staff, chef de " "bus ou électron libre)" -#: apps/wei/forms/registration.py:66 apps/wei/forms/registration.py:76 -#: apps/wei/models.py:149 +#: apps/wei/forms/registration.py:65 apps/wei/forms/registration.py:75 +#: apps/wei/models.py:148 msgid "WEI Roles" msgstr "Rôles au WEI" -#: apps/wei/forms/registration.py:67 +#: apps/wei/forms/registration.py:66 msgid "Select the roles that you are interested in." msgstr "Sélectionnez les rôles qui vous intéressent." -#: apps/wei/forms/registration.py:112 +#: apps/wei/forms/registration.py:111 msgid "This team doesn't belong to the given bus." msgstr "Cette équipe n'appartient pas à ce bus." -#: apps/wei/models.py:25 templates/wei/weiclub_info.html:23 +#: apps/wei/models.py:24 templates/wei/weiclub_info.html:23 msgid "year" msgstr "année" -#: apps/wei/models.py:29 templates/wei/weiclub_info.html:17 +#: apps/wei/models.py:28 templates/wei/weiclub_info.html:17 msgid "date start" msgstr "début" -#: apps/wei/models.py:33 templates/wei/weiclub_info.html:20 +#: apps/wei/models.py:32 templates/wei/weiclub_info.html:20 msgid "date end" msgstr "fin" -#: apps/wei/models.py:78 +#: apps/wei/models.py:77 msgid "survey information" msgstr "informations sur le questionnaire" -#: apps/wei/models.py:79 +#: apps/wei/models.py:78 msgid "Information about the survey for new members, encoded in JSON" msgstr "" "Informations sur le sondage pour les nouveaux membres, encodées en JSON" -#: apps/wei/models.py:101 +#: apps/wei/models.py:100 msgid "Bus" msgstr "Bus" -#: apps/wei/models.py:102 templates/wei/weiclub_tables.html:32 +#: apps/wei/models.py:101 templates/wei/weiclub_tables.html:32 msgid "Buses" msgstr "Bus" -#: apps/wei/models.py:123 +#: apps/wei/models.py:122 msgid "color" msgstr "couleur" -#: apps/wei/models.py:124 +#: apps/wei/models.py:123 msgid "The color of the T-Shirt, stored with its number equivalent" msgstr "" "La couleur du T-Shirt, stocké sous la forme de son équivalent numérique" -#: apps/wei/models.py:138 +#: apps/wei/models.py:137 msgid "Bus team" msgstr "Équipe de bus" -#: apps/wei/models.py:139 +#: apps/wei/models.py:138 msgid "Bus teams" msgstr "Équipes de bus" -#: apps/wei/models.py:148 +#: apps/wei/models.py:147 msgid "WEI Role" msgstr "Rôle au WEI" -#: apps/wei/models.py:173 +#: apps/wei/models.py:172 msgid "Credit from Société générale" msgstr "Crédit de la Société générale" -#: apps/wei/models.py:178 +#: apps/wei/models.py:177 msgid "Caution check given" msgstr "Chèque de caution donné" -#: apps/wei/models.py:182 templates/wei/weimembership_form.html:68 +#: apps/wei/models.py:181 templates/wei/weimembership_form.html:68 msgid "birth date" msgstr "date de naissance" -#: apps/wei/models.py:188 apps/wei/models.py:198 +#: apps/wei/models.py:187 apps/wei/models.py:197 msgid "Male" msgstr "Homme" -#: apps/wei/models.py:189 apps/wei/models.py:199 +#: apps/wei/models.py:188 apps/wei/models.py:198 msgid "Female" msgstr "Femme" -#: apps/wei/models.py:190 +#: apps/wei/models.py:189 msgid "Non binary" msgstr "Non-binaire" -#: apps/wei/models.py:192 templates/wei/weimembership_form.html:59 +#: apps/wei/models.py:191 templates/wei/weimembership_form.html:59 msgid "gender" msgstr "genre" -#: apps/wei/models.py:201 templates/wei/weimembership_form.html:62 +#: apps/wei/models.py:200 templates/wei/weimembership_form.html:62 msgid "clothing cut" msgstr "coupe de vêtement" -#: apps/wei/models.py:214 templates/wei/weimembership_form.html:65 +#: apps/wei/models.py:213 templates/wei/weimembership_form.html:65 msgid "clothing size" msgstr "taille de vêtement" -#: apps/wei/models.py:220 templates/wei/weimembership_form.html:71 +#: apps/wei/models.py:219 templates/wei/weimembership_form.html:71 msgid "health issues" msgstr "problèmes de santé" -#: apps/wei/models.py:225 templates/wei/weimembership_form.html:74 +#: apps/wei/models.py:224 templates/wei/weimembership_form.html:74 msgid "emergency contact name" msgstr "Nom du contact en cas d'urgence" -#: apps/wei/models.py:230 templates/wei/weimembership_form.html:77 +#: apps/wei/models.py:229 templates/wei/weimembership_form.html:77 msgid "emergency contact phone" msgstr "Téléphone du contact en cas d'urgence" -#: apps/wei/models.py:235 templates/wei/weimembership_form.html:80 +#: apps/wei/models.py:234 templates/wei/weimembership_form.html:80 msgid "" "Register on the mailing list to stay informed of the events of the campus (1 " "mail/week)" @@ -1593,7 +1605,7 @@ msgstr "" "S'inscrire sur la liste de diffusion pour rester informé des événements sur " "le campus (1 mail par semaine)" -#: apps/wei/models.py:240 templates/wei/weimembership_form.html:83 +#: apps/wei/models.py:239 templates/wei/weimembership_form.html:83 msgid "" "Register on the mailing list to stay informed of the sport events of the " "campus (1 mail/week)" @@ -1601,7 +1613,7 @@ msgstr "" "S'inscrire sur la liste de diffusion pour rester informé des actualités " "sportives sur le campus (1 mail par semaine)" -#: apps/wei/models.py:245 templates/wei/weimembership_form.html:86 +#: apps/wei/models.py:244 templates/wei/weimembership_form.html:86 msgid "" "Register on the mailing list to stay informed of the art events of the " "campus (1 mail/week)" @@ -1609,19 +1621,19 @@ msgstr "" "S'inscrire sur la liste de diffusion pour rester informé des actualités " "artistiques sur le campus (1 mail par semaine)" -#: apps/wei/models.py:250 templates/wei/weimembership_form.html:56 +#: apps/wei/models.py:249 templates/wei/weimembership_form.html:56 msgid "first year" msgstr "première année" -#: apps/wei/models.py:251 +#: apps/wei/models.py:250 msgid "Tells if the user is new in the school." msgstr "Indique si l'utilisateur est nouveau dans l'école." -#: apps/wei/models.py:256 +#: apps/wei/models.py:255 msgid "registration information" msgstr "informations sur l'inscription" -#: apps/wei/models.py:257 +#: apps/wei/models.py:256 msgid "" "Information about the registration (buses for old members, survey fot the " "new members), encoded in JSON" @@ -1629,27 +1641,27 @@ msgstr "" "Informations sur l'inscription (bus pour les 2A+, questionnaire pour les " "1A), encodées en JSON" -#: apps/wei/models.py:288 +#: apps/wei/models.py:287 msgid "WEI User" msgstr "Participant au WEI" -#: apps/wei/models.py:289 +#: apps/wei/models.py:288 msgid "WEI Users" msgstr "Participants au WEI" -#: apps/wei/models.py:309 +#: apps/wei/models.py:308 msgid "team" msgstr "équipe" -#: apps/wei/models.py:319 +#: apps/wei/models.py:318 msgid "WEI registration" msgstr "inscription au WEI" -#: apps/wei/models.py:323 +#: apps/wei/models.py:322 msgid "WEI membership" msgstr "adhésion au WEI" -#: apps/wei/models.py:324 +#: apps/wei/models.py:323 msgid "WEI memberships" msgstr "adhésions au WEI" @@ -1675,75 +1687,75 @@ msgstr "Nombre de membres" msgid "members" msgstr "adhérents" -#: apps/wei/views.py:57 +#: apps/wei/views.py:56 msgid "Search WEI" msgstr "Chercher un WEI" -#: apps/wei/views.py:75 templates/wei/weiclub_list.html:10 +#: apps/wei/views.py:74 templates/wei/weiclub_list.html:10 msgid "Create WEI" msgstr "Créer un WEI" -#: apps/wei/views.py:95 +#: apps/wei/views.py:94 msgid "WEI Detail" msgstr "Détails du WEI" -#: apps/wei/views.py:190 +#: apps/wei/views.py:189 msgid "View members of the WEI" msgstr "Voir les membres du WEI" -#: apps/wei/views.py:218 +#: apps/wei/views.py:217 msgid "Find WEI Membership" msgstr "Trouver une adhésion au WEI" -#: apps/wei/views.py:228 +#: apps/wei/views.py:227 msgid "View registrations to the WEI" msgstr "Voir les inscriptions au WEI" -#: apps/wei/views.py:252 +#: apps/wei/views.py:251 msgid "Find WEI Registration" msgstr "Trouver une inscription au WEI" -#: apps/wei/views.py:263 +#: apps/wei/views.py:262 msgid "Update the WEI" msgstr "Modifier le WEI" -#: apps/wei/views.py:284 +#: apps/wei/views.py:283 msgid "Create new bus" msgstr "Ajouter un nouveau bus" -#: apps/wei/views.py:315 +#: apps/wei/views.py:314 msgid "Update bus" msgstr "Modifier le bus" -#: apps/wei/views.py:345 +#: apps/wei/views.py:344 msgid "Manage bus" msgstr "Gérer le bus" -#: apps/wei/views.py:372 +#: apps/wei/views.py:371 msgid "Create new team" msgstr "Créer une nouvelle équipe" -#: apps/wei/views.py:404 +#: apps/wei/views.py:403 msgid "Update team" msgstr "Modifier l'équipe" -#: apps/wei/views.py:435 +#: apps/wei/views.py:434 msgid "Manage WEI team" msgstr "Gérer l'équipe WEI" -#: apps/wei/views.py:457 +#: apps/wei/views.py:456 msgid "Register first year student to the WEI" msgstr "Inscrire un 1A au WEI" -#: apps/wei/views.py:469 templates/wei/weiclub_info.html:62 +#: apps/wei/views.py:468 templates/wei/weiclub_info.html:62 msgid "Register 1A" msgstr "Inscrire un 1A" -#: apps/wei/views.py:490 apps/wei/views.py:561 +#: apps/wei/views.py:489 apps/wei/views.py:560 msgid "This user is already registered to this WEI." msgstr "Cette personne est déjà inscrite au WEI." -#: apps/wei/views.py:495 +#: apps/wei/views.py:494 msgid "" "This user can't be in her/his first year since he/she has already participed " "to a WEI." @@ -1751,39 +1763,39 @@ msgstr "" "Cet utilisateur ne peut pas être en première année puisqu'iel a déjà " "participé à un WEI." -#: apps/wei/views.py:512 +#: apps/wei/views.py:511 msgid "Register old student to the WEI" msgstr "Inscrire un 2A+ au WEI" -#: apps/wei/views.py:524 templates/wei/weiclub_info.html:65 +#: apps/wei/views.py:523 templates/wei/weiclub_info.html:65 msgid "Register 2A+" msgstr "Inscrire un 2A+" -#: apps/wei/views.py:543 apps/wei/views.py:628 +#: apps/wei/views.py:542 apps/wei/views.py:627 msgid "You already opened an account in the Société générale." msgstr "Vous avez déjà ouvert un compte auprès de la société générale." -#: apps/wei/views.py:591 +#: apps/wei/views.py:590 msgid "Update WEI Registration" msgstr "Modifier l'inscription WEI" -#: apps/wei/views.py:687 +#: apps/wei/views.py:686 msgid "Delete WEI registration" msgstr "Supprimer l'inscription WEI" -#: apps/wei/views.py:698 +#: apps/wei/views.py:697 msgid "You don't have the right to delete this WEI registration." msgstr "Vous n'avez pas la permission de supprimer cette inscription au WEI." -#: apps/wei/views.py:717 +#: apps/wei/views.py:716 msgid "Validate WEI registration" msgstr "Valider l'inscription WEI" -#: apps/wei/views.py:856 +#: apps/wei/views.py:855 msgid "This user didn't give her/his caution check." msgstr "Cet utilisateur n'a pas donné son chèque de caution." -#: apps/wei/views.py:918 apps/wei/views.py:971 apps/wei/views.py:981 +#: apps/wei/views.py:917 apps/wei/views.py:970 apps/wei/views.py:980 #: templates/wei/survey.html:12 templates/wei/survey_closed.html:12 #: templates/wei/survey_end.html:12 msgid "Survey WEI" @@ -1854,40 +1866,12 @@ msgstr "" "erreur, qui sera corrigée rapidement. Vous pouvez désormais aller boire une " "bière." -#: templates/activity/activity_detail.html:29 -msgid "creater" -msgstr "Créateur" - -#: templates/activity/activity_detail.html:50 -msgid "opened" -msgstr "ouvert" - -#: templates/activity/activity_detail.html:57 -msgid "Entry page" -msgstr "Page des entrées" - -#: templates/activity/activity_detail.html:61 -msgid "close" -msgstr "fermer" - -#: templates/activity/activity_detail.html:64 -msgid "invalidate" -msgstr "dévalider" - -#: templates/activity/activity_detail.html:64 -msgid "validate" -msgstr "valider" - -#: templates/activity/activity_detail.html:70 -msgid "Invite" -msgstr "Inviter" - -#: templates/activity/activity_detail.html:77 +#: templates/activity/activity_detail.html:14 msgid "Guests list" msgstr "Liste des invités" #: templates/activity/activity_entry.html:22 -#: templates/note/transaction_form.html:29 +#: templates/note/transaction_form.html:31 msgid "Entries" msgstr "Entrées" @@ -1895,19 +1879,51 @@ msgstr "Entrées" msgid "Return to activity page" msgstr "Retour à la page de l'activité" -#: templates/activity/activity_list.html:5 +#: templates/activity/activity_info.html:32 +msgid "creater" +msgstr "Créateur" + +#: templates/activity/activity_info.html:53 +msgid "opened" +msgstr "ouvert" + +#: templates/activity/activity_info.html:60 +msgid "Entry page" +msgstr "Page des entrées" + +#: templates/activity/activity_info.html:65 +msgid "close" +msgstr "fermer" + +#: templates/activity/activity_info.html:68 +msgid "invalidate" +msgstr "dévalider" + +#: templates/activity/activity_info.html:68 +msgid "validate" +msgstr "valider" + +#: templates/activity/activity_info.html:74 +msgid "Invite" +msgstr "Inviter" + +#: templates/activity/activity_list.html:6 +msgid "Current activity" +msgstr "Activité en cours" + +#: templates/activity/activity_list.html:13 msgid "Upcoming activities" msgstr "Activités à venir" -#: templates/activity/activity_list.html:10 +#: templates/activity/activity_list.html:18 msgid "There is no planned activity." msgstr "Il n'y a pas d'activité prévue." -#: templates/activity/activity_list.html:14 +#: templates/activity/activity_list.html:22 msgid "New activity" msgstr "Nouvelle activité" -#: templates/activity/activity_list.html:18 +#: templates/activity/activity_list.html:26 msgid "All activities" msgstr "Toutes les activités" @@ -2106,8 +2122,8 @@ msgstr "Inscriptions" msgid "Consum" msgstr "Consommer" -#: templates/note/conso_form.html:41 templates/note/transaction_form.html:57 -#: templates/note/transaction_form.html:78 +#: templates/note/conso_form.html:41 templates/note/transaction_form.html:59 +#: templates/note/transaction_form.html:80 msgid "Name or alias..." msgstr "Pseudo ou alias ..." @@ -2131,27 +2147,27 @@ msgstr "Consommations simples" msgid "Double consumptions" msgstr "Consommations doubles" -#: templates/note/conso_form.html:152 templates/note/transaction_form.html:154 +#: templates/note/conso_form.html:152 templates/note/transaction_form.html:156 msgid "Recent transactions history" msgstr "Historique des transactions récentes" -#: templates/note/transaction_form.html:51 +#: templates/note/transaction_form.html:53 msgid "Select emitters" msgstr "Sélection des émetteurs" -#: templates/note/transaction_form.html:61 +#: templates/note/transaction_form.html:63 msgid "I am the emitter" msgstr "Je suis l'émetteur" -#: templates/note/transaction_form.html:72 +#: templates/note/transaction_form.html:74 msgid "Select receivers" msgstr "Sélection des destinataires" -#: templates/note/transaction_form.html:89 +#: templates/note/transaction_form.html:91 msgid "Action" msgstr "Action" -#: templates/note/transaction_form.html:113 +#: templates/note/transaction_form.html:115 msgid "Transfer type" msgstr "Type de transfert" diff --git a/templates/activity/activity_detail.html b/templates/activity/activity_detail.html index a955d194..37dcb9a4 100644 --- a/templates/activity/activity_detail.html +++ b/templates/activity/activity_detail.html @@ -7,70 +7,7 @@ {% block content %} -
-
-

{{ activity.name }}

-
-
-
-
{% trans 'description'|capfirst %}
-
{{ activity.description }}
- -
{% trans 'type'|capfirst %}
-
{{ activity.activity_type }}
- -
{% trans 'start date'|capfirst %}
-
{{ activity.date_start }}
- -
{% trans 'end date'|capfirst %}
-
{{ activity.date_end }}
- - {% if ".view_"|has_perm:activity.creater %} -
{% trans 'creater'|capfirst %}
-
{{ activity.creater }}
- {% endif %} - -
{% trans 'organizer'|capfirst %}
-
{{ activity.organizer }}
- -
{% trans 'attendees club'|capfirst %}
-
{{ activity.attendees_club }}
- -
{% trans 'can invite'|capfirst %}
-
{{ activity.activity_type.can_invite|yesno }}
- - {% if activity.activity_type.can_invite %} -
{% trans 'guest entry fee'|capfirst %}
-
{{ activity.activity_type.guest_entry_fee|pretty_money }}
- {% endif %} - -
{% trans 'valid'|capfirst %}
-
{{ activity.valid|yesno }}
- -
{% trans 'opened'|capfirst %}
-
{{ activity.open|yesno }}
-
-
- - -
+ {% include "activity/activity_info.html" %} {% if guests.data %}
diff --git a/templates/activity/activity_entry.html b/templates/activity/activity_entry.html index abf4eef8..cca044e2 100644 --- a/templates/activity/activity_entry.html +++ b/templates/activity/activity_entry.html @@ -76,7 +76,10 @@ note: id, guest: null }).done(function () { - addMsg("Entrée effectuée !", "success", 4000); + if (target.hasClass("table-info")) + addMsg("Entrée effectuée, mais attention : la personne n'est plus adhérente Kfet.", "warning", 10000); + else + addMsg("Entrée effectuée !", "success", 4000); reloadTable(true); }).fail(function(xhr) { errMsg(xhr.responseJSON, 4000); @@ -104,7 +107,10 @@ note: target.attr("data-inviter"), guest: id }).done(function () { - addMsg("Entrée effectuée !", "success", 4000); + if (target.hasClass("table-info")) + addMsg("Entrée effectuée, mais attention : la personne n'est plus adhérente Kfet.", "warning", 10000); + else + addMsg("Entrée effectuée !", "success", 4000); reloadTable(true); }).fail(function (xhr) { errMsg(xhr.responseJSON, 4000); diff --git a/templates/activity/activity_info.html b/templates/activity/activity_info.html new file mode 100644 index 00000000..4eb6dd29 --- /dev/null +++ b/templates/activity/activity_info.html @@ -0,0 +1,78 @@ +{% load i18n %} +{% load perms %} +{% load pretty_money %} + +{% url 'activity:activity_detail' activity.pk as activity_detail_url %} + +
+
+

+ {% if request.path_info != activity_detail_url %} + {{ activity.name }} + {% else %} + {{ activity.name }} + {% endif %} +

+
+
+
+
{% trans 'description'|capfirst %}
+
{{ activity.description }}
+ +
{% trans 'type'|capfirst %}
+
{{ activity.activity_type }}
+ +
{% trans 'start date'|capfirst %}
+
{{ activity.date_start }}
+ +
{% trans 'end date'|capfirst %}
+
{{ activity.date_end }}
+ + {% if ".view_"|has_perm:activity.creater %} +
{% trans 'creater'|capfirst %}
+
{{ activity.creater }}
+ {% endif %} + +
{% trans 'organizer'|capfirst %}
+
{{ activity.organizer }}
+ +
{% trans 'attendees club'|capfirst %}
+
{{ activity.attendees_club }}
+ +
{% trans 'can invite'|capfirst %}
+
{{ activity.activity_type.can_invite|yesno }}
+ + {% if activity.activity_type.can_invite %} +
{% trans 'guest entry fee'|capfirst %}
+
{{ activity.activity_type.guest_entry_fee|pretty_money }}
+ {% endif %} + +
{% trans 'valid'|capfirst %}
+
{{ activity.valid|yesno }}
+ +
{% trans 'opened'|capfirst %}
+
{{ activity.open|yesno }}
+
+
+ + +
\ No newline at end of file diff --git a/templates/activity/activity_list.html b/templates/activity/activity_list.html index f2871fd6..bf1d846b 100644 --- a/templates/activity/activity_list.html +++ b/templates/activity/activity_list.html @@ -2,6 +2,14 @@ {% load render_table from django_tables2 %} {% load i18n crispy_forms_tags%} {% block content %} + {% if started_activities %} +

{% trans "Current activity" %}

+ {% for activity in started_activities %} + {% include "activity/activity_info.html" %} +
+ {% endfor %} + {% endif %} +

{% trans "Upcoming activities" %}

{% if upcoming.data %} {% render_table upcoming %} diff --git a/templates/note/transaction_form.html b/templates/note/transaction_form.html index 8494c22b..4715e79f 100644 --- a/templates/note/transaction_form.html +++ b/templates/note/transaction_form.html @@ -19,10 +19,12 @@ SPDX-License-Identifier: GPL-2.0-or-later {% trans "Credit" %} - + {% if not activities_open %} + + {% endif %} {% endif %} {% for activity in activities_open %}