You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

61 lines
2.1 KiB

# -*- coding: utf-8 -*-
from django import forms
from project.commons.forms import MyBaseModelForm
from docs.forms.base_forms import BaseModelForm
from docs.models import Invoice, InvoiceItem
class InvoiceForm(BaseModelForm):
"""Форма редактирования счета."""
class Meta:
model = Invoice
fields = ('doc_num', 'doc_date',
'bank_account', 'client',
'nds_value',
'doc_text',
)
_radioselect = forms.RadioSelect
_textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3})
widgets = {
'doc_text': _textarea,
}
class InvoiceAdminForm(InvoiceForm):
"""Форма редактирования счета - для админки."""
class Meta(InvoiceForm.Meta):
# fields = None
exclude = ()
_textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3})
widgets = {
'doc_text': _textarea,
}
def __init__(self, *args, **kwargs):
# обязательно нужно вызывать родительский __init__ и передавать ему None вместо user - иначе глюки !
super(InvoiceAdminForm, self).__init__(None, *args, **kwargs)
class InvoicesListForm(forms.Form):
"""Форма со списком всех счетов пользователя."""
invoice = forms.ModelChoiceField(queryset=Invoice.objects.get_all(None), empty_label=u'все счета', required=False)
def __init__(self, user, *args, **kwargs):
super(InvoicesListForm, self).__init__(*args, **kwargs)
self.fields['invoice'].queryset = Invoice.objects.get_all(user.profile)
class InvoiceItemForm(MyBaseModelForm):
"""Форма редактирования табличной части счета."""
class Meta:
model = InvoiceItem
exclude = ['parent']
fields = '__all__'
class InvoiceItemAdminForm(InvoiceItemForm):
"""Форма редактирования табличной части счета - для админки."""
class Meta(InvoiceItemForm.Meta):
exclude = None