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
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
|
|
|