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.
83 lines
2.5 KiB
83 lines
2.5 KiB
# -*- coding: utf-8 -*-
|
|
import autocomplete_light
|
|
from django import forms
|
|
|
|
from commons.forms import MyBaseModelForm
|
|
from customer.models import Client
|
|
|
|
from .base_forms import BaseModelForm
|
|
from ..models import Nakladn, NakladnItem
|
|
|
|
|
|
class NakladnForm(BaseModelForm):
|
|
"""Форма редактирования накладной."""
|
|
sender = forms.ModelChoiceField(
|
|
Client.objects.all(),
|
|
label='клиент',
|
|
required=False,
|
|
widget=autocomplete_light.ChoiceWidget('ACClient')
|
|
)
|
|
receiver = forms.ModelChoiceField(
|
|
Client.objects.all(),
|
|
label='клиент',
|
|
required=False,
|
|
widget=autocomplete_light.ChoiceWidget('ACClient')
|
|
)
|
|
adjust_client_fields = []
|
|
|
|
class Meta:
|
|
model = Nakladn
|
|
fields = (
|
|
'doc_num',
|
|
'doc_date',
|
|
'bank_account',
|
|
'client',
|
|
'invoice',
|
|
'doc_reason',
|
|
'doc_reason_num',
|
|
'doc_reason_date',
|
|
'nds_value',
|
|
'nds_method',
|
|
'doc_text',
|
|
'transport',
|
|
'transport_date',
|
|
'transport_num',
|
|
'sender',
|
|
'receiver',
|
|
)
|
|
_radioselect = forms.RadioSelect
|
|
_textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3})
|
|
widgets = {
|
|
'doc_text': _textarea,
|
|
'nds_method': forms.RadioSelect()
|
|
}
|
|
|
|
|
|
class NakladnAdminForm(NakladnForm):
|
|
"""Форма редактирования накладной - для админки."""
|
|
class Meta(NakladnForm.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(NakladnAdminForm, self).__init__(None, *args, **kwargs)
|
|
|
|
|
|
class NakladnItemForm(MyBaseModelForm):
|
|
"""Форма редактирования табличной части накладной."""
|
|
class Meta:
|
|
model = NakladnItem
|
|
exclude = ['parent']
|
|
fields = '__all__'
|
|
|
|
|
|
class NakladnItemAdminForm(NakladnItemForm):
|
|
"""Форма редактирования табличной части накладной - для админки."""
|
|
class Meta(NakladnItemForm.Meta):
|
|
exclude = None
|
|
|