mirror of https://gitlab.crans.org/bde/nk20
Users that are not member of the club Kfet can't have a negative balance
This commit is contained in:
parent
92ab5ee3af
commit
356c8588e7
|
@ -228,8 +228,8 @@ class Membership(models.Model):
|
||||||
if Membership.objects.filter(
|
if Membership.objects.filter(
|
||||||
user=self.user,
|
user=self.user,
|
||||||
club=self.club,
|
club=self.club,
|
||||||
date_start__lte=datetime.datetime.now().date(),
|
date_start__lte=self.date_start,
|
||||||
date_end__gte=datetime.datetime.now().date(),
|
date_end__gte=self.date_start,
|
||||||
).exists():
|
).exists():
|
||||||
raise ValidationError(_('User is already a member of the club'))
|
raise ValidationError(_('User is already a member of the club'))
|
||||||
|
|
||||||
|
|
|
@ -358,8 +358,25 @@ class ClubAddMemberView(ProtectQuerysetMixin, LoginRequiredMixin, CreateView):
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
club = Club.objects.filter(PermissionBackend.filter_queryset(self.request.user, Club, "view"))\
|
club = Club.objects.filter(PermissionBackend.filter_queryset(self.request.user, Club, "view"))\
|
||||||
.get(pk=self.kwargs["pk"])
|
.get(pk=self.kwargs["pk"])
|
||||||
|
user = self.request.user
|
||||||
form.instance.club = club
|
form.instance.club = club
|
||||||
|
|
||||||
|
if user.profile.paid:
|
||||||
|
fee = club.membership_fee_paid
|
||||||
|
else:
|
||||||
|
fee = club.membership_fee_unpaid
|
||||||
|
if user.note.balance < fee and not Membership.objects.filter(
|
||||||
|
club=2,
|
||||||
|
user=user,
|
||||||
|
date_start__lte=datetime.now().date(),
|
||||||
|
date_end__gte=datetime.now().date(),
|
||||||
|
).exists():
|
||||||
|
# Users without a valid Kfet membership can't have a negative balance.
|
||||||
|
# Club 2 = Kfet (hard-code :'( )
|
||||||
|
# TODO Send a notification to the user (with a mail?) to tell her/him to credit her/his note
|
||||||
|
form.add_error('user',
|
||||||
|
_("This user don't have enough money to join this club, and can't have a negative balance."))
|
||||||
|
|
||||||
if club.parent_club is not None:
|
if club.parent_club is not None:
|
||||||
if not Membership.objects.filter(user=form.instance.user, club=club.parent_club).exists():
|
if not Membership.objects.filter(user=form.instance.user, club=club.parent_club).exists():
|
||||||
form.add_error('user', _('User is not a member of the parent club') + ' ' + club.parent_club.name)
|
form.add_error('user', _('User is not a member of the parent club') + ' ' + club.parent_club.name)
|
||||||
|
@ -368,8 +385,8 @@ class ClubAddMemberView(ProtectQuerysetMixin, LoginRequiredMixin, CreateView):
|
||||||
if Membership.objects.filter(
|
if Membership.objects.filter(
|
||||||
user=form.instance.user,
|
user=form.instance.user,
|
||||||
club=club,
|
club=club,
|
||||||
date_start__lte=datetime.now().date(),
|
date_start__lte=form.instance.date_start,
|
||||||
date_end__gte=datetime.now().date(),
|
date_end__gte=form.instance.date_start,
|
||||||
).exists():
|
).exists():
|
||||||
form.add_error('user', _('User is already a member of the club'))
|
form.add_error('user', _('User is already a member of the club'))
|
||||||
return super().form_invalid(form)
|
return super().form_invalid(form)
|
||||||
|
|
Loading…
Reference in New Issue