From 9559540e9840e8237f5eb704e25e5c4bec8b79cf Mon Sep 17 00:00:00 2001 From: Ties Dirksen <78494266+T8902@users.noreply.github.com> Date: Mon, 18 Nov 2024 14:32:44 +0100 Subject: [PATCH] Feature/study long to benefactor (#3848) * update renewal form to allow benefactorer renewals when having a study long membership * Fix services to allow for benefactorer registrations when having study long membership * Update views.py to allow for benefactorer extension * Fix tests --- website/registrations/forms.py | 1 + website/registrations/services.py | 12 ++++++------ .../templates/registrations/renewal.html | 15 +++++++++------ website/registrations/tests/test_views.py | 2 +- website/registrations/views.py | 7 ++++++- 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/website/registrations/forms.py b/website/registrations/forms.py index e3602906c..792ee57a8 100644 --- a/website/registrations/forms.py +++ b/website/registrations/forms.py @@ -243,6 +243,7 @@ def clean(self): if ( self.cleaned_data["member"].latest_membership and self.cleaned_data["member"].latest_membership.study_long + and self.cleaned_data["membership_type"] != Membership.BENEFACTOR ): raise ValidationError("It's not possible to renew a study long membership.") diff --git a/website/registrations/services.py b/website/registrations/services.py index 783515b64..7d539af1c 100644 --- a/website/registrations/services.py +++ b/website/registrations/services.py @@ -254,12 +254,12 @@ def complete_renewal(renewal: Renewal): latest_membership = member.latest_membership current_membership = member.current_membership - if (latest_membership and latest_membership.study_long) or ( - current_membership - and (current_membership.study_long or current_membership.until is None) - and not renewal.membership_type == Membership.BENEFACTOR - ): - raise ValueError("This member already has a never ending membership") + if ( + latest_membership + and latest_membership.study_long + and renewal.membership_type != Membership.BENEFACTOR + ) or (current_membership and current_membership.until is None): + raise ValueError("This member already has a never ending membership.") until = timezone.datetime(year=lecture_year + 1, month=9, day=1).date() with transaction.atomic(): if renewal.length == Renewal.MEMBERSHIP_STUDY: diff --git a/website/registrations/templates/registrations/renewal.html b/website/registrations/templates/registrations/renewal.html index 360ab5988..7d1e14fcd 100644 --- a/website/registrations/templates/registrations/renewal.html +++ b/website/registrations/templates/registrations/renewal.html @@ -129,11 +129,6 @@
- You seem to be on the wrong page for your membership type. - follow this link to renew your membership. -
{% elif not request.member.profile.is_minimized %} {% for error in form.errors.items %} {% for message in error.1 %} @@ -144,11 +139,19 @@