From 672529382df40ea5a246a31092ca96a0a0851104 Mon Sep 17 00:00:00 2001 From: Emmy D'Anello Date: Sun, 11 Feb 2024 22:59:25 +0100 Subject: [PATCH] Fix payment view Signed-off-by: Emmy D'Anello --- registration/forms.py | 3 ++- registration/views.py | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/registration/forms.py b/registration/forms.py index a192d32..9fed38b 100644 --- a/registration/forms.py +++ b/registration/forms.py @@ -228,6 +228,7 @@ class PaymentForm(forms.ModelForm): self.fields["valid"].widget.choices[0] = ('unknown', _("Pending")) def clean_scholarship_file(self): + print(self.files) if "scholarship_file" in self.files: file = self.files["scholarship_file"] if file.size > 2e6: @@ -240,7 +241,7 @@ class PaymentForm(forms.ModelForm): cleaned_data = super().clean() if "type" in cleaned_data and cleaned_data["type"] == "scholarship" \ - and "scholarship_file" not in cleaned_data and not self.instance.scholarship_file: + and "scholarship_file" not in self.files and not self.instance.scholarship_file: self.add_error("scholarship_file", _("You must upload your scholarship attestation.")) return cleaned_data diff --git a/registration/views.py b/registration/views.py index df7fb8b..c5c27af 100644 --- a/registration/views.py +++ b/registration/views.py @@ -456,13 +456,19 @@ class PaymentUpdateView(LoginRequiredMixin, UpdateView): def get_form(self, form_class=None): form = super().get_form(form_class) if not self.request.user.registration.is_admin: - del form.fields["type"].widget.choices[-1] + from django.forms.widgets import Select + widget: Select + form.fields["type"].widget.choices = list(form.fields["type"].widget.choices)[:-1] del form.fields["valid"] return form def form_valid(self, form): if not self.request.user.registration.is_admin: form.instance.valid = None + old_instance = Payment.objects.get(pk=self.object.pk) + if old_instance.scholarship_file: + old_instance.scholarship_file.delete() + old_instance.save() return super().form_valid(form)