- if cleaned_data['amount'] < cleaned_data['plan'].min_amount:
- self.add_error(
- 'amount',
- 'Minimalna kwota dla tego planu to %d zł.' % cleaned_data['plan'].min_amount
+ 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 Meta:
+ model = models.Schedule
+ fields = [
+ 'first_name', 'last_name',
+ 'email',
+ ]
+ widgets = {
+ 'amount': forms.HiddenInput,
+ 'monthly': forms.HiddenInput,
+ }
+
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ self.consent = []
+ for c in models.Consent.objects.filter(active=True).order_by('order'):
+ key = f'consent{c.id}'
+ if not c.required:
+ self.fields[key] = forms.BooleanField(
+ label=c.text,
+ required=c.required