X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/ca336bd1f9658cf713681d1412d4153e5c4d9c93..07331350ad3e880d9e0260dc061187a151c253c7:/src/club/forms.py diff --git a/src/club/forms.py b/src/club/forms.py index bede0cb62..b818d1c12 100644 --- a/src/club/forms.py +++ b/src/club/forms.py @@ -1,6 +1,7 @@ +from decimal import Decimal from django import forms from . import models -from .payment_methods import method_by_slug +from .payment_methods import method_by_slug, methods from .payu.forms import CardTokenForm @@ -16,16 +17,29 @@ class ScheduleForm(forms.ModelForm): def __init__(self, *args, request=None, **kwargs): super(ScheduleForm, self).__init__(*args, **kwargs) self.request = request - self.fields['plan'].empty_label = None + self.plans = models.Plan.objects.all() + self.payment_methods = methods + self.fields['amount'].required = False def clean(self): cleaned_data = super(ScheduleForm, self).clean() + + if 'plan' in cleaned_data: + cleaned_data['amount'] = self.fields['amount'].clean( + self.request.POST['amount-{}'.format(cleaned_data['plan'].id)] + ) + + 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 + ) + if 'method' in cleaned_data: method = method_by_slug[cleaned_data['method']] if method not in cleaned_data['plan'].payment_methods(): - self.add_error('method', 'Metoda płatności niedostępna dla tego planu.') - 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) + self.add_error('method', 'Wybrana metoda płatności nie jest dostępna dla tego planu.') + class PayUCardTokenForm(CardTokenForm):