mirror of
https://github.com/ae-utbm/sith.git
synced 2026-06-05 15:49:21 +00:00
feat: link election Role to ClubRole
This commit is contained in:
+25
-3
@@ -5,6 +5,7 @@ from django.utils.functional import cached_property
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from ordered_model.models import OrderedModel
|
||||
|
||||
from club.models import Club, ClubRole
|
||||
from core.models import Group, User
|
||||
|
||||
|
||||
@@ -13,6 +14,12 @@ class Election(models.Model):
|
||||
|
||||
title = models.CharField(_("title"), max_length=255)
|
||||
description = models.TextField(_("description"), null=True, blank=True)
|
||||
clubs = models.ManyToManyField(
|
||||
Club,
|
||||
related_name="elections",
|
||||
verbose_name=_("clubs"),
|
||||
help_text=_("The club(s) this election is held for."),
|
||||
)
|
||||
start_candidature = models.DateTimeField(_("start candidature"), blank=False)
|
||||
end_candidature = models.DateTimeField(_("end candidature"), blank=False)
|
||||
start_date = models.DateTimeField(_("start date"), blank=False)
|
||||
@@ -96,7 +103,7 @@ class Election(models.Model):
|
||||
|
||||
|
||||
class Role(OrderedModel):
|
||||
"""This class allows to create a new role avaliable for a candidature."""
|
||||
"""This class allows to create a new role available for a candidature."""
|
||||
|
||||
election = models.ForeignKey(
|
||||
Election,
|
||||
@@ -105,8 +112,23 @@ class Role(OrderedModel):
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
title = models.CharField(_("title"), max_length=255)
|
||||
description = models.TextField(_("description"), null=True, blank=True)
|
||||
max_choice = models.IntegerField(_("max choice"), default=1)
|
||||
description = models.TextField(_("description"), default="", blank=True)
|
||||
max_choice = models.PositiveSmallIntegerField(_("max choice"), default=1)
|
||||
club_role = models.ForeignKey(
|
||||
ClubRole,
|
||||
related_name="election_roles",
|
||||
verbose_name=_("club role"),
|
||||
help_text=_(
|
||||
"A club role. Filling this will allow automatic "
|
||||
"completion of title and description, "
|
||||
"and automatic assignation after the elections."
|
||||
),
|
||||
on_delete=models.CASCADE,
|
||||
null=True,
|
||||
blank=True,
|
||||
)
|
||||
|
||||
order_with_respect_to = "election"
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.title} - {self.election.title}"
|
||||
|
||||
Reference in New Issue
Block a user