Устранены конфликты
This commit is contained in:
@@ -71,7 +71,7 @@ class Order(models.Model):
|
||||
contact = models.CharField(max_length=150, null=True, blank = True) #контактное лицо
|
||||
phone_num = models.CharField(max_length=150,null=True, blank = True) #контактный телефон
|
||||
cancelled = models.BooleanField(default=False) #отменен
|
||||
cost_items = models.ManyToManyField(CostItem, through='OrderCosts') #статьи затрат
|
||||
cost_items = models.ManyToManyField(CostItem, through='OrderCosts', related_name='+', null=True, blank=True) #статьи затрат
|
||||
|
||||
def __unicode__(self):
|
||||
return ', '.join((self.date.strftime('%d %b %Y'), self.product.name, self.address))
|
||||
|
||||
73
asuzr/tables.py
Normal file
73
asuzr/tables.py
Normal file
@@ -0,0 +1,73 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from django.utils.safestring import mark_safe
|
||||
import django_tables2 as tables
|
||||
from models import *
|
||||
|
||||
def editable(field_name):
|
||||
return '{{% load inplace_edit %}}\n\n{{% inplace_edit "record.{field}" auto_height = 1 %}}'.format(field = field_name)
|
||||
|
||||
|
||||
class EditableColumn(tables.TemplateColumn):
|
||||
def __init__(self, field_name, *args, **kwargs):
|
||||
super(tables.TemplateColumn, self).__init__(*args, **kwargs)
|
||||
template = '{{% load inplace_edit %}}\n\n{{% inplace_edit "record.{field}" auto_height = 1 %}}'.format(field = field_name)
|
||||
self.template_code = template
|
||||
|
||||
class TestTable(tables.Table):
|
||||
name = EditableColumn('name', "Наименование")
|
||||
prod_period = EditableColumn('prod_period', "Время производства")
|
||||
|
||||
class Meta:
|
||||
model = Product
|
||||
attrs = {"class": "paleblue"}
|
||||
|
||||
class OrdersTable(tables.Table):
|
||||
date = tables.DateColumn('d/m/Y', verbose_name = 'Дата')
|
||||
deadline = tables.DateColumn('d/m/Y/', verbose_name = 'Срок сдачи')
|
||||
product = tables.Column(verbose_name = 'Наименование')
|
||||
delivery = EditableColumn('delivery', verbose_name = 'Доставка')
|
||||
lifting = EditableColumn('lifting', verbose_name = 'Подъем')
|
||||
address = tables.Column(verbose_name = 'Адрес')
|
||||
price = tables.Column(verbose_name = 'Стоимость')
|
||||
paid = EditableColumn('paid', verbose_name = 'Оплачено')
|
||||
ostatok = tables.Column(verbose_name = 'Остаток')
|
||||
approved = EditableColumn('approved', verbose_name = 'Согласовано')
|
||||
sketch = tables.LinkColumn('sketches', verbose_name = 'Эскиз')
|
||||
executor = EditableColumn('executor', verbose_name = 'Исполнитель')
|
||||
is_done = EditableColumn('is_done', verbose_name = 'Сдан')
|
||||
id = tables.Column(visible = False)
|
||||
designer = tables.Column(visible = False)
|
||||
calls = tables.Column(visible = False)
|
||||
contact = tables.Column(visible = False)
|
||||
phone_num = tables.Column(visible = False)
|
||||
cancelled = tables.Column(visible = False)
|
||||
|
||||
def render_price(self, value):
|
||||
return '%0.1f' % value
|
||||
|
||||
def render_ostatok(self, value):
|
||||
return '%0.1f' % value
|
||||
|
||||
class Meta:
|
||||
model = Order
|
||||
attrs = {'class': 'paleblue'}
|
||||
sequence = ('date',
|
||||
'deadline',
|
||||
'product',
|
||||
'delivery',
|
||||
'lifting',
|
||||
'address',
|
||||
'price',
|
||||
'paid',
|
||||
'ostatok',
|
||||
'approved',
|
||||
'sketch',
|
||||
'executor',
|
||||
'is_done',)
|
||||
|
||||
class ArchiveOrdersTable(OrdersTable):
|
||||
calls = EditableColumn('calls', verbose_name = 'Обзвон')
|
||||
|
||||
class Meta:
|
||||
attrs = {'class': 'paleblue'}
|
||||
@@ -1,3 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from django.shortcuts import render
|
||||
from django.http import HttpResponse
|
||||
from django.template import RequestContext, Context, loader
|
||||
@@ -11,6 +13,8 @@ import calendar
|
||||
from django.db.models import Count, Sum
|
||||
from asuzr.common import custom_date
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from tables import *
|
||||
from django_tables2 import RequestConfig
|
||||
|
||||
@login_required
|
||||
def prod_list(request):
|
||||
@@ -102,23 +106,13 @@ def main(request, day, month, year):
|
||||
return HttpResponse(t.render(c))
|
||||
|
||||
@login_required
|
||||
def orders (request, archive):
|
||||
if archive=='0':
|
||||
is_done_value=False
|
||||
else:
|
||||
is_done_value=True
|
||||
order_id=request.GET.get('order_id',0)
|
||||
order_list = Order.objects.filter(is_done=is_done_value).order_by('-id')
|
||||
sel_order = Order.objects.filter(id=order_id)
|
||||
cost_items = sel_order.values('cost_items')
|
||||
t=loader.get_template('asuzr/orders.html')
|
||||
c=RequestContext(request, {
|
||||
'order_list': order_list,
|
||||
'archive': is_done_value,
|
||||
'sel_order' : sel_order,
|
||||
'cost_items' : cost_items,
|
||||
})
|
||||
return HttpResponse(t.render(c))
|
||||
def orders(request, archive):
|
||||
is_archive = (archive == '1')
|
||||
Table = ArchiveOrdersTable if is_archive else OrdersTable
|
||||
table = Table(Order.objects.filter(is_done = is_archive))
|
||||
title = 'Архивная таблица заказов' if is_archive else 'Таблица выхода заказов'
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'asuzr/table.html', {'table': table, 'title': title})
|
||||
|
||||
@login_required
|
||||
def desreport(request):
|
||||
@@ -146,8 +140,4 @@ def production_table(request, order_id):
|
||||
'sel_order' : sel_order,
|
||||
'cost_items' : cost_items,
|
||||
})
|
||||
return HttpResponse(t.render(c))
|
||||
|
||||
|
||||
|
||||
|
||||
return HttpResponse(t.render(c))
|
||||
Reference in New Issue
Block a user