From b16871d9255ba8ed616ac7b849e6acb4d85fa7dc Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO <yohann.danello@gmail.com> Date: Sat, 15 Aug 2020 23:03:49 +0200 Subject: [PATCH] Display a form error rather than a page error if a guest is already invited --- apps/activity/admin.py | 2 ++ apps/activity/forms.py | 3 +-- apps/activity/models.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/activity/admin.py b/apps/activity/admin.py index 705ac206..4cf5925d 100644 --- a/apps/activity/admin.py +++ b/apps/activity/admin.py @@ -3,6 +3,7 @@ from django.contrib import admin from note_kfet.admin import admin_site +from .forms import GuestForm from .models import Activity, ActivityType, Entry, Guest @@ -35,6 +36,7 @@ class GuestAdmin(admin.ModelAdmin): Admin customisation for Guest """ list_display = ('last_name', 'first_name', 'activity', 'inviter') + form = GuestForm @admin.register(Entry, site=admin_site) diff --git a/apps/activity/forms.py b/apps/activity/forms.py index c05330ae..f5d98fb0 100644 --- a/apps/activity/forms.py +++ b/apps/activity/forms.py @@ -55,9 +55,8 @@ class GuestForm(forms.ModelForm): first_name__iexact=cleaned_data["first_name"], last_name__iexact=cleaned_data["last_name"], activity__date_start__gte=self.activity.date_start - one_year, - entry__isnull=False, ) - if qs.count() >= 5: + if qs.filter(entry__isnull=False).count() >= 5: self.add_error("last_name", _("This person has been already invited 5 times this year.")) qs = qs.filter(activity=self.activity) diff --git a/apps/activity/models.py b/apps/activity/models.py index 89a51d73..c4090f85 100644 --- a/apps/activity/models.py +++ b/apps/activity/models.py @@ -257,7 +257,7 @@ class Guest(models.Model): last_name__iexact=self.last_name, activity__date_start__gte=self.activity.date_start - one_year, ) - if qs.count() >= 5: + if qs.filter(entry__isnull=False).count() >= 5: raise ValidationError(_("This person has been already invited 5 times this year.")) qs = qs.filter(activity=self.activity) -- GitLab