Merge branch 'master' of ssh://192.168.100.6/repo/record
Conflicts: asuzr/forms.py
This commit is contained in:
@@ -10,6 +10,7 @@ from asuzr.models import Attendance
|
||||
from asuzr.models import Schedule
|
||||
from asuzr.models import OrderCosts
|
||||
from asuzr.models import CostItem
|
||||
from asuzr.forms import *
|
||||
|
||||
|
||||
# Register your models here.
|
||||
|
||||
@@ -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(format='%d.%m.%Y'),
|
||||
@@ -19,5 +46,22 @@ 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)
|
||||
)
|
||||
|
||||
@@ -172,7 +172,7 @@ class OrderCosts(models.Model):
|
||||
formula = models.CharField(max_length=150, null=True, blank = True)
|
||||
|
||||
def __unicode__(self):
|
||||
return ', '.join((self.order.product.name, self.cost_item.name))
|
||||
return ', '.join((str(self.order.id), self.order.product.name, self.cost_item.name))
|
||||
|
||||
|
||||
############################################################################################
|
||||
@@ -205,7 +205,7 @@ def construct_log_entry(**kwargs):
|
||||
log_entry['object_id'] = instance.id
|
||||
return log_entry
|
||||
|
||||
@receiver(post_save)
|
||||
#@receiver(post_save)
|
||||
def after_save(*args, **kwargs):
|
||||
instance = kwargs['instance']
|
||||
if isinstance(instance, LogEntry): return
|
||||
@@ -216,7 +216,7 @@ def after_save(*args, **kwargs):
|
||||
entry = LogEntry(**log_entry)
|
||||
entry.save()
|
||||
|
||||
@receiver(post_delete)
|
||||
#@receiver(post_delete)
|
||||
def after_delete(*args, **kwargs):
|
||||
instance = kwargs['instance']
|
||||
if isinstance(instance, Session): return
|
||||
|
||||
@@ -229,7 +229,7 @@ class ProductionTable(tables.Table):
|
||||
|
||||
class Meta:
|
||||
attrs = {'class': 'paleblue'}
|
||||
template = 'asuzr/totals_table.html'
|
||||
template = 'asuzr/table_with_form.html'
|
||||
|
||||
class LogTable(tables.Table):
|
||||
def render_action_flag(self, value):
|
||||
|
||||
@@ -120,7 +120,7 @@ def visit_view(request):
|
||||
orders_table = get_day_orders_table(curr_date, 'orders-')
|
||||
RequestConfig(request).configure(orders_table)
|
||||
|
||||
order_form = OrderForm()
|
||||
order_form = OrderForm(initial = {'designer': request.user})
|
||||
|
||||
title = u'Таблица посещаемости на %s' % dateformat.format(curr_date, 'F Y')
|
||||
return render(request, 'asuzr/table2.html', {
|
||||
@@ -129,7 +129,8 @@ def visit_view(request):
|
||||
'additional_info': add_info,
|
||||
'title': title,
|
||||
'dateform': form,
|
||||
'model_form': order_form
|
||||
'add_form': order_form,
|
||||
'form_action': 'add-order'
|
||||
})
|
||||
|
||||
@login_required
|
||||
@@ -221,7 +222,7 @@ def sketches(request, order_id):
|
||||
'title': u'Эскизы заказа %s' % curr_order})
|
||||
|
||||
def add_order(request):
|
||||
new_order = Order(date=date.today(), designer = request.user)
|
||||
new_order = Order(date=date.today())
|
||||
form = OrderForm(request.POST, instance = new_order)
|
||||
form.save()
|
||||
return redirect(visit_view)
|
||||
@@ -260,16 +261,28 @@ def desreport(request):
|
||||
@log_view_call
|
||||
@login_required
|
||||
def production_table(request, order_id):
|
||||
order_list = Order.objects.filter(is_done=False).order_by('-id')
|
||||
sel_order = Order.objects.filter(id=order_id)
|
||||
cost_items = sel_order.values('cost_items')
|
||||
t=loader.get_template('asuzr/order_costs.html')
|
||||
c=RequestContext(request,{
|
||||
'order_list' : order_list,
|
||||
'sel_order' : sel_order,
|
||||
'cost_items' : cost_items,
|
||||
})
|
||||
return HttpResponse(t.render(c))
|
||||
order_costs = OrderCosts.objects.filter(order=order_id)
|
||||
table = ProductionTable(order_costs)
|
||||
curr_order = Order.objects.get(pk = order_id)
|
||||
title = u'Производственная таблица'
|
||||
table.verbose_name = u'Заказ: %s' % (', '.join((curr_order.product.name, curr_order.address)))
|
||||
table.verbose_name2 = u'Стоимость: %s' % str(curr_order.price)
|
||||
costs_sum = order_costs.aggregate(Sum('value'))
|
||||
table.set_summary(costs_sum['value__sum'] or 0)
|
||||
table.set_balance(curr_order.price - (costs_sum['value__sum'] or 0))
|
||||
|
||||
form = ProdTableForm()
|
||||
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'asuzr/table.html',
|
||||
{'table': table, 'title': title, 'add_form': form, 'form_action': 'add-cost-items', 'params': order_id})
|
||||
|
||||
def production_table_add_item(request, order_id):
|
||||
curr_order = Order.objects.get(pk = order_id)
|
||||
new_item = OrderCosts(order=curr_order)
|
||||
form = ProdTableForm(request.POST, instance = new_item)
|
||||
form.save()
|
||||
return redirect(production_table, order_id = order_id)
|
||||
|
||||
@log_view_call
|
||||
@login_required
|
||||
|
||||
Reference in New Issue
Block a user