mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2024-12-25 05:42:23 +00:00
Implement the data structure for members
This commit is contained in:
parent
03eca29316
commit
d9a85948b3
@ -8,7 +8,7 @@ from django.core.exceptions import ValidationError
|
|||||||
from django.forms import FileInput
|
from django.forms import FileInput
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from .models import AdminRegistration, CoachRegistration, StudentRegistration
|
from .models import AdminRegistration, CoachRegistration, StudentRegistration, VolunteerRegistration
|
||||||
|
|
||||||
|
|
||||||
class SignupForm(UserCreationForm):
|
class SignupForm(UserCreationForm):
|
||||||
@ -101,6 +101,15 @@ class CoachRegistrationForm(forms.ModelForm):
|
|||||||
fields = ('team', 'professional_activity', 'give_contact_to_animath', 'email_confirmed',)
|
fields = ('team', 'professional_activity', 'give_contact_to_animath', 'email_confirmed',)
|
||||||
|
|
||||||
|
|
||||||
|
class VolunteerRegistrationForm(forms.ModelForm):
|
||||||
|
"""
|
||||||
|
A volunteer can also tell its professional activity.
|
||||||
|
"""
|
||||||
|
class Meta:
|
||||||
|
model = VolunteerRegistration
|
||||||
|
fields = ('professional_activity', 'give_contact_to_animath', 'email_confirmed',)
|
||||||
|
|
||||||
|
|
||||||
class AdminRegistrationForm(forms.ModelForm):
|
class AdminRegistrationForm(forms.ModelForm):
|
||||||
"""
|
"""
|
||||||
Admins can tell everything they want.
|
Admins can tell everything they want.
|
||||||
|
@ -91,24 +91,57 @@ class Registration(PolymorphicModel):
|
|||||||
verbose_name_plural = _("registrations")
|
verbose_name_plural = _("registrations")
|
||||||
|
|
||||||
|
|
||||||
def get_random_filename(instance, filename):
|
def get_random_photo_filename(instance, filename):
|
||||||
return "authorization/photo/" + get_random_string(64)
|
return "authorization/photo/" + get_random_string(64)
|
||||||
|
|
||||||
|
|
||||||
class StudentRegistration(Registration):
|
def get_random_health_filename(instance, filename):
|
||||||
"""
|
return "authorization/health/" + get_random_string(64)
|
||||||
Specific registration for students.
|
|
||||||
They have a team, a student class and a school.
|
|
||||||
"""
|
def get_random_parental_filename(instance, filename):
|
||||||
|
return "authorization/parental/" + get_random_string(64)
|
||||||
|
|
||||||
|
|
||||||
|
class ParticipantRegistration(Registration):
|
||||||
team = models.ForeignKey(
|
team = models.ForeignKey(
|
||||||
"participation.Team",
|
"participation.Team",
|
||||||
related_name="students",
|
related_name="participants",
|
||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
|
blank=True,
|
||||||
null=True,
|
null=True,
|
||||||
default=None,
|
default=None,
|
||||||
verbose_name=_("team"),
|
verbose_name=_("team"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
photo_authorization = models.FileField(
|
||||||
|
verbose_name=_("photo authorization"),
|
||||||
|
upload_to=get_random_photo_filename,
|
||||||
|
blank=True,
|
||||||
|
default="",
|
||||||
|
)
|
||||||
|
|
||||||
|
health_sheet = models.FileField(
|
||||||
|
verbose_name=_("health sheet"),
|
||||||
|
upload_to=get_random_health_filename,
|
||||||
|
blank=True,
|
||||||
|
default="",
|
||||||
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def type(self):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
@property
|
||||||
|
def form_class(self):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
|
||||||
|
class StudentRegistration(ParticipantRegistration):
|
||||||
|
"""
|
||||||
|
Specific registration for students.
|
||||||
|
They have a team, a student class and a school.
|
||||||
|
"""
|
||||||
student_class = models.IntegerField(
|
student_class = models.IntegerField(
|
||||||
choices=[
|
choices=[
|
||||||
(12, _("12th grade")),
|
(12, _("12th grade")),
|
||||||
@ -123,9 +156,9 @@ class StudentRegistration(Registration):
|
|||||||
verbose_name=_("school"),
|
verbose_name=_("school"),
|
||||||
)
|
)
|
||||||
|
|
||||||
photo_authorization = models.FileField(
|
parental_authorization = models.FileField(
|
||||||
verbose_name=_("photo authorization"),
|
verbose_name=_("parental authorization"),
|
||||||
upload_to=get_random_filename,
|
upload_to=get_random_parental_filename,
|
||||||
blank=True,
|
blank=True,
|
||||||
default="",
|
default="",
|
||||||
)
|
)
|
||||||
@ -144,20 +177,11 @@ class StudentRegistration(Registration):
|
|||||||
verbose_name_plural = _("student registrations")
|
verbose_name_plural = _("student registrations")
|
||||||
|
|
||||||
|
|
||||||
class CoachRegistration(Registration):
|
class CoachRegistration(ParticipantRegistration):
|
||||||
"""
|
"""
|
||||||
Specific registration for coaches.
|
Specific registration for coaches.
|
||||||
They have a team and a professional activity.
|
They have a team and a professional activity.
|
||||||
"""
|
"""
|
||||||
team = models.ForeignKey(
|
|
||||||
"participation.Team",
|
|
||||||
related_name="coachs",
|
|
||||||
on_delete=models.PROTECT,
|
|
||||||
null=True,
|
|
||||||
default=None,
|
|
||||||
verbose_name=_("team"),
|
|
||||||
)
|
|
||||||
|
|
||||||
professional_activity = models.TextField(
|
professional_activity = models.TextField(
|
||||||
verbose_name=_("professional activity"),
|
verbose_name=_("professional activity"),
|
||||||
)
|
)
|
||||||
@ -176,6 +200,24 @@ class CoachRegistration(Registration):
|
|||||||
verbose_name_plural = _("coach registrations")
|
verbose_name_plural = _("coach registrations")
|
||||||
|
|
||||||
|
|
||||||
|
class VolunteerRegistration(Registration):
|
||||||
|
"""
|
||||||
|
Specific registration for organizers and juries.
|
||||||
|
"""
|
||||||
|
professional_activity = models.TextField(
|
||||||
|
verbose_name=_("professional activity"),
|
||||||
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def type(self):
|
||||||
|
return _('volunteer')
|
||||||
|
|
||||||
|
@property
|
||||||
|
def form_class(self):
|
||||||
|
from registration.forms import VolunteerRegistrationForm
|
||||||
|
return VolunteerRegistrationForm
|
||||||
|
|
||||||
|
|
||||||
class AdminRegistration(Registration):
|
class AdminRegistration(Registration):
|
||||||
"""
|
"""
|
||||||
Specific registration for admins.
|
Specific registration for admins.
|
||||||
|
Loading…
Reference in New Issue
Block a user