|
|
@@ -2,8 +2,35 @@
|
|
|
from django import forms
|
|
|
from django.forms import ModelForm
|
|
|
from datetime import date
|
|
|
-from django.contrib.admin.widgets import AdminDateWidget
|
|
|
-from asuzr.models import Order
|
|
|
+from django.contrib.admin.widgets import AdminDateWidget, FilteredSelectMultiple, RelatedFieldWidgetWrapper
|
|
|
+from django.forms.extras.widgets import Select
|
|
|
+from django.db.models.fields.related import ManyToOneRel
|
|
|
+from asuzr.models import *
|
|
|
+from django.core.urlresolvers import reverse
|
|
|
+from django.utils.safestring import mark_safe
|
|
|
+from django.forms import widgets
|
|
|
+from django.conf import settings
|
|
|
+
|
|
|
+class RelatedFieldWidgetCanAdd(widgets.Select):
|
|
|
+
|
|
|
+ def __init__(self, related_model, related_url=None, *args, **kw):
|
|
|
+
|
|
|
+ super(RelatedFieldWidgetCanAdd, self).__init__(*args, **kw)
|
|
|
+
|
|
|
+ if not related_url:
|
|
|
+ rel_to = related_model
|
|
|
+ info = (rel_to._meta.app_label, rel_to._meta.object_name.lower())
|
|
|
+ related_url = 'admin:%s_%s_add' % info
|
|
|
+
|
|
|
+ # Be careful that here "reverse" is not allowed
|
|
|
+ self.related_url = related_url
|
|
|
+
|
|
|
+ def render(self, name, value, *args, **kwargs):
|
|
|
+ self.related_url = reverse(self.related_url)
|
|
|
+ output = [super(RelatedFieldWidgetCanAdd, self).render(name, value, *args, **kwargs)]
|
|
|
+ output.append(u'<a href="%s" class="add-another" id="add_id_%s" onclick="return showAddAnotherPopup(this);"> ' % (self.related_url, name))
|
|
|
+ output.append(u'<img src="%sadmin/img/icon_addlink.gif" width="10" height="10" alt="%s"/></a>' % (settings.STATIC_URL, ('Add Another')))
|
|
|
+ return mark_safe(u''.join(output))
|
|
|
|
|
|
class DateForm (forms.Form):
|
|
|
date = forms.DateField(widget = AdminDateWidget, label = u'Дата', initial = date.today)
|
|
|
@@ -15,5 +42,24 @@ class DiapDateForm (forms.Form):
|
|
|
class OrderForm(ModelForm):
|
|
|
class Meta:
|
|
|
model = Order
|
|
|
- fields = ['product', 'price', 'paid', 'address', 'deadline', 'delivery', 'lifting']
|
|
|
+ fields = ['product', 'price', 'paid', 'address', 'designer', 'deadline', 'delivery', 'lifting']
|
|
|
+
|
|
|
+ product = forms.ModelChoiceField(
|
|
|
+ required=False,
|
|
|
+ queryset = Product.objects.all(),
|
|
|
+ widget=RelatedFieldWidgetCanAdd(Product)
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+class ProdTableForm(ModelForm):
|
|
|
+ class Meta:
|
|
|
+ model = OrderCosts
|
|
|
+ fields = ['cost_item', 'value']
|
|
|
+
|
|
|
+ cost_item = forms.ModelChoiceField(
|
|
|
+ required=False,
|
|
|
+ queryset = CostItem.objects.all(),
|
|
|
+ widget=RelatedFieldWidgetCanAdd(CostItem)
|
|
|
+ )
|
|
|
+
|
|
|
|