From a4cb19e5b187116bee5364d3b049ab44a82a1cf7 Mon Sep 17 00:00:00 2001 From: Benjamin Graillot Date: Mon, 23 Mar 2020 09:07:39 +0100 Subject: [PATCH 1/3] [member] Added parent_club field to Club --- apps/member/models.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/member/models.py b/apps/member/models.py index cdbb9332..41f5bdf3 100644 --- a/apps/member/models.py +++ b/apps/member/models.py @@ -67,6 +67,13 @@ class Club(models.Model): email = models.EmailField( verbose_name=_('email'), ) + parent_club = models.ForeignKey( + 'self', + null=True, + blank=True, + on_delete=models.PROTECT, + verbose_name=_('parent club'), + ) # Memberships membership_fee = models.PositiveIntegerField( From c86ddf17adac96e83367acbc722be29e07395639 Mon Sep 17 00:00:00 2001 From: Benjamin Graillot Date: Wed, 25 Mar 2020 17:54:28 +0100 Subject: [PATCH 2/3] [member] Check membership of parent club --- apps/member/models.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/member/models.py b/apps/member/models.py index 41f5bdf3..e5304bdd 100644 --- a/apps/member/models.py +++ b/apps/member/models.py @@ -4,6 +4,7 @@ import datetime from django.conf import settings +from django.core.exceptions import ValidationError from django.db import models from django.urls import reverse, reverse_lazy from django.utils.translation import gettext_lazy as _ @@ -165,6 +166,12 @@ class Membership(models.Model): else: return self.date_start.toordinal() <= datetime.datetime.now().toordinal() + def save(self, *args, **kwargs): + if self.club.parent_club is not None: + if not Membership.objects.filter(user=self.user, club=self.club.parent_club): + raise ValidationError(_('User is not a member of the parent club')) + super().save(*args, **kwargs) + class Meta: verbose_name = _('membership') verbose_name_plural = _('memberships') From 59cd166b790616ae815948735264fee0b10ec2f7 Mon Sep 17 00:00:00 2001 From: Benjamin Graillot Date: Wed, 25 Mar 2020 18:05:46 +0100 Subject: [PATCH 3/3] [member] tabs --> spaces --- apps/member/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/member/models.py b/apps/member/models.py index e5304bdd..d0051e59 100644 --- a/apps/member/models.py +++ b/apps/member/models.py @@ -169,7 +169,7 @@ class Membership(models.Model): def save(self, *args, **kwargs): if self.club.parent_club is not None: if not Membership.objects.filter(user=self.user, club=self.club.parent_club): - raise ValidationError(_('User is not a member of the parent club')) + raise ValidationError(_('User is not a member of the parent club')) super().save(*args, **kwargs) class Meta: