2A+ can select a bus (and fix random bugs)

This commit is contained in:
Yohann D'ANELLO 2020-04-21 00:07:00 +02:00
parent 47b9b53591
commit 1c7d4fbbec
11 changed files with 633 additions and 267 deletions

View File

@ -44,4 +44,4 @@ class BusTeamViewSet(ReadProtectedModelViewSet):
serializer_class = BusTeamSerializer serializer_class = BusTeamSerializer
filter_backends = [SearchFilter, DjangoFilterBackend] filter_backends = [SearchFilter, DjangoFilterBackend]
search_fields = ['$name', ] search_fields = ['$name', ]
filterset_fields = ['name', 'bus', 'wei', ] filterset_fields = ['name', 'bus', 'bus__wei', ]

View File

@ -3,6 +3,7 @@
from django import forms from django import forms
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.db.models import Q
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from note_kfet.inputs import AmountInput, DatePickerInput, Autocomplete, ColorWidget from note_kfet.inputs import AmountInput, DatePickerInput, Autocomplete, ColorWidget
@ -40,13 +41,35 @@ class WEIRegistrationForm(forms.ModelForm):
} }
class WEIChooseBusForm(forms.Form):
bus = forms.ModelMultipleChoiceField(
queryset=Bus.objects,
label=_("bus"),
help_text=_("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."),
)
team = forms.ModelMultipleChoiceField(
queryset=BusTeam.objects,
label=_("Team"),
required=False,
help_text=_("Leave this field empty if you won't be in a team (staff, bus chief, free electron)"),
)
roles = forms.ModelMultipleChoiceField(
queryset=WEIRole.objects.filter(~Q(name="1A")),
label=_("WEI Roles"),
help_text=_("Select the roles that you are interested in."),
)
class WEIMembershipForm(forms.ModelForm): class WEIMembershipForm(forms.ModelForm):
roles = forms.ModelMultipleChoiceField(queryset=WEIRole.objects) roles = forms.ModelMultipleChoiceField(queryset=WEIRole.objects, label=_("WEI Roles"))
def clean(self): def clean(self):
cleaned_data = super().clean() cleaned_data = super().clean()
if cleaned_data["team"] is not None and cleaned_data["team"].bus != cleaned_data["bus"]: if cleaned_data["team"] is not None and cleaned_data["team"].bus != cleaned_data["bus"]:
self.add_error('bus', _("This team doesn't belong to the given team.")) self.add_error('bus', _("This team doesn't belong to the given bus."))
return cleaned_data return cleaned_data
class Meta: class Meta:

View File

@ -248,7 +248,7 @@ class WEIRegistration(models.Model):
def is_validated(self): def is_validated(self):
try: try:
return self.membership is not None return self.membership is not None
except KeyError: except AttributeError:
return False return False
def __str__(self): def __str__(self):

View File

