# -*- coding: utf-8 -*- from django import forms from project.commons.forms import MyBaseModelForm from .base_forms import BaseModelForm from ..models import Invoice, InvoiceItem class InvoiceForm(BaseModelForm): """Форма редактирования счета.""" class Meta: model = Invoice fields = ('doc_num', 'doc_date', 'bank_account', 'client', 'nds_type', 'nds_value', 'doc_text', ) _radioselect = forms.RadioSelect _textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3}) widgets = { 'nds_type': _radioselect, 'doc_text': _textarea, } class InvoiceAdminForm(InvoiceForm): """Форма редактирования счета - для админки.""" class Meta(InvoiceForm.Meta): fields = None _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) class InvoiceItemForm(MyBaseModelForm): """Форма редактирования табличной части счета.""" class Meta: model = InvoiceItem exclude = ['parent'] class InvoiceItemAdminForm(InvoiceItemForm): """Форма редактирования табличной части счета - для админки.""" class Meta(InvoiceItemForm.Meta): exclude = None