Change donation form
[wolnelektury.git] / src / club / forms.py
index df92524..e096303 100644 (file)
@@ -31,9 +31,12 @@ class DonationStep1Form(forms.ModelForm):
             'monthly'
             ]
 
             '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()
         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
 
         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
 
 
         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):
 
 
 class DonationStep2Form(forms.ModelForm, NewsletterForm):
@@ -64,13 +71,11 @@ class DonationStep2Form(forms.ModelForm, NewsletterForm):
             'monthly': 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
         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'):
         
         self.consent = []
         for c in models.Consent.objects.filter(active=True).order_by('order'):
@@ -83,11 +88,8 @@ class DonationStep2Form(forms.ModelForm, NewsletterForm):
                 c, key, (lambda k: lambda: self[k])(key)
             ))
 
                 c, key, (lambda k: lambda: self[k])(key)
             ))
 
-
-
     def save(self, *args, **kwargs):
         NewsletterForm.save(self, *args, **kwargs)
     def save(self, *args, **kwargs):
         NewsletterForm.save(self, *args, **kwargs)
-        self.instance.source = self.referer or ''
         instance = super().save(*args, **kwargs)
 
         consents = []
         instance = super().save(*args, **kwargs)
 
         consents = []