@ -6,6 +6,7 @@ from datetime import datetime, date
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.db.models import Q from django.db.models import Q
from django.forms import HiddenInput
from django.shortcuts import redirect from django.shortcuts import redirect
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.views.generic import DetailView, UpdateView, CreateView, RedirectView, TemplateView from django.views.generic import DetailView, UpdateView, CreateView, RedirectView, TemplateView
@ -18,6 +19,7 @@ from note.tables import HistoryTable
from permission.backends import PermissionBackend from permission.backends import PermissionBackend
from permission.views import ProtectQuerysetMixin from permission.views import ProtectQuerysetMixin
from .forms.registration import WEIChooseBusForm
from .models import WEIClub, WEIRegistration, WEIMembership, Bus, BusTeam, WEIRole from .models import WEIClub, WEIRegistration, WEIMembership, Bus, BusTeam, WEIRole
from .forms import WEIForm, WEIRegistrationForm, BusForm, BusTeamForm, WEIMembershipForm, CurrentSurvey from .forms import WEIForm, WEIRegistrationForm, BusForm, BusTeamForm, WEIMembershipForm, CurrentSurvey
from .tables import WEITable, WEIRegistrationTable, BusTable, BusTeamTable, WEIMembershipTable from .tables import WEITable, WEIRegistrationTable, BusTable, BusTeamTable, WEIMembershipTable
@ -333,13 +335,13 @@ class WEIRegister1AView(ProtectQuerysetMixin, LoginRequiredMixin, CreateView):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context['title'] = _("Register 1A") context['title'] = _("Register 1A")
context['club'] = WEIClub.objects.get(pk=self.kwargs["wei_pk"]) context['club'] = WEIClub.objects.get(pk=self.kwargs["wei_pk"])
if "myself" in self.request.path:
context["form"].fields["user"].disabled = True
return context return context
def get_form(self, form_class=None): def get_form(self, form_class=None):
form = super().get_form(form_class) form = super().get_form(form_class)
form.fields["user"].initial = self.request.user form.fields["user"].initial = self.request.user
if "myself" in self.request.path:
form.fields["user"].disabled = True
del form.fields["first_year"] del form.fields["first_year"]
del form.fields["caution_check"] del form.fields["caution_check"]
del form.fields["information_json"] del form.fields["information_json"]
@ -374,16 +376,23 @@ class WEIRegister2AView(ProtectQuerysetMixin, LoginRequiredMixin, CreateView):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context['title'] = _("Register 2A+") context['title'] = _("Register 2A+")
context['club'] = WEIClub.objects.get(pk=self.kwargs["wei_pk"]) context['club'] = WEIClub.objects.get(pk=self.kwargs["wei_pk"])
if "myself" in self.request.path:
context["form"].fields["user"].disabled = True
choose_bus_form = WEIChooseBusForm()
choose_bus_form.fields["bus"].queryset = Bus.objects.filter(wei=context["club"])
choose_bus_form.fields["team"].queryset = BusTeam.objects.filter(bus__wei=context["club"])
context['membership_form'] = choose_bus_form
return context return context
def get_form(self, form_class=None): def get_form(self, form_class=None):
form = super().get_form(form_class) form = super().get_form(form_class)
form.fields["user"].initial = self.request.user form.fields["user"].initial = self.request.user
if "myself" in self.request.path: if "myself" in self.request.path and self.request.user.profile.soge:
form.fields["user"].disabled = True form.fields["soge_credit"].disabled = True
if self.request.user.profile.soge: form.fields["soge_credit"].help_text = _("You already opened an account in the Société générale.")
form.fields["soge_credit"].disabled = True
form.fields["soge_credit"].help_text = _("You already opened an account in the Société générale.")
del form.fields["first_year"] del form.fields["first_year"]
del form.fields["ml_events_registration"] del form.fields["ml_events_registration"]
@ -396,8 +405,28 @@ class WEIRegister2AView(ProtectQuerysetMixin, LoginRequiredMixin, CreateView):
def form_valid(self, form): def form_valid(self, form):
form.instance.wei = WEIClub.objects.get(pk=self.kwargs["wei_pk"]) form.instance.wei = WEIClub.objects.get(pk=self.kwargs["wei_pk"])
form.instance.first_year = False form.instance.first_year = False
choose_bus_form = WEIChooseBusForm(self.request.POST)
if not choose_bus_form.is_valid():
return self.form_invalid(choose_bus_form)
information = form.instance.information
information["preferred_bus_pk"] = [bus.pk for bus in choose_bus_form.cleaned_data["bus"]]
information["preferred_bus_name"] = [bus.name for bus in choose_bus_form.cleaned_data["bus"]]
information["preferred_team_pk"] = [team.pk for team in choose_bus_form.cleaned_data["team"]]
information["preferred_team_name"] = [team.name for team in choose_bus_form.cleaned_data["team"]]
information["preferred_roles_pk"] = [role.pk for role in choose_bus_form.cleaned_data["roles"]]
information["preferred_roles_name"] = [role.name for role in choose_bus_form.cleaned_data["roles"]]
form.instance.information = information
form.instance.save()
return super().form_valid(form) return super().form_valid(form)
def form_invalid(self, form):
print(form.data)
print(form.cleaned_data)
return super().form_invalid(form)
def get_success_url(self): def get_success_url(self):
self.object.refresh_from_db() self.object.refresh_from_db()
return reverse_lazy("wei:wei_survey", kwargs={"pk": self.object.pk}) return reverse_lazy("wei:wei_survey", kwargs={"pk": self.object.pk})
@ -421,16 +450,72 @@ class WEIUpdateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Update
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context["club"] = self.object.wei context["club"] = self.object.wei
if self.object.is_validated:
membership_form = WEIMembershipForm(instance=self.object.membership)
for field_name, field in membership_form.fields.items():
if not PermissionBackend.check_perm(
self.request.user, "wei.change_membership_" + field_name, self.object.membership):
field.widget = HiddenInput()
context["membership_form"] = membership_form
elif not self.object.first_year and PermissionBackend.check_perm(
self.request.user, "wei.change_weiregistration_information_json", self.object):
choose_bus_form = WEIChooseBusForm(
dict(
bus=Bus.objects.filter(pk__in=self.object.information["preferred_bus_pk"]).all(),
team=BusTeam.objects.filter(pk__in=self.object.information["preferred_team_pk"]).all(),
roles=WEIRole.objects.filter(pk__in=self.object.information["preferred_roles_pk"]).all(),
)
)
choose_bus_form.fields["bus"].queryset = Bus.objects.filter(wei=context["club"])
choose_bus_form.fields["team"].queryset = BusTeam.objects.filter(bus__wei=context["club"])
context["membership_form"] = choose_bus_form
if not self.object.soge_credit and self.object.user.profile.soge:
form = context["form"]
form.fields["soge_credit"].disabled = True
form.fields["soge_credit"].help_text = _("You already opened an account in the Société générale.")
return context return context
def get_form(self, form_class=None): def get_form(self, form_class=None):
form = super().get_form(form_class) form = super().get_form(form_class)
if "user" in form.fields: del form.fields["user"]
del form.fields["user"] if not self.object.first_year:
del form.fields["information_json"]
return form return form
def form_valid(self, form):
# If the membership is already validated, then we update the bus and the team (and the roles)
if form.instance.is_validated:
membership_form = WEIMembershipForm(self.request.POST)
if not membership_form.is_valid():
return self.form_invalid(membership_form)
membership_form.save()
# If it is not validated and if this is an old member, then we update the choices
elif not form.instance.first_year and PermissionBackend.check_perm(
self.request.user, "wei.change_weiregistration_information_json", self.object):
choose_bus_form = WEIChooseBusForm(self.request.POST)
if not choose_bus_form.is_valid():
return self.form_invalid(choose_bus_form)
information = form.instance.information
information["preferred_bus_pk"] = [bus.pk for bus in choose_bus_form.cleaned_data["bus"]]
information["preferred_bus_name"] = [bus.name for bus in choose_bus_form.cleaned_data["bus"]]
information["preferred_team_pk"] = [team.pk for team in choose_bus_form.cleaned_data["team"]]
information["preferred_team_name"] = [team.name for team in choose_bus_form.cleaned_data["team"]]
information["preferred_roles_pk"] = [role.pk for role in choose_bus_form.cleaned_data["roles"]]
information["preferred_roles_name"] = [role.name for role in choose_bus_form.cleaned_data["roles"]]
form.instance.information = information
form.instance.save()
return super().form_valid(form)
def get_success_url(self): def get_success_url(self):
self.object.refresh_from_db() self.object.refresh_from_db()
if self.object.first_year:
survey = CurrentSurvey(self.object)
if not survey.is_complete():
return reverse_lazy("wei:wei_survey", kwargs={"pk": self.object.pk})
return reverse_lazy("wei:wei_detail", kwargs={"pk": self.object.wei.pk}) return reverse_lazy("wei:wei_detail", kwargs={"pk": self.object.wei.pk})
@ -474,10 +559,21 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Crea
registration = WEIRegistration.objects.get(pk=self.kwargs["pk"]) registration = WEIRegistration.objects.get(pk=self.kwargs["pk"])
form.fields["bus"].widget.attrs["api_url"] = "/api/wei/bus/?wei=" + str(registration.wei.pk) form.fields["bus"].widget.attrs["api_url"] = "/api/wei/bus/?wei=" + str(registration.wei.pk)
if registration.first_year: if registration.first_year:
# Use the results of the survey to fill initial data
# A first year has no other role than "1A"
del form.fields["roles"] del form.fields["roles"]
survey = CurrentSurvey(registration) survey = CurrentSurvey(registration)
if survey.information.valid: if survey.information.valid:
form.fields["bus"].initial = survey.information.get_selected_bus() form.fields["bus"].initial = survey.information.get_selected_bus()
else:
# Use the choice of the member to fill initial data
information = registration.information
if "preferred_bus_pk" in information and len(information["preferred_bus_pk"]) == 1:
form["bus"].initial = Bus.objects.get(pk=information["preferred_bus_pk"][0])
if "preferred_team_pk" in information and len(information["preferred_team_pk"]) == 1:
form["team"].initial = Bus.objects.get(pk=information["preferred_team_pk"][0])
if "preferred_roles_pk" in information:
form["roles"].initial = WEIRole.objects.filter(pk__in=information["preferred_roles_pk"]).all()
return form return form
def form_valid(self, form): def form_valid(self, form):

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-17 17:51+0200\n" "POT-Creation-Date: 2020-04-20 22:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -47,7 +47,7 @@ msgstr ""
#: apps/member/models.py:99 apps/member/models.py:203 #: apps/member/models.py:99 apps/member/models.py:203
#: apps/note/models/notes.py:188 apps/note/models/transactions.py:24 #: apps/note/models/notes.py:188 apps/note/models/transactions.py:24
#: apps/note/models/transactions.py:44 apps/note/models/transactions.py:237 #: apps/note/models/transactions.py:44 apps/note/models/transactions.py:237
#: apps/wei/models.py:54 templates/member/club_info.html:13 #: apps/wei/models.py:61 templates/member/club_info.html:13
#: templates/member/profile_info.html:14 #: templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16 #: templates/registration/future_profile_detail.html:16
#: templates/wei/weiclub_info.html:13 templates/wei/weimembership_form.html:18 #: templates/wei/weiclub_info.html:13 templates/wei/weimembership_form.html:18
@ -71,7 +71,7 @@ msgid "activity types"
msgstr "" msgstr ""
#: apps/activity/models.py:53 apps/note/models/transactions.py:74 #: apps/activity/models.py:53 apps/note/models/transactions.py:74
#: apps/permission/models.py:103 apps/wei/models.py:60 apps/wei/models.py:95 #: apps/permission/models.py:103 apps/wei/models.py:67 apps/wei/models.py:123
#: templates/activity/activity_detail.html:16 #: templates/activity/activity_detail.html:16
msgid "description" msgid "description"
msgstr "" msgstr ""
@ -83,7 +83,8 @@ msgid "type"
msgstr "" msgstr ""
#: apps/activity/models.py:66 apps/logs/models.py:21 apps/member/models.py:224 #: apps/activity/models.py:66 apps/logs/models.py:21 apps/member/models.py:224
#: apps/note/models/notes.py:117 apps/wei/models.py:126 #: apps/note/models/notes.py:117 apps/wei/models.py:154
#: templates/wei/survey.html:16
msgid "user" msgid "user"
msgstr "" msgstr ""
@ -438,7 +439,7 @@ msgstr ""
msgid "fee" msgid "fee"
msgstr "" msgstr ""
#: apps/member/models.py:267 apps/member/views.py:500 apps/wei/views.py:356 #: apps/member/models.py:267 apps/member/views.py:500 apps/wei/views.py:592
msgid "User is not a member of the parent club" msgid "User is not a member of the parent club"
msgstr "" msgstr ""
@ -469,7 +470,7 @@ msgstr ""
#: apps/member/views.py:65 templates/member/profile_info.html:45 #: apps/member/views.py:65 templates/member/profile_info.html:45
#: templates/registration/future_profile_detail.html:55 #: templates/registration/future_profile_detail.html:55
#: templates/wei/weimembership_form.html:87 #: templates/wei/weimembership_form.html:105
msgid "Update Profile" msgid "Update Profile"
msgstr "" msgstr ""
@ -481,7 +482,7 @@ msgstr ""
msgid "Search user" msgid "Search user"
msgstr "" msgstr ""
#: apps/member/views.py:495 apps/wei/views.py:347 #: apps/member/views.py:495 apps/wei/views.py:583
msgid "" msgid ""
"This user don't have enough money to join this club, and can't have a " "This user don't have enough money to join this club, and can't have a "
"negative balance." "negative balance."
@ -496,8 +497,8 @@ msgid "The membership must begin before {:%m-%d-%Y}."
msgstr "" msgstr ""
#: apps/member/views.py:528 apps/member/views.py:530 apps/member/views.py:532 #: apps/member/views.py:528 apps/member/views.py:530 apps/member/views.py:532
#: apps/registration/views.py:326 apps/registration/views.py:328 #: apps/registration/views.py:327 apps/registration/views.py:329
#: apps/registration/views.py:330 #: apps/registration/views.py:331
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
@ -732,7 +733,7 @@ msgstr ""
#: apps/note/tables.py:146 apps/wei/tables.py:42 apps/wei/tables.py:43 #: apps/note/tables.py:146 apps/wei/tables.py:42 apps/wei/tables.py:43
#: templates/member/club_info.html:60 templates/note/conso_form.html:121 #: templates/member/club_info.html:60 templates/note/conso_form.html:121
#: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15 #: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15
#: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:61 #: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:66
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
@ -804,31 +805,31 @@ msgstr ""
msgid "Join Kfet Club" msgid "Join Kfet Club"
msgstr "" msgstr ""
#: apps/registration/views.py:115 #: apps/registration/views.py:116
msgid "Email validation" msgid "Email validation"
msgstr "" msgstr ""
#: apps/registration/views.py:161 #: apps/registration/views.py:162
msgid "Email validation unsuccessful" msgid "Email validation unsuccessful"
msgstr "" msgstr ""
#: apps/registration/views.py:172 #: apps/registration/views.py:173
msgid "Email validation email sent" msgid "Email validation email sent"
msgstr "" msgstr ""
#: apps/registration/views.py:225 #: apps/registration/views.py:226
msgid "Unregistered users" msgid "Unregistered users"
msgstr "" msgstr ""
#: apps/registration/views.py:292 #: apps/registration/views.py:293
msgid "You must join the BDE." msgid "You must join the BDE."
msgstr "" msgstr ""
#: apps/registration/views.py:314 #: apps/registration/views.py:315
msgid "You must join BDE club before joining Kfet club." msgid "You must join BDE club before joining Kfet club."
msgstr "" msgstr ""
#: apps/registration/views.py:319 #: apps/registration/views.py:320
msgid "" msgid ""
"The entered amount is not enough for the memberships, should be at least {}" "The entered amount is not enough for the memberships, should be at least {}"
msgstr "" msgstr ""
@ -844,7 +845,7 @@ msgstr ""
#: templates/member/add_members.html:14 templates/member/club_form.html:9 #: templates/member/add_members.html:14 templates/member/club_form.html:9
#: templates/treasury/invoice_form.html:46 templates/wei/bus_form.html:13 #: templates/treasury/invoice_form.html:46 templates/wei/bus_form.html:13
#: templates/wei/busteam_form.html:13 templates/wei/weiclub_form.html:15 #: templates/wei/busteam_form.html:13 templates/wei/weiclub_form.html:15
#: templates/wei/weiregistration_form.html:9 #: templates/wei/weiregistration_form.html:14
msgid "Submit" msgid "Submit"
msgstr "" msgstr ""
@ -997,11 +998,35 @@ msgstr ""
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
#: apps/wei/apps.py:10 apps/wei/models.py:37 apps/wei/models.py:38 #: apps/wei/apps.py:10 apps/wei/models.py:44 apps/wei/models.py:45
#: apps/wei/models.py:49 apps/wei/models.py:133 templates/base.html:115 #: apps/wei/models.py:56 apps/wei/models.py:161 templates/base.html:115
msgid "WEI" msgid "WEI"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:47
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:54
msgid ""
"Leave this field empty if you won't be in a team (staff, bus chief, free "
"electron)"
msgstr ""
#: apps/wei/forms/registration.py:59
msgid "Select the roles that you are interested in."
msgstr ""
#: apps/wei/forms/registration.py:65 apps/wei/forms/registration.py:75
msgid "This team doesn't belong to the given bus."
msgstr ""
#: apps/wei/management/commands/wei_algorithm.py:11
msgid "Attribute to each first year member a bus for the WEI"
msgstr ""
#: apps/wei/models.py:19 templates/wei/weiclub_info.html:23 #: apps/wei/models.py:19 templates/wei/weiclub_info.html:23
msgid "year" msgid "year"
msgstr "" msgstr ""
@ -1014,139 +1039,147 @@ msgstr ""
msgid "date end" msgid "date end"
msgstr "" msgstr ""
#: apps/wei/models.py:67 #: apps/wei/models.py:72
msgid "survey information"
msgstr ""
#: apps/wei/models.py:73
msgid "Information about the survey for new members, encoded in JSON"
msgstr ""
#: apps/wei/models.py:95
msgid "Bus" msgid "Bus"
msgstr "" msgstr ""
#: apps/wei/models.py:68 templates/wei/weiclub_tables.html:66 #: apps/wei/models.py:96 templates/wei/weiclub_tables.html:79
msgid "Buses" msgid "Buses"
msgstr "" msgstr ""
#: apps/wei/models.py:80 apps/wei/models.py:234 #: apps/wei/models.py:108 apps/wei/models.py:269
msgid "bus" msgid "bus"
msgstr "" msgstr ""
#: apps/wei/models.py:88 #: apps/wei/models.py:116
msgid "color" msgid "color"
msgstr "" msgstr ""
#: apps/wei/models.py:89 #: apps/wei/models.py:117
msgid "The color of the T-Shirt, stored with its number equivalent" msgid "The color of the T-Shirt, stored with its number equivalent"
msgstr "" msgstr ""
#: apps/wei/models.py:103 #: apps/wei/models.py:131
msgid "Bus team" msgid "Bus team"
msgstr "" msgstr ""
#: apps/wei/models.py:104 #: apps/wei/models.py:132
msgid "Bus teams" msgid "Bus teams"
msgstr "" msgstr ""
#: apps/wei/models.py:113 #: apps/wei/models.py:141
msgid "WEI Role" msgid "WEI Role"
msgstr "" msgstr ""
#: apps/wei/models.py:114 #: apps/wei/models.py:142
msgid "WEI Roles" msgid "WEI Roles"
msgstr "" msgstr ""
#: apps/wei/models.py:138 #: apps/wei/models.py:166
msgid "Credit from Société générale" msgid "Credit from Société générale"
msgstr "" msgstr ""
#: apps/wei/models.py:143 #: apps/wei/models.py:171
msgid "Caution check given" msgid "Caution check given"
msgstr "" msgstr ""
#: apps/wei/models.py:147 templates/wei/weimembership_form.html:56 #: apps/wei/models.py:175 templates/wei/weimembership_form.html:56
msgid "birth date" msgid "birth date"
msgstr "" msgstr ""
#: apps/wei/models.py:153 #: apps/wei/models.py:181
msgid "Male" msgid "Male"
msgstr "" msgstr ""
#: apps/wei/models.py:154 #: apps/wei/models.py:182
msgid "Female" msgid "Female"
msgstr "" msgstr ""
#: apps/wei/models.py:155 #: apps/wei/models.py:183
msgid "Non binary" msgid "Non binary"
msgstr "" msgstr ""
#: apps/wei/models.py:157 templates/wei/weimembership_form.html:53 #: apps/wei/models.py:185 templates/wei/weimembership_form.html:53
msgid "gender" msgid "gender"
msgstr "" msgstr ""
#: apps/wei/models.py:163 templates/wei/weimembership_form.html:59 #: apps/wei/models.py:191 templates/wei/weimembership_form.html:59
msgid "health issues" msgid "health issues"
msgstr "" msgstr ""
#: apps/wei/models.py:168 templates/wei/weimembership_form.html:62 #: apps/wei/models.py:196 templates/wei/weimembership_form.html:62
msgid "emergency contact name" msgid "emergency contact name"
msgstr "" msgstr ""
#: apps/wei/models.py:173 templates/wei/weimembership_form.html:65 #: apps/wei/models.py:201 templates/wei/weimembership_form.html:65
msgid "emergency contact phone" msgid "emergency contact phone"
msgstr "" msgstr ""
#: apps/wei/models.py:178 templates/wei/weimembership_form.html:68 #: apps/wei/models.py:206 templates/wei/weimembership_form.html:68
msgid "" msgid ""
"Register on the mailing list to stay informed of the events of the campus (1 " "Register on the mailing list to stay informed of the events of the campus (1 "
"mail/week)" "mail/week)"
msgstr "" msgstr ""
#: apps/wei/models.py:183 templates/wei/weimembership_form.html:71 #: apps/wei/models.py:211 templates/wei/weimembership_form.html:71
msgid "" msgid ""
"Register on the mailing list to stay informed of the sport events of the " "Register on the mailing list to stay informed of the sport events of the "
"campus (1 mail/week)" "campus (1 mail/week)"
msgstr "" msgstr ""
#: apps/wei/models.py:188 templates/wei/weimembership_form.html:74 #: apps/wei/models.py:216 templates/wei/weimembership_form.html:74
msgid "" msgid ""
"Register on the mailing list to stay informed of the art events of the " "Register on the mailing list to stay informed of the art events of the "
"campus (1 mail/week)" "campus (1 mail/week)"
msgstr "" msgstr ""
#: apps/wei/models.py:193 templates/wei/weimembership_form.html:50 #: apps/wei/models.py:221 templates/wei/weimembership_form.html:50
msgid "first year" msgid "first year"
msgstr "" msgstr ""
#: apps/wei/models.py:194 #: apps/wei/models.py:222
msgid "Tells if the user is new in the school." msgid "Tells if the user is new in the school."
msgstr "" msgstr ""
#: apps/wei/models.py:199 #: apps/wei/models.py:227
msgid "registration information" msgid "registration information"
msgstr "" msgstr ""
#: apps/wei/models.py:200 #: apps/wei/models.py:228
msgid "" msgid ""
"Information about the registration (buses for old members, survey fot the " "Information about the registration (buses for old members, survey fot the "
"new members), encoded in JSON" "new members), encoded in JSON"
msgstr "" msgstr ""
#: apps/wei/models.py:224 #: apps/wei/models.py:259
msgid "WEI User" msgid "WEI User"
msgstr "" msgstr ""
#: apps/wei/models.py:225 #: apps/wei/models.py:260
msgid "WEI Users" msgid "WEI Users"
msgstr "" msgstr ""
#: apps/wei/models.py:244 #: apps/wei/models.py:279
msgid "team" msgid "team"
msgstr "" msgstr ""
#: apps/wei/models.py:254 #: apps/wei/models.py:289
msgid "WEI registration" msgid "WEI registration"
msgstr "" msgstr ""
#: apps/wei/models.py:258 #: apps/wei/models.py:293
msgid "WEI membership" msgid "WEI membership"
msgstr "" msgstr ""
#: apps/wei/models.py:259 #: apps/wei/models.py:294
msgid "WEI memberships" msgid "WEI memberships"
msgstr "" msgstr ""
@ -1159,10 +1192,28 @@ msgstr ""
msgid "Teams" msgid "Teams"
msgstr "" msgstr ""
#: apps/wei/views.py:351 #: apps/wei/views.py:336 templates/wei/weiclub_info.html:62
msgid "Register 1A"
msgstr ""
#: apps/wei/views.py:377 templates/wei/weiclub_info.html:63
msgid "Register 2A+"
msgstr ""
#: apps/wei/views.py:394
msgid "You already opened an account in the Société générale."
msgstr ""
#: apps/wei/views.py:587
msgid "This user didn't give her/his caution check." msgid "This user didn't give her/his caution check."
msgstr "" msgstr ""
#: apps/wei/views.py:655 apps/wei/views.py:675 apps/wei/views.py:685
#: templates/wei/survey.html:12 templates/wei/survey_closed.html:12
#: templates/wei/survey_end.html:12
msgid "Survey WEI"
msgstr ""
#: note_kfet/settings/__init__.py:63 #: note_kfet/settings/__init__.py:63
msgid "" msgid ""
"The Central Authentication Service grants you access to most of our websites " "The Central Authentication Service grants you access to most of our websites "
@ -1357,12 +1408,12 @@ msgstr ""
msgid "Club listing" msgid "Club listing"
msgstr "" msgstr ""
#: templates/member/club_tables.html:7 templates/wei/weiclub_tables.html:79 #: templates/member/club_tables.html:7 templates/wei/weiclub_tables.html:92
msgid "Member of the Club" msgid "Member of the Club"
msgstr "" msgstr ""
#: templates/member/club_tables.html:20 templates/member/profile_tables.html:28 #: templates/member/club_tables.html:20 templates/member/profile_tables.html:28
#: templates/wei/weiclub_tables.html:92 #: templates/wei/weiclub_tables.html:105
msgid "Transaction history" msgid "Transaction history"
msgstr "" msgstr ""
@ -1538,8 +1589,8 @@ msgid "Validate account"
msgstr "" msgstr ""
#: templates/registration/future_profile_detail.html:71 #: templates/registration/future_profile_detail.html:71
#: templates/wei/weimembership_form.html:97 #: templates/wei/weimembership_form.html:115
#: templates/wei/weimembership_form.html:147 #: templates/wei/weimembership_form.html:173
msgid "Validate registration" msgid "Validate registration"
msgstr "" msgstr ""
@ -1763,6 +1814,22 @@ msgstr ""
msgid "Members" msgid "Members"
msgstr "" msgstr ""
#: templates/wei/survey.html:24
msgid "Next"
msgstr ""
#: templates/wei/survey_closed.html:16
msgid "The inscription for this WEI are now closed."
msgstr ""
#: templates/wei/survey_closed.html:22
msgid "Return to WEI detail"
msgstr ""
#: templates/wei/survey_end.html:16
msgid "The survey is now ended. Your answers have been saved."
msgstr ""
#: templates/wei/weiclub_info.html:31 #: templates/wei/weiclub_info.html:31
msgid "WEI fee / including BDE and Kfet fee (paid students)" msgid "WEI fee / including BDE and Kfet fee (paid students)"
msgstr "" msgstr ""
@ -1772,14 +1839,14 @@ msgid "WEI fee / including BDE and Kfet fee (unpaid students)"
msgstr "" msgstr ""
#: templates/wei/weiclub_info.html:58 #: templates/wei/weiclub_info.html:58
msgid "Register 2A+" msgid "WEI list"
msgstr "" msgstr ""
#: templates/wei/weiclub_info.html:64 #: templates/wei/weiclub_info.html:69
msgid "Add bus" msgid "Add bus"
msgstr "" msgstr ""
#: templates/wei/weiclub_info.html:68 #: templates/wei/weiclub_info.html:73
msgid "View WEI" msgid "View WEI"
msgstr "" msgstr ""
@ -1795,7 +1862,19 @@ msgstr ""
msgid "WEI listing" msgid "WEI listing"
msgstr "" msgstr ""
#: templates/wei/weiclub_tables.html:107 #: templates/wei/weiclub_tables.html:63
msgid "Register to the WEI! 1A"
msgstr ""
#: templates/wei/weiclub_tables.html:65
msgid "Register to the WEI! 2A+"
msgstr ""
#: templates/wei/weiclub_tables.html:67
msgid "Update my registration"
msgstr ""
#: templates/wei/weiclub_tables.html:120
msgid "Unvalidated registrations" msgid "Unvalidated registrations"
msgstr "" msgstr ""
@ -1808,52 +1887,84 @@ msgid "Payment from Société générale"
msgstr "" msgstr ""
#: templates/wei/weimembership_form.html:81 #: templates/wei/weimembership_form.html:81
msgid "Suggested bus from the survey:"
msgstr ""
#: templates/wei/weimembership_form.html:86
msgid "Raw survey information"
msgstr ""
#: templates/wei/weimembership_form.html:96
msgid "The algorithm didn't run."
msgstr ""
#: templates/wei/weimembership_form.html:99
msgid "caution check given" msgid "caution check given"
msgstr "" msgstr ""
#: templates/wei/weimembership_form.html:88 #: templates/wei/weimembership_form.html:106
msgid "Update registration" msgid "Update registration"
msgstr "" msgstr ""
#: templates/wei/weimembership_form.html:101 #: templates/wei/weimembership_form.html:119
msgid "" msgid "The registration is already validated and can't be unvalidated."
"\n"
" The WEI will be paid by Société générale. The "
"membership will be created even if the bank didn't pay the BDE yet.\n"
" The membership transaction will be created but will "
"be invalid. You will have to validate it once the bank\n"
" validated the creation of the account, or to change "
"the payment method.\n"
" "
msgstr "" msgstr ""
#: templates/wei/weimembership_form.html:111 #: templates/wei/weimembership_form.html:120
#, python-format msgid "The user joined the bus"
msgstr ""
#: templates/wei/weimembership_form.html:121
msgid "in the team"
msgstr ""
#: templates/wei/weimembership_form.html:122
msgid "in no team (staff)"
msgstr ""
#: templates/wei/weimembership_form.html:122
msgid "with the following roles:"
msgstr ""
#: templates/wei/weimembership_form.html:127
msgid "" msgid ""
"\n" "\n"
" The note don't have enough money (%(balance)s, " " The WEI will be paid by Société générale. The "
"%(pretty_fee)s required). The registration may fail.\n" "membership will be created even if the bank didn't pay the BDE yet.\n"
" The membership transaction will be created but "
"will be invalid. You will have to validate it once the bank\n"
" validated the creation of the account, or to "
"change the payment method.\n"
" " " "
msgstr "" msgstr ""
#: templates/wei/weimembership_form.html:118 #: templates/wei/weimembership_form.html:137
msgid "The note has enough money."
msgstr ""
#: templates/wei/weimembership_form.html:125
msgid "The user didn't give her/his caution check."
msgstr ""
#: templates/wei/weimembership_form.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" This user is not a member of the Kfet club. Please " " The note don't have enough money "
"adhere\n" "(%(balance)s, %(pretty_fee)s required). The registration may fail.\n"
" <a href=\"%(future_user_detail)s\">here if he/she is " " "
"in her/his first year</a>\n" msgstr ""
" or <a href=\"%(club_detail)s\">here if he/she was an "
"old member</a> before you validate\n" #: templates/wei/weimembership_form.html:144
" the registration of the WEI.\n" msgid "The note has enough money, the registration is possible."
" " msgstr ""
#: templates/wei/weimembership_form.html:151
msgid "The user didn't give her/his caution check."
msgstr ""
#: templates/wei/weimembership_form.html:159
#, python-format
msgid ""
"\n"
" This user is not a member of the Kfet club. "
"Please adhere\n"
" <a href=\"%(future_user_detail)s\">here if he/"
"she is in her/his first year</a>\n"
" or <a href=\"%(club_detail)s\">here if he/she "
"was an old member</a> before you validate\n"
" the registration of the WEI.\n"
" "
msgstr "" msgstr ""

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-17 17:51+0200\n" "POT-Creation-Date: 2020-04-20 22:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -43,7 +43,7 @@ msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
#: apps/member/models.py:99 apps/member/models.py:203 #: apps/member/models.py:99 apps/member/models.py:203
#: apps/note/models/notes.py:188 apps/note/models/transactions.py:24 #: apps/note/models/notes.py:188 apps/note/models/transactions.py:24
#: apps/note/models/transactions.py:44 apps/note/models/transactions.py:237 #: apps/note/models/transactions.py:44 apps/note/models/transactions.py:237
#: apps/wei/models.py:54 templates/member/club_info.html:13 #: apps/wei/models.py:61 templates/member/club_info.html:13
#: templates/member/profile_info.html:14 #: templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16 #: templates/registration/future_profile_detail.html:16
#: templates/wei/weiclub_info.html:13 templates/wei/weimembership_form.html:18 #: templates/wei/weiclub_info.html:13 templates/wei/weimembership_form.html:18
@ -67,7 +67,7 @@ msgid "activity types"
msgstr "types d'activité" msgstr "types d'activité"
#: apps/activity/models.py:53 apps/note/models/transactions.py:74 #: apps/activity/models.py:53 apps/note/models/transactions.py:74
#: apps/permission/models.py:103 apps/wei/models.py:60 apps/wei/models.py:95 #: apps/permission/models.py:103 apps/wei/models.py:67 apps/wei/models.py:123
#: templates/activity/activity_detail.html:16 #: templates/activity/activity_detail.html:16
msgid "description" msgid "description"
msgstr "description" msgstr "description"
@ -79,7 +79,8 @@ msgid "type"
msgstr "type" msgstr "type"
#: apps/activity/models.py:66 apps/logs/models.py:21 apps/member/models.py:224 #: apps/activity/models.py:66 apps/logs/models.py:21 apps/member/models.py:224
#: apps/note/models/notes.py:117 apps/wei/models.py:126 #: apps/note/models/notes.py:117 apps/wei/models.py:154
#: templates/wei/survey.html:16
msgid "user" msgid "user"
msgstr "utilisateur" msgstr "utilisateur"
@ -438,7 +439,7 @@ msgstr "l'adhésion finit le"
msgid "fee" msgid "fee"
msgstr "cotisation" msgstr "cotisation"
#: apps/member/models.py:267 apps/member/views.py:500 apps/wei/views.py:356 #: apps/member/models.py:267 apps/member/views.py:500 apps/wei/views.py:592
msgid "User is not a member of the parent club" msgid "User is not a member of the parent club"
msgstr "L'utilisateur n'est pas membre du club parent" msgstr "L'utilisateur n'est pas membre du club parent"
@ -469,7 +470,7 @@ msgstr "Cette adresse doit être valide."
#: apps/member/views.py:65 templates/member/profile_info.html:45 #: apps/member/views.py:65 templates/member/profile_info.html:45
#: templates/registration/future_profile_detail.html:55 #: templates/registration/future_profile_detail.html:55
#: templates/wei/weimembership_form.html:87 #: templates/wei/weimembership_form.html:105
msgid "Update Profile" msgid "Update Profile"
msgstr "Modifier le profil" msgstr "Modifier le profil"
@ -481,7 +482,7 @@ msgstr "Un alias avec un nom similaire existe déjà."
msgid "Search user" msgid "Search user"
msgstr "Chercher un utilisateur" msgstr "Chercher un utilisateur"
#: apps/member/views.py:495 apps/wei/views.py:347 #: apps/member/views.py:495 apps/wei/views.py:583
msgid "" msgid ""
"This user don't have enough money to join this club, and can't have a " "This user don't have enough money to join this club, and can't have a "
"negative balance." "negative balance."
@ -498,8 +499,8 @@ msgid "The membership must begin before {:%m-%d-%Y}."
msgstr "L'adhésion doit commencer avant le {:%d/%m/%Y}." msgstr "L'adhésion doit commencer avant le {:%d/%m/%Y}."
#: apps/member/views.py:528 apps/member/views.py:530 apps/member/views.py:532 #: apps/member/views.py:528 apps/member/views.py:530 apps/member/views.py:532
#: apps/registration/views.py:326 apps/registration/views.py:328 #: apps/registration/views.py:327 apps/registration/views.py:329
#: apps/registration/views.py:330 #: apps/registration/views.py:331
msgid "This field is required." msgid "This field is required."
msgstr "Ce champ est requis." msgstr "Ce champ est requis."
@ -735,7 +736,7 @@ msgstr "Supprimer"
#: apps/note/tables.py:146 apps/wei/tables.py:42 apps/wei/tables.py:43 #: apps/note/tables.py:146 apps/wei/tables.py:42 apps/wei/tables.py:43
#: templates/member/club_info.html:60 templates/note/conso_form.html:121 #: templates/member/club_info.html:60 templates/note/conso_form.html:121
#: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15 #: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15
#: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:61 #: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:66
msgid "Edit" msgid "Edit"
msgstr "Éditer" msgstr "Éditer"
@ -799,7 +800,8 @@ msgid ""
"will be able to register later, after validating your account in the Kfet." "will be able to register later, after validating your account in the Kfet."
msgstr "" msgstr ""
"Cochez cette case si vous voulez vous inscrire au WEI. Si vous hésitez, vous " "Cochez cette case si vous voulez vous inscrire au WEI. Si vous hésitez, vous "
"pourrez toujours vous inscrire plus tard, après avoir validé votre compte à la Kfet." "pourrez toujours vous inscrire plus tard, après avoir validé votre compte à "
"la Kfet."
#: apps/registration/forms.py:79 #: apps/registration/forms.py:79
msgid "Join BDE Club" msgid "Join BDE Club"
@ -809,31 +811,31 @@ msgstr "Adhérer au club BDE"
msgid "Join Kfet Club" msgid "Join Kfet Club"
msgstr "Adhérer au club Kfet" msgstr "Adhérer au club Kfet"
#: apps/registration/views.py:115 #: apps/registration/views.py:116
msgid "Email validation" msgid "Email validation"
msgstr "Validation de l'adresse mail" msgstr "Validation de l'adresse mail"
#: apps/registration/views.py:161 #: apps/registration/views.py:162
msgid "Email validation unsuccessful" msgid "Email validation unsuccessful"
msgstr " La validation de l'adresse mail a échoué" msgstr " La validation de l'adresse mail a échoué"
#: apps/registration/views.py:172 #: apps/registration/views.py:173
msgid "Email validation email sent" msgid "Email validation email sent"
msgstr "L'email de vérification de l'adresse email a bien été envoyé." msgstr "L'email de vérification de l'adresse email a bien été envoyé."
#: apps/registration/views.py:225 #: apps/registration/views.py:226
msgid "Unregistered users" msgid "Unregistered users"
msgstr "Utilisateurs en attente d'inscription" msgstr "Utilisateurs en attente d'inscription"
#: apps/registration/views.py:292 #: apps/registration/views.py:293
msgid "You must join the BDE." msgid "You must join the BDE."
msgstr "Vous devez adhérer au BDE." msgstr "Vous devez adhérer au BDE."
#: apps/registration/views.py:314 #: apps/registration/views.py:315
msgid "You must join BDE club before joining Kfet club." msgid "You must join BDE club before joining Kfet club."
msgstr "Vous devez adhérer au club BDE avant d'adhérer au club Kfet." msgstr "Vous devez adhérer au club BDE avant d'adhérer au club Kfet."
#: apps/registration/views.py:319 #: apps/registration/views.py:320
msgid "" msgid ""
"The entered amount is not enough for the memberships, should be at least {}" "The entered amount is not enough for the memberships, should be at least {}"
msgstr "" msgstr ""
@ -851,7 +853,7 @@ msgstr "Trésorerie"
#: templates/member/add_members.html:14 templates/member/club_form.html:9 #: templates/member/add_members.html:14 templates/member/club_form.html:9
#: templates/treasury/invoice_form.html:46 templates/wei/bus_form.html:13 #: templates/treasury/invoice_form.html:46 templates/wei/bus_form.html:13
#: templates/wei/busteam_form.html:13 templates/wei/weiclub_form.html:15 #: templates/wei/busteam_form.html:13 templates/wei/weiclub_form.html:15
#: templates/wei/weiregistration_form.html:9 #: templates/wei/weiregistration_form.html:14
msgid "Submit" msgid "Submit"
msgstr "Envoyer" msgstr "Envoyer"
@ -1004,11 +1006,39 @@ msgstr "Ajouter"
msgid "Remove" msgid "Remove"
msgstr "supprimer" msgstr "supprimer"
#: apps/wei/apps.py:10 apps/wei/models.py:37 apps/wei/models.py:38 #: apps/wei/apps.py:10 apps/wei/models.py:44 apps/wei/models.py:45
#: apps/wei/models.py:49 apps/wei/models.py:133 templates/base.html:115 #: apps/wei/models.py:56 apps/wei/models.py:161 templates/base.html:115
msgid "WEI" msgid "WEI"
msgstr "WEI" msgstr "WEI"
#: apps/wei/forms/registration.py:47
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 ""
"Ce choix n'est pas définitif. Les organisateurs du WEI sont libres de vous "
"attribuer un bus et une équipe, en particulier si vous êtes un électron libre."
#: apps/wei/forms/registration.py:54
msgid ""
"Leave this field empty if you won't be in a team (staff, bus chief, free "
"electron)"
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:59
msgid "Select the roles that you are interested in."
msgstr "Sélectionnez les rôles qui vous intéressent."
#: apps/wei/forms/registration.py:65 apps/wei/forms/registration.py:75
msgid "This team doesn't belong to the given bus."
msgstr "Cette équipe n'appartient pas à ce bus."
#: apps/wei/management/commands/wei_algorithm.py:11
msgid "Attribute to each first year member a bus for the WEI"
msgstr "Attribuer à chaque première année un bus pour le WEI"
#: apps/wei/models.py:19 templates/wei/weiclub_info.html:23 #: apps/wei/models.py:19 templates/wei/weiclub_info.html:23
msgid "year" msgid "year"
msgstr "année" msgstr "année"
@ -1021,83 +1051,92 @@ msgstr "début"
msgid "date end" msgid "date end"
msgstr "fin" msgstr "fin"
#: apps/wei/models.py:67 #: apps/wei/models.py:72
msgid "survey information"
msgstr "informations sur le questionnaire"
#: apps/wei/models.py:73
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:95
msgid "Bus" msgid "Bus"
msgstr "Bus" msgstr "Bus"
#: apps/wei/models.py:68 templates/wei/weiclub_tables.html:66 #: apps/wei/models.py:96 templates/wei/weiclub_tables.html:79
msgid "Buses" msgid "Buses"
msgstr "Bus" msgstr "Bus"
#: apps/wei/models.py:80 apps/wei/models.py:234 #: apps/wei/models.py:108 apps/wei/models.py:269
msgid "bus" msgid "bus"
msgstr "Bus" msgstr "Bus"
#: apps/wei/models.py:88 #: apps/wei/models.py:116
msgid "color" msgid "color"
msgstr "couleur" msgstr "couleur"
#: apps/wei/models.py:89 #: apps/wei/models.py:117
msgid "The color of the T-Shirt, stored with its number equivalent" 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" msgstr ""
"La couleur du T-Shirt, stocké sous la forme de son équivalent numérique"
#: apps/wei/models.py:103 #: apps/wei/models.py:131
msgid "Bus team" msgid "Bus team"
msgstr "Équipe de bus" msgstr "Équipe de bus"
#: apps/wei/models.py:104 #: apps/wei/models.py:132
msgid "Bus teams" msgid "Bus teams"
msgstr "" msgstr "Équipes de bus"
#: apps/wei/models.py:113 #: apps/wei/models.py:141
msgid "WEI Role" msgid "WEI Role"
msgstr "Rôle au WEI" msgstr "Rôle au WEI"
#: apps/wei/models.py:114 #: apps/wei/models.py:142
msgid "WEI Roles" msgid "WEI Roles"
msgstr "Rôles au WEI" msgstr "Rôles au WEI"
#: apps/wei/models.py:138 #: apps/wei/models.py:166
msgid "Credit from Société générale" msgid "Credit from Société générale"
msgstr "Crédit de la Société générale" msgstr "Crédit de la Société générale"
#: apps/wei/models.py:143 #: apps/wei/models.py:171
msgid "Caution check given" msgid "Caution check given"
msgstr "Chèque de caution donné" msgstr "Chèque de caution donné"
#: apps/wei/models.py:147 templates/wei/weimembership_form.html:56 #: apps/wei/models.py:175 templates/wei/weimembership_form.html:56
msgid "birth date" msgid "birth date"
msgstr "date de naissance" msgstr "date de naissance"
#: apps/wei/models.py:153 #: apps/wei/models.py:181
msgid "Male" msgid "Male"
msgstr "Homme" msgstr "Homme"
#: apps/wei/models.py:154 #: apps/wei/models.py:182
msgid "Female" msgid "Female"
msgstr "Femme" msgstr "Femme"
#: apps/wei/models.py:155 #: apps/wei/models.py:183
msgid "Non binary" msgid "Non binary"
msgstr "Non-binaire" msgstr "Non-binaire"
#: apps/wei/models.py:157 templates/wei/weimembership_form.html:53 #: apps/wei/models.py:185 templates/wei/weimembership_form.html:53
msgid "gender" msgid "gender"
msgstr "genre" msgstr "genre"
#: apps/wei/models.py:163 templates/wei/weimembership_form.html:59 #: apps/wei/models.py:191 templates/wei/weimembership_form.html:59
msgid "health issues" msgid "health issues"
msgstr "problèmes de santé" msgstr "problèmes de santé"
#: apps/wei/models.py:168 templates/wei/weimembership_form.html:62 #: apps/wei/models.py:196 templates/wei/weimembership_form.html:62
msgid "emergency contact name" msgid "emergency contact name"
msgstr "Nom du contact en cas d'urgence" msgstr "Nom du contact en cas d'urgence"
#: apps/wei/models.py:173 templates/wei/weimembership_form.html:65 #: apps/wei/models.py:201 templates/wei/weimembership_form.html:65
msgid "emergency contact phone" msgid "emergency contact phone"
msgstr "Téléphone du contact en cas d'urgence" msgstr "Téléphone du contact en cas d'urgence"
#: apps/wei/models.py:178 templates/wei/weimembership_form.html:68 #: apps/wei/models.py:206 templates/wei/weimembership_form.html:68
msgid "" msgid ""
"Register on the mailing list to stay informed of the events of the campus (1 " "Register on the mailing list to stay informed of the events of the campus (1 "
"mail/week)" "mail/week)"
@ -1105,7 +1144,7 @@ msgstr ""
"S'inscrire sur la liste de diffusion pour rester informé des événements sur " "S'inscrire sur la liste de diffusion pour rester informé des événements sur "
"le campus (1 mail par semaine)" "le campus (1 mail par semaine)"
#: apps/wei/models.py:183 templates/wei/weimembership_form.html:71 #: apps/wei/models.py:211 templates/wei/weimembership_form.html:71
msgid "" msgid ""
"Register on the mailing list to stay informed of the sport events of the " "Register on the mailing list to stay informed of the sport events of the "
"campus (1 mail/week)" "campus (1 mail/week)"
@ -1113,7 +1152,7 @@ msgstr ""
"S'inscrire sur la liste de diffusion pour rester informé des actualités " "S'inscrire sur la liste de diffusion pour rester informé des actualités "
"sportives sur le campus (1 mail par semaine)" "sportives sur le campus (1 mail par semaine)"
#: apps/wei/models.py:188 templates/wei/weimembership_form.html:74 #: apps/wei/models.py:216 templates/wei/weimembership_form.html:74
msgid "" msgid ""
"Register on the mailing list to stay informed of the art events of the " "Register on the mailing list to stay informed of the art events of the "
"campus (1 mail/week)" "campus (1 mail/week)"
@ -1121,47 +1160,51 @@ msgstr ""
"S'inscrire sur la liste de diffusion pour rester informé des actualités " "S'inscrire sur la liste de diffusion pour rester informé des actualités "
"artistiques sur le campus (1 mail par semaine)" "artistiques sur le campus (1 mail par semaine)"
#: apps/wei/models.py:193 templates/wei/weimembership_form.html:50 #: apps/wei/models.py:221 templates/wei/weimembership_form.html:50
msgid "first year" msgid "first year"
msgstr "première année" msgstr "première année"
#: apps/wei/models.py:194 #: apps/wei/models.py:222
msgid "Tells if the user is new in the school." msgid "Tells if the user is new in the school."
msgstr "Indique si l'utilisateur est nouveau dans l'école." msgstr "Indique si l'utilisateur est nouveau dans l'école."
#: apps/wei/models.py:199 #: apps/wei/models.py:227
msgid "registration information" msgid "registration information"
msgstr "informations sur l'inscription" msgstr "informations sur l'inscription"
#: apps/wei/models.py:200 #: apps/wei/models.py:228
msgid "" msgid ""
"Information about the registration (buses for old members, survey fot the " "Information about the registration (buses for old members, survey fot the "
"new members), encoded in JSON" "new members), encoded in JSON"
msgstr "" msgstr ""
"Informations sur l'inscription (bus pour les 2A+, questionnaire pour les 1A)," "Informations sur l'inscription (bus pour les 2A+, questionnaire pour les "
" encodées en JSON" "1A), encodées en JSON"
#: apps/wei/models.py:224 #: apps/wei/models.py:259
msgid "WEI User" msgid "WEI User"
msgstr "Participant au WEI" msgstr "Participant au WEI"
#: apps/wei/models.py:225 #: apps/wei/models.py:260
msgid "WEI Users" msgid "WEI Users"
msgstr "Participants au WEI" msgstr "Participants au WEI"
#: apps/wei/models.py:244 #: apps/wei/models.py:279
msgid "team" msgid "team"
msgstr "équipe" msgstr "équipe"
#: apps/wei/models.py:254 #: apps/wei/models.py:279
msgid "Team"
msgstr "Équipe"
#: apps/wei/models.py:289
msgid "WEI registration" msgid "WEI registration"
msgstr "inscription au WEI" msgstr "inscription au WEI"
#: apps/wei/models.py:258 #: apps/wei/models.py:293
msgid "WEI membership" msgid "WEI membership"
msgstr "adhésion au WEI" msgstr "adhésion au WEI"
#: apps/wei/models.py:259 #: apps/wei/models.py:294
msgid "WEI memberships" msgid "WEI memberships"
msgstr "adhésions au WEI" msgstr "adhésions au WEI"
@ -1174,10 +1217,28 @@ msgstr "Valider"
msgid "Teams" msgid "Teams"
msgstr "Équipes" msgstr "Équipes"
#: apps/wei/views.py:351 #: apps/wei/views.py:336 templates/wei/weiclub_info.html:62
msgid "Register 1A"
msgstr "Inscrire un 1A"
#: apps/wei/views.py:377 templates/wei/weiclub_info.html:63
msgid "Register 2A+"
msgstr "Inscrire un 2A+"
#: apps/wei/views.py:394
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:587
msgid "This user didn't give her/his caution check." msgid "This user didn't give her/his caution check."
msgstr "Cet utilisateur n'a pas donné son chèque de caution." msgstr "Cet utilisateur n'a pas donné son chèque de caution."
#: apps/wei/views.py:655 apps/wei/views.py:675 apps/wei/views.py:685
#: templates/wei/survey.html:12 templates/wei/survey_closed.html:12
#: templates/wei/survey_end.html:12
msgid "Survey WEI"
msgstr "Questionnaire WEI"
#: note_kfet/settings/__init__.py:63 #: note_kfet/settings/__init__.py:63
msgid "" msgid ""
"The Central Authentication Service grants you access to most of our websites " "The Central Authentication Service grants you access to most of our websites "
@ -1376,12 +1437,12 @@ msgstr "Créer un club"
msgid "Club listing" msgid "Club listing"
msgstr "Liste des clubs" msgstr "Liste des clubs"
#: templates/member/club_tables.html:7 templates/wei/weiclub_tables.html:79 #: templates/member/club_tables.html:7 templates/wei/weiclub_tables.html:92
msgid "Member of the Club" msgid "Member of the Club"
msgstr "Membre du club" msgstr "Membre du club"
#: templates/member/club_tables.html:20 templates/member/profile_tables.html:28 #: templates/member/club_tables.html:20 templates/member/profile_tables.html:28
#: templates/wei/weiclub_tables.html:92 #: templates/wei/weiclub_tables.html:105
msgid "Transaction history" msgid "Transaction history"
msgstr "Historique des transactions" msgstr "Historique des transactions"
@ -1561,8 +1622,8 @@ msgid "Validate account"
msgstr "Valider le compte" msgstr "Valider le compte"
#: templates/registration/future_profile_detail.html:71 #: templates/registration/future_profile_detail.html:71
#: templates/wei/weimembership_form.html:97 #: templates/wei/weimembership_form.html:115
#: templates/wei/weimembership_form.html:147 #: templates/wei/weimembership_form.html:173
msgid "Validate registration" msgid "Validate registration"
msgstr "Valider l'inscription" msgstr "Valider l'inscription"
@ -1715,13 +1776,15 @@ msgid ""
" " " "
msgstr "" msgstr ""
"\n" "\n"
" Si vous vous êtes déjà inscrits, votre inscription a bien été prise en " " Si vous vous êtes déjà inscrits, votre inscription a bien été "
"compte. Le BDE doit d'abord valider votre compte avant\n" "prise en compte. Le BDE doit d'abord valider votre compte avant\n"
" que vous puissiez vous connecter. Vous devez vous rendre à la Kfet et payer " " que vous puissiez vous connecter. Vous devez vous rendre à la "
"les frais d'adhésion. Vous devez également valider votre adresse\n" "Kfet et payer les frais d'adhésion. Vous devez également valider votre "
" email en suivant le lien que vous avez reçu. Si vous aviez oublié de vous " "adresse\n"
"inscrire au WEI, vous pourrez vous pré-inscrire à nouveau\n" " email en suivant le lien que vous avez reçu. Si vous aviez "
" après avoir validé votre compte, merci alors de vous rendre à la Kfet.\n" "oublié de vous inscrire au WEI, vous pourrez vous pré-inscrire à nouveau\n"
" après avoir validé votre compte, merci alors de vous rendre à la "
"Kfet.\n"
" " " "
#: templates/treasury/invoice_form.html:6 #: templates/treasury/invoice_form.html:6
@ -1801,6 +1864,22 @@ msgstr "Ajouter une équipe"
msgid "Members" msgid "Members"
msgstr "Membres" msgstr "Membres"
#: templates/wei/survey.html:24
msgid "Next"
msgstr "Suivant"
#: templates/wei/survey_closed.html:16
msgid "The inscription for this WEI are now closed."
msgstr "Les inscriptions pour le WEI sont fermées."
#: templates/wei/survey_closed.html:22
msgid "Return to WEI detail"
msgstr "Retour aux détails du WEI"
#: templates/wei/survey_end.html:16
msgid "The survey is now ended. Your answers have been saved."
msgstr "Le sondage est désormais terminé, vos réponses ont bien été enregistrées."
#: templates/wei/weiclub_info.html:31 #: templates/wei/weiclub_info.html:31
msgid "WEI fee / including BDE and Kfet fee (paid students)" msgid "WEI fee / including BDE and Kfet fee (paid students)"
msgstr "Prix du WEI / incluant l'adhésion BDE/Kfet (élèves)" msgstr "Prix du WEI / incluant l'adhésion BDE/Kfet (élèves)"
@ -1810,14 +1889,14 @@ msgid "WEI fee / including BDE and Kfet fee (unpaid students)"
msgstr "Prix du WEI / incluant l'adhésion BDE/Kfet (étudiants)" msgstr "Prix du WEI / incluant l'adhésion BDE/Kfet (étudiants)"
#: templates/wei/weiclub_info.html:58 #: templates/wei/weiclub_info.html:58
msgid "Register 2A+" msgid "WEI list"
msgstr "Inscrire un 2A+" msgstr "Liste des WEI"
#: templates/wei/weiclub_info.html:64 #: templates/wei/weiclub_info.html:69
msgid "Add bus" msgid "Add bus"
msgstr "Ajouter un bus" msgstr "Ajouter un bus"
#: templates/wei/weiclub_info.html:68 #: templates/wei/weiclub_info.html:73
msgid "View WEI" msgid "View WEI"
msgstr "Voir le WEI" msgstr "Voir le WEI"
@ -1833,7 +1912,19 @@ msgstr "Créer un WEI"
msgid "WEI listing" msgid "WEI listing"
msgstr "Liste des WEI" msgstr "Liste des WEI"
#: templates/wei/weiclub_tables.html:107 #: templates/wei/weiclub_tables.html:63
msgid "Register to the WEI! 1A"
msgstr "M'inscrire au WEI ! 1A"
#: templates/wei/weiclub_tables.html:65
msgid "Register to the WEI! 2A+"
msgstr "M'inscrire au WEI ! 2A+"
#: templates/wei/weiclub_tables.html:67
msgid "Update my registration"
msgstr "Mettre à jour mon inscription"
#: templates/wei/weiclub_tables.html:120
msgid "Unvalidated registrations" msgid "Unvalidated registrations"
msgstr "Inscriptions non validées" msgstr "Inscriptions non validées"
@ -1846,73 +1937,101 @@ msgid "Payment from Société générale"
msgstr "Paiement de la Société générale" msgstr "Paiement de la Société générale"
#: templates/wei/weimembership_form.html:81 #: templates/wei/weimembership_form.html:81
msgid "Suggested bus from the survey:"
msgstr "Bus suggéré par le sondage :"
#: templates/wei/weimembership_form.html:86
msgid "Raw survey information"
msgstr "Informations brutes du sondage"
#: templates/wei/weimembership_form.html:96
msgid "The algorithm didn't run."
msgstr "L'algorithme n'a pas été exécuté."
#: templates/wei/weimembership_form.html:99
msgid "caution check given" msgid "caution check given"
msgstr "chèque de caution donné" msgstr "chèque de caution donné"
#: templates/wei/weimembership_form.html:88 #: templates/wei/weimembership_form.html:106
msgid "Update registration" msgid "Update registration"
msgstr "Mettre à jour l'inscription" msgstr "Mettre à jour l'inscription"
#: templates/wei/weimembership_form.html:101 #: templates/wei/weimembership_form.html:119
msgid "The registration is already validated and can't be unvalidated."
msgstr "L'inscription a déjà été validée et ne peut pas être dévalidée."
#: templates/wei/weimembership_form.html:120
msgid "The user joined the bus"
msgstr "L'utilisateur a rejoint le bus"
#: templates/wei/weimembership_form.html:121
msgid "in the team"
msgstr "dans l'équipe"
#: templates/wei/weimembership_form.html:122
msgid "in no team (staff)"
msgstr "dans aucune équipe (staff)"
#: templates/wei/weimembership_form.html:122
msgid "with the following roles:"
msgstr "avec les rôles suivants :"
#: templates/wei/weimembership_form.html:127
msgid "" msgid ""
"\n" "\n"
" The WEI will be paid by Société générale. The " " The WEI will be paid by Société générale. The "
"membership will be created even if the bank didn't pay the BDE yet.\n" "membership will be created even if the bank didn't pay the BDE yet.\n"
" The membership transaction will be created but will " " The membership transaction will be created but "
"be invalid. You will have to validate it once the bank\n" "will be invalid. You will have to validate it once the bank\n"
" validated the creation of the account, or to change " " validated the creation of the account, or to "
"the payment method.\n" "change the payment method.\n"
" " " "
msgstr "" msgstr ""
"\n" "\n"
" Le WEI va être payé par la Société générale. " "Le WEI va être payé par la Société générale. "
"L'adhésion sera créée même si la banque n'a pas encore payé le BDE.\n" "L'adhésion sera créée même si la banque n'a pas encore payé le BDE.\n"
" La transaction d'adhésion sera créée mais invalide. " "La transaction d'adhésion sera créée mais invalide. "
"Vous devrez la valider une fois que la banque\n" "Vous devrez la valider une fois que la banque\n"
" aura validé la création du compte, ou bien changer " "aura validé la création du compte, ou bien changer "
"de moyen de paiement.\n" "de moyen de paiement.\n"
" " " "
#: templates/wei/weimembership_form.html:111 #: templates/wei/weimembership_form.html:137
#, python-format
msgid "" msgid ""
"\n" "\n"
" The note don't have enough money (%(balance)s, " "The note don't have enough money "
"%(pretty_fee)s required). The registration may fail.\n" "(%(balance)s, %(pretty_fee)s required). The registration may fail.\n"
" " " "
msgstr "" msgstr ""
"\n" "\n"
" La note n'a pas assez d'argent (%(balance)s, " "La note n'a pas assez d'argent (%(balance)s, "
"%(pretty_fee)s requis). L'inscription va échouer.\n" "%(pretty_fee)s requis). L'inscription va échouer.\n"
" " " "
#: templates/wei/weimembership_form.html:118 #: templates/wei/weimembership_form.html:144
msgid "The note has enough money." msgid "The note has enough money, the registration is possible."
msgstr "La note n'a pas assez d'argent." msgstr "La note a assez d'argent, l'inscription est possible."
#: templates/wei/weimembership_form.html:125 #: templates/wei/weimembership_form.html:151
msgid "The user didn't give her/his caution check." msgid "The user didn't give her/his caution check."
msgstr "L'utilisateur n'a pas donné son chèque de caution." msgstr "L'utilisateur n'a pas donné son chèque de caution."
#: templates/wei/weimembership_form.html:133 #: templates/wei/weimembership_form.html:159
#, python-format
msgid "" msgid ""
"\n" "\n"
" This user is not a member of the Kfet club. Please " " This user is not a member of the Kfet club. "
"adhere\n" "Please adhere\n"
" <a href=\"%(future_user_detail)s\">here if he/she is " " <a href=\"%(future_user_detail)s\">here if he/"
"in her/his first year</a>\n" "she is in her/his first year</a>\n"
" or <a href=\"%(club_detail)s\">here if he/she was an " " or <a href=\"%(club_detail)s\">here if he/she "
"old member</a> before you validate\n" "was an old member</a> before you validate\n"
" the registration of the WEI.\n" " the registration of the WEI.\n"
" " " "
msgstr "" msgstr ""
"\n" "\n"
" Cet utilisateur n'est pas membre du club Kfet. Merci " "Cet utilisateur n'est pas membre du club Kfet. Merci "
"de le faire adhérer\n" "de le faire adhérer\n"
" <a href=\"%(future_user_detail)s\">ici s'il est en " "<a href=\"%(future_user_detail)s\">ici s'il est en première année</a>\n"
"première année</a>\n" "ou <a href=\"%(club_detail)s\">ici s'il est un ancien membre</a> avant de valider\n"
" ou <a href=\"%(club_detail)s\">ici s'il est un ancien " "l'inscription au WEI.\n"
"membre</a> avant de valider\n" " "
" l'inscription au WEI.\n"
" "

