Итоги для таблицы посещений
Добавлен вывод итогов для таблицы посещений
This commit is contained in:
@@ -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>' % (
|
||||
|
||||
@@ -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})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user