diff --git a/project/commons/forms.py b/project/commons/forms.py
index de8de01..0c07ca0 100644
--- a/project/commons/forms.py
+++ b/project/commons/forms.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from django import forms
-
+import autocomplete_light
def set_field_error(form, field, msg=u'Обязательное поле.'):
"""Добавить сообщение об ошибке поля и убрать это поле из списка успешно прошедших валидацию.
@@ -62,3 +62,6 @@ class MyBaseModelForm(forms.ModelForm, _MySuperForm):
def __init__(self, *args, **kwargs):
forms.ModelForm.__init__(self, *args, **kwargs)
_MySuperForm.__init__(self, *args, **kwargs)
+ f = self.fields
+ if 'units' in f:
+ f['units'].widget = autocomplete_light.TextWidget('ACMeasure')
diff --git a/project/docs/forms/faktura.py b/project/docs/forms/faktura.py
index d35a997..6120b6b 100644
--- a/project/docs/forms/faktura.py
+++ b/project/docs/forms/faktura.py
@@ -11,9 +11,9 @@ from project.customer.models import Client
class FakturaForm(BaseModelForm):
"""Форма редактирования фактуры."""
- sender = forms.ModelChoiceField(Client.objects.all(), label=u'клиент', required=True,
+ sender = forms.ModelChoiceField(Client.objects.all(), label=u'клиент', required=False,
widget=autocomplete_light.ChoiceWidget('ACClient'))
- receiver = forms.ModelChoiceField(Client.objects.all(), label=u'клиент', required=True,
+ receiver = forms.ModelChoiceField(Client.objects.all(), label=u'клиент', required=False,
widget=autocomplete_light.ChoiceWidget('ACClient'))
adjust_client_fields = []
@@ -48,7 +48,6 @@ class FakturaAdminForm(FakturaForm):
class FakturaItemForm(MyBaseModelForm):
"""Форма редактирования табличной части фактуры."""
- units = forms.CharField(widget=autocomplete_light.TextWidget('ACMeasure'),)
country_name = forms.CharField(widget=autocomplete_light.TextWidget('ACCountry'),)
class Meta:
model = FakturaItem
diff --git a/project/docs/views/base_views.py b/project/docs/views/base_views.py
index 0167215..d64577c 100644
--- a/project/docs/views/base_views.py
+++ b/project/docs/views/base_views.py
@@ -642,6 +642,21 @@ class BaseItemsViews(BaseViews):
return redirect(self.REDIRECT_AFTER_EDIT)
obj = self.get_obj(kwargs['id'])
+ receiver_choice = 1
+ sender_choice = 1
+ if self.request.method == 'GET':
+ if obj.user_is_sender:
+ sender_choice = 'he_is'
+ elif obj.sender:
+ sender_choice = 'another'
+ else:
+ sender_choice = 'nobody'
+ if obj.receiver == obj.client:
+ receiver_choice = 'he_is'
+ elif obj.sender:
+ receiver_choice = 'another'
+ else:
+ receiver_choice = 'nobody'
if self.pformset:
pformset = self.pformset(self.request.POST or None, instance=obj)
@@ -653,6 +668,21 @@ class BaseItemsViews(BaseViews):
if form.is_valid() and formset.is_valid() and ((not pformset) or (pformset and pformset.is_valid())):
new_obj = form.save()
+ # По сути - для фактуры.
+ receiver = form.data.get('receiver_group', None)
+ if receiver == 'he_is':
+ new_obj.receiver = new_obj.client
+ elif receiver == 'nobody':
+ new_obj.receiver = None
+ sender = form.data.get('receiver_group', None)
+ if sender == 'he_is':
+ new_obj.user_is_sender = True
+ new_obj.sender = None
+ elif sender == 'nobody':
+ new_obj.user_is_sender = False
+ new_obj.sender = None
+ new_obj.save()
+
# сохранить табличную часть
if formset.is_valid():
items = formset.save(commit=False)
@@ -679,6 +709,8 @@ class BaseItemsViews(BaseViews):
'formset': formset,
'pformset': pformset,
'client_form': ClientForm(),
+ 'receiver_choice': receiver_choice,
+ 'sender_choice': sender_choice,
}
return render(self.request, self.TEMPLATE_EDIT, dictionary)
diff --git a/project/docs/views/faktura.py b/project/docs/views/faktura.py
index 824ceb4..d53453e 100644
--- a/project/docs/views/faktura.py
+++ b/project/docs/views/faktura.py
@@ -45,7 +45,7 @@ class FakturaViews(BaseItemsViews, AddByInvoiceMethodMixin):
# для генерации pdf/xls
PDF_TEMPLATE = 'docs/faktura/as_pdf.html'
XLS_TEMPLATE = 'faktura.xls'
- FILENAME = u'Накладная № %s, %s' # без расширения
+ FILENAME = u'Счёт-фактура № %s, %s' # без расширения
# --- грамматика для вывода наименований в шаблонах
PADEJI = {
diff --git a/project/templates/customer/clients/form.html b/project/templates/customer/clients/form.html
index 0efff0e..89bb83e 100644
--- a/project/templates/customer/clients/form.html
+++ b/project/templates/customer/clients/form.html
@@ -207,7 +207,7 @@
{% else %}
-
+
{% endif %}
diff --git a/project/templates/docs/parts/form_client_choices.html b/project/templates/docs/parts/form_client_choices.html
index 879942d..6b101de 100644
--- a/project/templates/docs/parts/form_client_choices.html
+++ b/project/templates/docs/parts/form_client_choices.html
@@ -1,3 +1,4 @@
- {{ label1|default:'Он же' }}
-{{ label1|default:'Стороннее лицо' }}
- Не указывать
\ No newline at end of file
+
{{ label }}
+ {{ label1|default:'Он же' }}