From 7712e1068208e9de6b0fc54b7e03fbdc7657e21f Mon Sep 17 00:00:00 2001 From: "Denis V. Dedkov" Date: Sat, 6 Jun 2015 15:50:19 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=20=D1=82=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D1=86=D1=8B,=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=B0=D0=BB=20=D0=BD=D0=B0=20=D0=BD=D0=B5=D0=B3=D0=BE=20?= =?UTF-8?q?=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D1=83=20=D0=B2=D1=8B=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0=20=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=C2=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asuzr/models.py | 2 +- asuzr/tables.py | 55 ++++++++++++++++++- asuzr/views.py | 22 +++++--- record/urls.py | 5 ++ templates/asuzr/base.html | 2 +- .../asuzr/{tabletest.html => table.html} | 0 6 files changed, 73 insertions(+), 13 deletions(-) rename templates/asuzr/{tabletest.html => table.html} (100%) diff --git a/asuzr/models.py b/asuzr/models.py index 1002069..037c6f5 100644 --- a/asuzr/models.py +++ b/asuzr/models.py @@ -68,7 +68,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)) diff --git a/asuzr/tables.py b/asuzr/tables.py index ce153d5..e100799 100644 --- a/asuzr/tables.py +++ b/asuzr/tables.py @@ -7,10 +7,61 @@ 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 = tables.TemplateColumn(editable('name'),verbose_name = "Наименование") - prod_period = tables.TemplateColumn(editable('prod_period'),verbose_name = "Время производства") + 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',) diff --git a/asuzr/views.py b/asuzr/views.py index 5e3415c..3700aa5 100644 --- a/asuzr/views.py +++ b/asuzr/views.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + from django.shortcuts import render from django.http import HttpResponse from django.template import RequestContext, Context, loader @@ -101,16 +103,21 @@ def main(request, day, month, year): }) return HttpResponse(t.render(c)) -def orders (request, archive): +def order_list(request): + table = OrdersTable(Order.objects.filter(is_done=False)) + RequestConfig(request).configure(table) + return render(request, 'asuzr/table.html', {'table': table, 'title': 'Таблица выхода заказов'}) + +def orders(request, archive): if archive=='0': - is_done_value=False + return order_list(request) else: is_done_value=True - order_list = Order.objects.filter(is_done=is_done_value).order_by('-id') + o_list = Order.objects.filter(is_done=is_done_value).order_by('-id') t=loader.get_template('asuzr/orders.html') c=RequestContext(request, { - 'order_list': order_list, + 'order_list': o_list, 'archive': is_done_value, }) return HttpResponse(t.render(c)) @@ -130,9 +137,6 @@ def desreport(request): return HttpResponse(t.render(c)) def table_test(request): - table = TestTable(Product.objects.all()) + table = OrdersTable(Order.objects.filter(is_done=False)) RequestConfig(request).configure(table) - return render(request, 'asuzr/tabletest.html', {'table': table, 'action': Product.objects.all()[0]}) - - - + return render(request, 'asuzr/tabletest.html', {'table': table}) diff --git a/record/urls.py b/record/urls.py index a5e27b8..9af9b3c 100644 --- a/record/urls.py +++ b/record/urls.py @@ -3,6 +3,10 @@ from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() +js_info_dict = { + 'packages': ('django.conf',), +} + urlpatterns = patterns('', # Examples: # url(r'^$', 'record.views.home', name='home'), @@ -15,4 +19,5 @@ urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r'^table/', 'asuzr.views.table_test'), url(r'^inplaceeditform/', include('inplaceeditform.urls')), + url(r'^jsi18n$', 'django.views.i18n.javascript_catalog', js_info_dict), ) diff --git a/templates/asuzr/base.html b/templates/asuzr/base.html index 9c62365..b30152b 100644 --- a/templates/asuzr/base.html +++ b/templates/asuzr/base.html @@ -15,7 +15,7 @@
  • Отчет по дизайнерам
  • {% endblock %} -

    {% block title %}Заголовок страницы{% endblock %}

    +

    {% block title %}{{ title }}{% endblock %}

    {% block page %} Тело страницы diff --git a/templates/asuzr/tabletest.html b/templates/asuzr/table.html similarity index 100% rename from templates/asuzr/tabletest.html rename to templates/asuzr/table.html