41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
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
|