X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/18aa8ca52202003e5628a882f3469a04d905cc05..f59de09387c7ceb7d6ab2ccf6ea25cb4be8dacb5:/src/club/forms.py?ds=inline diff --git a/src/club/forms.py b/src/club/forms.py index df92524b9..ceda8d5b1 100644 --- a/src/club/forms.py +++ b/src/club/forms.py @@ -31,9 +31,12 @@ class DonationStep1Form(forms.ModelForm): 'monthly' ] - def __init__(self, *args, **kwargs): + def __init__(self, *args, referer=None, **kwargs): + self.referer = referer super().__init__(*args, **kwargs) club = models.Club.objects.first() + if self.instance.is_custom_amount(): + self.fields['custom_amount'].initial = int(self.instance.amount) if club is not None: self.fields['custom_amount'].widget.attrs['min'] = club.min_amount @@ -48,6 +51,10 @@ class DonationStep1Form(forms.ModelForm): return state + def save(self, *args, **kwargs): + if self.referer is not None: + self.instance.source = self.referer + return super().save(*args, **kwargs) class DonationStep2Form(forms.ModelForm, NewsletterForm): @@ -55,39 +62,30 @@ class DonationStep2Form(forms.ModelForm, NewsletterForm): model = models.Schedule fields = [ 'first_name', 'last_name', - 'email', 'phone', - 'postal', - 'postal_code', 'postal_town', 'postal_country', + 'email', ] widgets = { 'amount': forms.HiddenInput, 'monthly': forms.HiddenInput, } - def __init__(self, referer=None, **kwargs): - self.referer = referer + def __init__(self, **kwargs): super().__init__(**kwargs) - self.fields['first_name'].required = True - self.fields['last_name'].required = True - self.fields['phone'].required = True - self.consent = [] for c in models.Consent.objects.filter(active=True).order_by('order'): key = f'consent{c.id}' - self.fields[key] = forms.BooleanField( - label=c.text, - required=c.required - ) + if not c.required: + self.fields[key] = forms.BooleanField( + label=c.text, + required=c.required + ) self.consent.append(( c, key, (lambda k: lambda: self[k])(key) )) - - def save(self, *args, **kwargs): NewsletterForm.save(self, *args, **kwargs) - self.instance.source = self.referer or '' instance = super().save(*args, **kwargs) consents = []