mirror of
https://github.com/ae-utbm/sith.git
synced 2026-03-31 15:59:42 +00:00
put roles at the right place when they are created
This commit is contained in:
@@ -278,6 +278,7 @@ class ClubRole(OrderedModel):
|
||||
)
|
||||
if (
|
||||
self.is_board
|
||||
and self.order
|
||||
and self.club.roles.filter(is_board=False, order__lt=self.order).exists()
|
||||
):
|
||||
errors.append(
|
||||
@@ -290,6 +291,19 @@ class ClubRole(OrderedModel):
|
||||
raise ValidationError(errors)
|
||||
return super().clean()
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
auto_order = self.order is None and self.is_board
|
||||
if not auto_order:
|
||||
super().save(*args, **kwargs)
|
||||
return
|
||||
filters = Q(is_board=False)
|
||||
if self.is_presidency:
|
||||
filters |= Q(is_board=True, is_presidency=False)
|
||||
next_role = self.club.roles.filter(filters).order_by("order").first()
|
||||
super().save(*args, **kwargs)
|
||||
if next_role:
|
||||
self.above(next_role)
|
||||
|
||||
|
||||
class MembershipQuerySet(models.QuerySet):
|
||||
def ongoing(self) -> Self:
|
||||
|
||||
Reference in New Issue
Block a user