from django import forms from django.utils.translation import ugettext_lazy as _ # TODO this is for the billing phase class TransactionCreationForm(forms.ModelForm): # transaction_link = forms.CharField() # account_link = forms.CharField() # bill_link = forms.CharField() source = forms.ChoiceField(required=False) # exclude = forms.BooleanField(required=False) # class Meta: # model = Bill ? def __init__(self, *args, **kwargs): super(SourceSelectionForm, self).__init__(*args, **kwargs) bill = kwargs.get('instance') if bill: sources = bill.account.payment_sources.filter(is_active=True) choices = [] for source in sources: if bill.ammount < 0: if source.method_class().allow_recharge: choices.append((source.method, source.method_display())) else: choices.append((source.method, source.method_display())) self.fields['source'].choices = choices # def clean(self): # cleaned_data = super(SourceSelectionForm, self).clean() # method = cleaned_data.get("method") # exclude = cleaned_data.get("exclude") # if not method and not exclude: # raise forms.ValidationError(_("A transaction should be explicitly " # "excluded when no payment source is available.")) class ProcessTransactionForm(forms.ModelForm): pass