View File

@ -13,9 +13,7 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<p> <p>
{% blocktrans %} {% trans "The inscription for this WEI are now closed." %}
The inscription for this WEI are now closed.
{% endblocktrans %}
</p> </p>
</div> </div>
<div class="card-footer text-center"> <div class="card-footer text-center">

View File

@ -13,9 +13,7 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<p> <p>
{% blocktrans %} {% trans "The survey is now ended. Your answers have been saved." %}
The survey is now ended. Your answers have been saved.
{% endblocktrans %}
</p> </p>
</div> </div>
</div> </div>

View File

@ -63,8 +63,8 @@
<a href="{% url "wei:wei_register_1A_myself" wei_pk=club.pk %}"><button class="btn btn-success">{% trans "Register to the WEI! 1A" %}</button></a> <a href="{% url "wei:wei_register_1A_myself" wei_pk=club.pk %}"><button class="btn btn-success">{% trans "Register to the WEI! 1A" %}</button></a>
{% endif %} {% endif %}
<a href="{% url "wei:wei_register_2A_myself" wei_pk=club.pk %}"><button class="btn btn-success">{% trans "Register to the WEI! 2A+" %}</button></a> <a href="{% url "wei:wei_register_2A_myself" wei_pk=club.pk %}"><button class="btn btn-success">{% trans "Register to the WEI! 2A+" %}</button></a>
{% elif my_registration.is_validated %} {% else %}
<a href="{% url "wei:wei_update_registration" pk=user.pk %}"><button class="btn btn-warning">{% trans "Update my registration" %}</button></a> <a href="{% url "wei:wei_update_registration" pk=my_registration.pk %}"><button class="btn btn-warning">{% trans "Update my registration" %}</button></a>
{% endif %} {% endif %}
</div> </div>
{% endif %} {% endif %}

