Итоги для таблицы посещений

Добавлен вывод итогов для таблицы посещений
This commit is contained in:
2015-06-14 21:49:27 +05:00
parent c8477a0ba4
commit 6cc7e88844
3 changed files with 31 additions and 32 deletions

View File

@@ -121,7 +121,15 @@ class VisitTable(tables.Table):
orders = tables.Column(verbose_name = 'Заказы', accessor = 'order.product__count')
cost = tables.Column(verbose_name = 'Стоимость', accessor = 'order.price__sum')
designer = tables.Column(verbose_name = 'Дизайнеры')
summary = ['Всего','',0,0,0,0,'']
def set_summaries(self, summaries):
indexes = {'calls': 2, 'visits': 3, 'orders': 4, 'cost': 5}
for s in summaries:
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>' % (

View File

@@ -52,13 +52,17 @@ def visit_view(request):
edate = date(y,m,day_in_month)
attend_list = Attendance.objects.filter(date__range = (sdate,edate))
attend_sum = attend_list.aggregate(Sum('calls'), Sum('visits'))
for attend in attend_list:
month_days[attend.date.day]['attend'] = attend
order_list = Order.objects.filter(date__range = (sdate,edate))
order_sum = order_list.aggregate(Count('product'), Sum('price'))
order_list = order_list.values('date')
order_list = order_list.annotate(Count('product'), Sum('price'))
print order_sum
for order in order_list:
month_days[order['date'].day]['order'] = order
@@ -71,10 +75,14 @@ def visit_view(request):
else:
month_days[day]['designer'] = designer
print month_days
table = VisitTable(month_days.values())
RequestConfig(request, paginate={'per_page': 32}).configure(table)
table.set_summaries({
'calls': attend_sum['calls__sum'],
'visits': attend_sum['visits__sum'],
'orders': order_sum['product__count'],
'cost': order_sum['price__sum'],
})
title = 'Таблица посещаемости на %s г.' % curr_date.strftime('%B %Y')
return render(request, 'asuzr/table.html', {'table': table, 'title': title})