From a33812f505a2599e850fe06c0f5fb1e6a91b7520 Mon Sep 17 00:00:00 2001 From: Anastasia Date: Wed, 10 Jun 2015 17:19:44 +0500 Subject: [PATCH 1/4] =?UTF-8?q?=D0=9A=D0=B0=D0=BA=D0=B8=D0=B5-=D1=82=D0=BE?= =?UTF-8?q?=20=D0=BC=D0=B0=D1=85=D0=B8=D0=BD=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D1=81=20settings.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- record/settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/record/settings.py b/record/settings.py index 6ea89f0..932441c 100644 --- a/record/settings.py +++ b/record/settings.py @@ -38,6 +38,7 @@ INSTALLED_APPS = ( 'django.contrib.messages', 'django.contrib.staticfiles', 'inplaceeditform', + 'django_tables2', 'asuzr' ) From 7072eb1a39db4775f0a4f1729334f650a8177906 Mon Sep 17 00:00:00 2001 From: Anastasia Date: Wed, 10 Jun 2015 20:20:33 +0500 Subject: [PATCH 2/4] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=20gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index bda459f..3dfbf94 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ *swp *.pyc db* -record/settings.py +.directory sketches/* From 2d72b88aa30402f2e786ef38493f25a4c505cbc3 Mon Sep 17 00:00:00 2001 From: Anastasia Date: Wed, 10 Jun 2015 20:25:45 +0500 Subject: [PATCH 3/4] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=20/dir?= =?UTF-8?q?ectory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .directory | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .directory diff --git a/.directory b/.directory deleted file mode 100644 index a38b7e4..0000000 --- a/.directory +++ /dev/null @@ -1,3 +0,0 @@ -[Dolphin] -Timestamp=2015,4,13,16,48,17 -Version=3 From ab930430bff8800cddd5d1fca14d5acb0538cd2b Mon Sep 17 00:00:00 2001 From: Anastasia Date: Wed, 10 Jun 2015 22:21:36 +0500 Subject: [PATCH 4/4] =?UTF-8?q?=D0=9E=D1=82=D1=87=D0=B5=D1=82=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=B4=D0=B8=D0=B7=D0=B0=D0=B9=D0=BD=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D0=BC=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD?= =?UTF-8?q?=20=D0=BD=D0=B0=20table2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asuzr/models.py | 2 +- asuzr/tables.py | 14 ++++++++++++++ asuzr/views.py | 13 +++++-------- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/asuzr/models.py b/asuzr/models.py index f70c7bb..51ab9ac 100644 --- a/asuzr/models.py +++ b/asuzr/models.py @@ -86,7 +86,7 @@ class Order(models.Model): @property def approved_date(self): - return self.approved.strftime("%d/%m/%Y") + return self.approved.strftime("%d/%m/%Y %H:%M") @property def ostatok(self): diff --git a/asuzr/tables.py b/asuzr/tables.py index 68d64ef..b2b493a 100644 --- a/asuzr/tables.py +++ b/asuzr/tables.py @@ -71,3 +71,17 @@ class ArchiveOrdersTable(OrdersTable): class Meta: attrs = {'class': 'paleblue'} + +class DesignerTable(tables.Table): + full_name = tables.Column(empty_values=(), verbose_name = 'Дизайнер') + designer__count = tables.Column(verbose_name = 'Всего заказов') + price__sum = tables.Column(verbose_name = 'Общая сумма') + + def render_full_name(self, record): + return " ".join((record['designer__first_name'], record['designer__last_name'])) + + def render_sum_price(self, value): + return '%0.1f' % value + + class Meta: + attrs = {'class': 'paleblue'} diff --git a/asuzr/views.py b/asuzr/views.py index d222342..e204f10 100644 --- a/asuzr/views.py +++ b/asuzr/views.py @@ -120,14 +120,11 @@ def desreport(request): sdate = datetime.strptime(start_date, '%d.%m.%y') end_date = request.GET.get('edate', date.today().strftime('%d.%m.%y')) edate = datetime.strptime(end_date, '%d.%m.%y') - des_list = Order.objects.filter(cancelled=False, date__range=(sdate,edate)).values('designer__first_name','designer__last_name').annotate(Sum('price'),Count('designer')) - t=loader.get_template('asuzr/desreport.html') - c=RequestContext(request,{ - 'des_list' : des_list, - 'start_date' : start_date, - 'end_date' : end_date, - }) - return HttpResponse(t.render(c)) + Table = DesignerTable + table = Table(Order.objects.filter(cancelled=False, date__range=(sdate,edate)).values('designer__first_name','designer__last_name').annotate(Sum('price'),Count('designer'))) + title = 'Отчет по дизайнерам за '+' - '.join((start_date, end_date)) + RequestConfig(request).configure(table) + return render(request, 'asuzr/table.html', {'table': table, 'title': title}) @login_required def production_table(request, order_id):