View File

@ -98,12 +98,23 @@
{% else %} {% else %}
<dt class="col-xl-6">{% trans 'caution check given'|capfirst %}</dt> <dt class="col-xl-6">{% trans 'caution check given'|capfirst %}</dt>
<dd class="col-xl-6">{{ registration.caution_check|yesno }}</dd> <dd class="col-xl-6">{{ registration.caution_check|yesno }}</dd>
{% with information=registration.information %}
<dt class="col-xl-6">{% trans 'preferred bus'|capfirst %}</dt>
<dd class="col-xl-6">{{ information.preferred_bus_name|join:', ' }}</dd>
<dt class="col-xl-6">{% trans 'preferred team'|capfirst %}</dt>
<dd class="col-xl-6">{{ information.preferred_team_name|join:', ' }}</dd>
<dt class="col-xl-6">{% trans 'preferred roles'|capfirst %}</dt>
<dd class="col-xl-6">{{ information.preferred_roles_name|join:', ' }}</dd>
{% endwith %}
{% endif %} {% endif %}
</dl> </dl>
</div> </div>
<div class="card-footer text-center"> <div class="card-footer text-center">
<a class="btn btn-primary btn-sm" href="{% url 'member:user_update_profile' registration.user.pk %}">{% trans 'Update Profile' %}</a> <a class="btn btn-primary btn-sm" href="{% url 'member:user_update_profile' registration.user.pk %}">{% trans 'Update Profile' %}</a>
<a class="btn btn-primary btn-sm" href="{% url 'wei:wei_update_registration' registration.user.pk %}">{% trans 'Update registration' %}</a> <a class="btn btn-primary btn-sm" href="{% url 'wei:wei_update_registration' registration.pk %}">{% trans 'Update registration' %}</a>
</div> </div>
</div> </div>
@ -114,56 +125,65 @@
<div class="card-header text-center" > <div class="card-header text-center" >
<h4> {% trans "Validate registration" %}</h4> <h4> {% trans "Validate registration" %}</h4>
</div> </div>
{% if registration.soge_credit %} {% if registration.is_validated %}
<div class="alert alert-warning"> <div class="alert alert-warning">
{% blocktrans %} {% trans "The registration is already validated and can't be unvalidated." %}
The WEI will be paid by Société générale. The membership will be created even if the bank didn't pay the BDE yet. {% trans "The user joined the bus" %} {{ registration.membership.bus }}
The membership transaction will be created but will be invalid. You will have to validate it once the bank {% if registration.membership.team %}{% trans "in the team" %} {{ registration.membership.team }},
validated the creation of the account, or to change the payment method. {% else %}{% trans "in no team (staff)" %},{% endif %} {% trans "with the following roles:" %} {{ registration.membership.roles.all|join:", " }}
{% endblocktrans %}
</div> </div>
{% else %} {% else %}
{% if registration.user.note.balance < fee %} {% if registration.soge_credit %}
<div class="alert alert-danger"> <div class="alert alert-warning">
{% with pretty_fee=fee|pretty_money %} {% blocktrans %}
{% blocktrans with balance=registration.user.note.balance|pretty_money %} The WEI will be paid by Société générale. The membership will be created even if the bank didn't pay the BDE yet.
The note don't have enough money ({{ balance }}, {{ pretty_fee }} required). The registration may fail. The membership transaction will be created but will be invalid. You will have to validate it once the bank
validated the creation of the account, or to change the payment method.
{% endblocktrans %} {% endblocktrans %}
{% endwith %}
</div> </div>
{% else %} {% else %}
<div class="alert alert-success"> {% if registration.user.note.balance < fee %}
{% trans "The note has enough money." %} <div class="alert alert-danger">
{% with pretty_fee=fee|pretty_money %}
{% blocktrans with balance=registration.user.note.balance|pretty_money %}
The note don't have enough money ({{ balance }}, {{ pretty_fee }} required). The registration may fail.
{% endblocktrans %}
{% endwith %}
</div>
{% else %}
<div class="alert alert-success">
{% trans "The note has enough money, the registration is possible." %}
</div>
{% endif %}
{% endif %}
{% if not registration.caution_check and not registration.first_year %}
<div class="alert alert-danger">
{% trans "The user didn't give her/his caution check." %}
</div> </div>
{% endif %} {% endif %}
{% endif %}
{% if not registration.caution_check and not registration.first_year %} {% if not kfet_member %}
<div class="alert alert-danger"> <div class="alert alert-danger">
{% trans "The user didn't give her/his caution check." %} {% url 'registration:future_user_detail' pk=registration.user.pk as future_user_detail %}
{% url 'member:club_detail' pk=club.parent_club.parent_club.pk as club_detail %}
{% blocktrans %}
This user is not a member of the Kfet club. Please adhere
<a href="{{ future_user_detail }}">here if he/she is in her/his first year</a>
or <a href="{{ club_detail }}">here if he/she was an old member</a> before you validate
the registration of the WEI.
{% endblocktrans %}
</div>
{% endif %}
<div class="card-body" id="profile_infos">
{% csrf_token %}
{{ form|crispy }}
</div>
<div class="card-footer text-center">
<button class="btn btn-success btn-sm">{% trans 'Validate registration' %}</button>
</div> </div>
{% endif %} {% endif %}
{% if not kfet_member %}
<div class="alert alert-danger">
{% url 'registration:future_user_detail' pk=registration.user.pk as future_user_detail %}
{% url 'member:club_detail' pk=club.parent_club.parent_club.pk as club_detail %}
{% blocktrans %}
This user is not a member of the Kfet club. Please adhere
<a href="{{ future_user_detail }}">here if he/she is in her/his first year</a>
or <a href="{{ club_detail }}">here if he/she was an old member</a> before you validate
the registration of the WEI.
{% endblocktrans %}
</div>
{% endif %}
<div class="card-body" id="profile_infos">
{% csrf_token %}
{{ form|crispy }}
</div>
<div class="card-footer text-center">
<button class="btn btn-success btn-sm">{% trans 'Validate registration' %}</button>
</div>
</form> </form>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -10,6 +10,7 @@
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
{{ form|crispy }} {{ form|crispy }}
{{ membership_form|crispy }}
<button class="btn btn-primary" type="submit">{% trans "Submit" %}</button> <button class="btn btn-primary" type="submit">{% trans "Submit" %}</button>
</form> </form>
{% endblock %} {% endblock %}