Merge branch 'master' of ssh://192.168.100.6/repo/record
Conflicts: asuzr/common.py asuzr/views.py
This commit is contained in:
@@ -16,15 +16,10 @@ class custom_date(date):
|
||||
def weekday_color(self):
|
||||
return self.day_colors[self.weekday()]
|
||||
|
||||
@property
|
||||
def date_dd_mm_yy(self):
|
||||
return self.strftime('%d/%m/%Y')
|
||||
|
||||
@property
|
||||
def is_weekend(self):
|
||||
return self.weekday() >= 5
|
||||
|
||||
|
||||
def log_view_call(fn):
|
||||
'''
|
||||
Wrapper for views log
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
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
|
||||
|
||||
class DateForm (forms.Form):
|
||||
date = forms.DateField(widget = AdminDateWidget, label = u'Дата', initial = date.today)
|
||||
@@ -9,3 +11,9 @@ class DateForm (forms.Form):
|
||||
class DiapDateForm (forms.Form):
|
||||
sdate = forms.DateField(widget = AdminDateWidget, label = u'С', initial = date.today)
|
||||
edate = forms.DateField(widget = AdminDateWidget, label = u'по', initial = date.today)
|
||||
|
||||
class OrderForm(ModelForm):
|
||||
class Meta:
|
||||
model = Order
|
||||
fields = ['product', 'price', 'paid', 'address', 'deadline', 'delivery', 'lifting']
|
||||
|
||||
@@ -112,6 +112,13 @@ class Order(models.Model):
|
||||
|
||||
return need_color
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(Order, self).save(*args, **kwargs)
|
||||
cost_items = CostItem.objects.filter(default_item = True)
|
||||
for ci in cost_items:
|
||||
new_order_cost = OrderCosts(order = self, cost_item = ci, value = 0, formula = '')
|
||||
new_order_cost.save()
|
||||
|
||||
#Эскизы
|
||||
class Sketch(models.Model):
|
||||
def get_sketch_path(self, file_name):
|
||||
|
||||
BIN
asuzr/static/del.png
Normal file
BIN
asuzr/static/del.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
asuzr/static/rubbish.png
Normal file
BIN
asuzr/static/rubbish.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 505 B |
@@ -7,6 +7,17 @@ from django.contrib.admin.models import LogEntry
|
||||
import django_tables2 as tables
|
||||
from models import *
|
||||
|
||||
class StaffLinkColumn(tables.TemplateColumn):
|
||||
def __init__(self, view, *args, **kwargs):
|
||||
template = '''
|
||||
{{% if request.user.is_staff %}}
|
||||
<a href={{% url '{view}' record.id %}}>{{{{ record.product }}}}</a>
|
||||
{{% else %}}
|
||||
{{{{ record.product }}}}
|
||||
{{% endif %}}
|
||||
'''.format(view = view)
|
||||
super(StaffLinkColumn, self).__init__(template, *args, **kwargs)
|
||||
|
||||
class EditableColumn(tables.TemplateColumn):
|
||||
def __init__(self, field_name, object_name = '', *args, **kwargs):
|
||||
template = '''
|
||||
@@ -56,9 +67,10 @@ class ThumbnailColumn(tables.TemplateColumn):
|
||||
super(ThumbnailColumn, self).__init__(template, *args, **kwargs)
|
||||
|
||||
class OrdersTable(tables.Table):
|
||||
date = tables.DateColumn('d/m/Y', verbose_name = 'Дата')
|
||||
deadline = tables.DateColumn('d/m/Y', verbose_name = 'Срок сдачи')
|
||||
product = tables.LinkColumn('asuzr.views.production_table', verbose_name = 'Наименование', args=[tables.utils.A('pk')])
|
||||
date = tables.DateColumn('d.m.Y', verbose_name = 'Дата')
|
||||
deadline = tables.DateColumn('d.m.Y', verbose_name = 'Срок сдачи')
|
||||
#product = tables.LinkColumn('asuzr.views.production_table', verbose_name = 'Наименование', args=[tables.utils.A('pk')])
|
||||
product = StaffLinkColumn(view = 'asuzr.views.production_table', verbose_name = 'Наименование')
|
||||
delivery = EditableColumn('delivery', verbose_name = 'Доставка')
|
||||
lifting = EditableColumn('lifting', verbose_name = 'Подъем')
|
||||
address = tables.Column(verbose_name = 'Адрес')
|
||||
@@ -147,6 +159,7 @@ class VisitTable(tables.Table):
|
||||
idx = indexes[s]
|
||||
self.summary[idx] = summaries[s]
|
||||
|
||||
|
||||
def render_orders(self, value, record, column):
|
||||
value = 0 if value == None else value
|
||||
return mark_safe('<a href="%s?date=%s">%s</a>' % (
|
||||
@@ -189,7 +202,7 @@ class DayOrdersTable(OrdersTable):
|
||||
'designer',
|
||||
'deadline',
|
||||
)
|
||||
template = 'asuzr/totals_table.html'
|
||||
template = 'asuzr/table_with_form.html'
|
||||
|
||||
class ProdPlanTable(tables.Table):
|
||||
date = tables.Column(verbose_name = 'Дата')
|
||||
@@ -203,14 +216,11 @@ class ProdPlanTable(tables.Table):
|
||||
|
||||
class ProductionTable(tables.Table):
|
||||
cost_item = tables.Column(verbose_name = 'Комплектующие')
|
||||
value = tables.Column(verbose_name = 'Стоимость')
|
||||
value = EditableColumn('value', verbose_name = 'Стоимость')
|
||||
|
||||
summary = ['Итого затрат', 0]
|
||||
balance = ['Прибыль', 0]
|
||||
|
||||
def render_value(self, value):
|
||||
return '%0.2f' % value
|
||||
|
||||
def set_summary(self, value):
|
||||
self.summary[1] = value
|
||||
|
||||
|
||||
@@ -119,6 +119,8 @@ def visit_view(request):
|
||||
|
||||
orders_table = get_day_orders_table(curr_date, 'orders-')
|
||||
RequestConfig(request).configure(orders_table)
|
||||
|
||||
order_form = OrderForm()
|
||||
|
||||
title = u'Таблица посещаемости на %s' % dateformat.format(curr_date, 'F Y')
|
||||
return render(request, 'asuzr/table2.html', {
|
||||
@@ -126,7 +128,9 @@ def visit_view(request):
|
||||
'table2': orders_table,
|
||||
'additional_info': add_info,
|
||||
'title': title,
|
||||
'form': form})
|
||||
'dateform': form,
|
||||
'model_form': order_form
|
||||
})
|
||||
|
||||
@login_required
|
||||
def main(request, day, month, year):
|
||||
@@ -217,6 +221,12 @@ def sketches(request, order_id):
|
||||
'table': table,
|
||||
'title': u'Эскизы заказа %s' % curr_order})
|
||||
|
||||
def add_order(request):
|
||||
new_order = Order(date=date.today(), designer = request.user)
|
||||
form = OrderForm(request.POST, instance = new_order)
|
||||
form.save()
|
||||
return redirect(visit_view)
|
||||
|
||||
def delete_sketch(request):
|
||||
pk = request.GET.get('pk', -1)
|
||||
sketch = get_object_or_404(Sketch, pk = pk)
|
||||
@@ -246,7 +256,7 @@ def desreport(request):
|
||||
title = u'Отчет по дизайнерам за '+' - '.join((start_date, end_date))
|
||||
form = DiapDateForm({'sdate': sdate, 'edate': edate})
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'asuzr/table.html', {'table': table, 'title': title, 'form': form})
|
||||
return render(request, 'asuzr/table.html', {'table': table, 'title': title, 'dateform': form})
|
||||
|
||||
@log_view_call
|
||||
@login_required
|
||||
@@ -282,7 +292,7 @@ def prod_plan_view(request):
|
||||
title = u'Производственный план на %s - %s' % (sdate.strftime('%d.%m.%Y'), edate.strftime('%d.%m.%Y'))
|
||||
form = DateForm({'date':curr_date})
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'asuzr/table.html', {'table': table, 'title': title, 'form': form})
|
||||
return render(request, 'asuzr/table.html', {'table': table, 'title': title, 'dateform': form})
|
||||
|
||||
@login_required
|
||||
def log_view(request):
|
||||
|
||||
Reference in New Issue
Block a user