Таблица заказов
Доделал таблицу заказов
This commit is contained in:
@@ -119,7 +119,6 @@ class VisitTable(tables.Table):
|
|||||||
designer = tables.Column(verbose_name = 'Дизайнеры')
|
designer = tables.Column(verbose_name = 'Дизайнеры')
|
||||||
|
|
||||||
summary = ['Всего','',0,0,0,0,'']
|
summary = ['Всего','',0,0,0,0,'']
|
||||||
|
|
||||||
def set_summaries(self, summaries):
|
def set_summaries(self, summaries):
|
||||||
indexes = {'calls': 2, 'visits': 3, 'orders': 4, 'cost': 5}
|
indexes = {'calls': 2, 'visits': 3, 'orders': 4, 'cost': 5}
|
||||||
for s in summaries:
|
for s in summaries:
|
||||||
@@ -141,6 +140,12 @@ class VisitTable(tables.Table):
|
|||||||
|
|
||||||
class DayOrdersTable(OrdersTable):
|
class DayOrdersTable(OrdersTable):
|
||||||
designer = tables.Column(verbose_name = 'Дизайнер')
|
designer = tables.Column(verbose_name = 'Дизайнер')
|
||||||
|
|
||||||
|
summary = ['Всего', 0, '', '', '',]
|
||||||
|
|
||||||
|
def set_summary(self, price):
|
||||||
|
self.summary[1] = price
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
attrs = {'class': 'paleblue'}
|
attrs = {'class': 'paleblue'}
|
||||||
exclude = ('date',
|
exclude = ('date',
|
||||||
@@ -159,3 +164,4 @@ class DayOrdersTable(OrdersTable):
|
|||||||
'designer',
|
'designer',
|
||||||
'deadline',
|
'deadline',
|
||||||
)
|
)
|
||||||
|
template = 'asuzr/totals_table.html'
|
||||||
|
|||||||
@@ -82,17 +82,25 @@ def get_attendance_table(year, month, prefix):
|
|||||||
|
|
||||||
return table
|
return table
|
||||||
|
|
||||||
|
def get_day_orders_table(date, prefix):
|
||||||
|
orders = Order.objects.filter(date = date)
|
||||||
|
orders_price = orders.aggregate(Sum('price'))
|
||||||
|
table = DayOrdersTable(orders, prefix = prefix)
|
||||||
|
table.verbose_name = 'Заказы на %s' % date.strftime('%d %B %Y г')
|
||||||
|
table.set_summary(orders_price['price__sum'])
|
||||||
|
|
||||||
|
return table
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def visit_view(request):
|
def visit_view(request):
|
||||||
curr_date = datetime.strptime(request.GET.get('date', date.today().strftime('%d.%m.%Y')), '%d.%m.%Y')
|
curr_date = datetime.strptime(request.GET.get('date', date.today().strftime('%d.%m.%Y')), '%d.%m.%Y')
|
||||||
attendance_table = get_attendance_table(curr_date.year, curr_date.month, 'attendance-')
|
attendance_table = get_attendance_table(curr_date.year, curr_date.month, 'attendance-')
|
||||||
RequestConfig(request, paginate={'per_page': 32}).configure(attendance_table)
|
RequestConfig(request, paginate={'per_page': 32}).configure(attendance_table)
|
||||||
|
|
||||||
orders_table = DayOrdersTable(Order.objects.filter(date = curr_date))
|
orders_table = get_day_orders_table(curr_date, 'orders-')
|
||||||
orders_table.verbose_name = 'Заказы на %s г' % curr_date.strftime('%d %B %Y')
|
|
||||||
RequestConfig(request).configure(orders_table)
|
RequestConfig(request).configure(orders_table)
|
||||||
|
|
||||||
title = 'Таблица посещаемости на %s г.' % curr_date.strftime('%B %Y')
|
title = 'Таблица посещаемости на %s' % curr_date.strftime('%B %Y г')
|
||||||
return render(request, 'asuzr/table3.html', {
|
return render(request, 'asuzr/table3.html', {
|
||||||
'table1': attendance_table,
|
'table1': attendance_table,
|
||||||
'table2': orders_table,
|
'table2': orders_table,
|
||||||
|
|||||||
15
templates/asuzr/totals_table.html
Normal file
15
templates/asuzr/totals_table.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{% extends "django_tables2/table.html" %}
|
||||||
|
{% load django_tables2 %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% block table.tfoot %}
|
||||||
|
<tfoot>
|
||||||
|
{% if table.summary %}
|
||||||
|
<tr>
|
||||||
|
{% for summary in table.summary %}
|
||||||
|
<td> {{ summary }} </td>
|
||||||
|
{% endfor %}
|
||||||
|
</tr>
|
||||||
|
{% endif %}
|
||||||
|
</tfoot>
|
||||||
|
{% endblock table.tfoot %}
|
||||||
|
|
||||||
@@ -1,29 +1,7 @@
|
|||||||
{% spaceless %}
|
{% extends "asuzr/totals_table.html" %}
|
||||||
{% load django_tables2 %}
|
{% load django_tables2 %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% if table.page %}
|
{% block table.tbody.row %}
|
||||||
<div class="table-container">
|
|
||||||
{% endif %}
|
|
||||||
{% block table %}
|
|
||||||
<table{% if table.attrs %} {{ table.attrs.as_html }}{% endif %}>
|
|
||||||
{% nospaceless %}
|
|
||||||
{% block table.thead %}
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
{% for column in table.columns %}
|
|
||||||
{% if column.orderable %}
|
|
||||||
<th {{ column.attrs.th.as_html }}><a href="{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}">{{ column.header }}</a></th>
|
|
||||||
{% else %}
|
|
||||||
<th {{ column.attrs.th.as_html }}>{{ column.header }}</th>
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
{% endblock table.thead %}
|
|
||||||
{% block table.tbody %}
|
|
||||||
<tbody>
|
|
||||||
{% for row in table.page.object_list|default:table.rows %} {# support pagination #}
|
|
||||||
{% block table.tbody.row %}
|
|
||||||
<tr class="
|
<tr class="
|
||||||
{% if row.date.is_weekend %}weekend{% else %}
|
{% if row.date.is_weekend %}weekend{% else %}
|
||||||
{{ forloop.counter|divisibleby:2|yesno:"even,odd" }}{% endif %}
|
{{ forloop.counter|divisibleby:2|yesno:"even,odd" }}{% endif %}
|
||||||
@@ -32,32 +10,5 @@
|
|||||||
<td {{ column.attrs.td.as_html }}>{% if column.localize == None %}{{ cell }}{% else %}{% if column.localize %}{{ cell|localize }}{% else %}{{ cell|unlocalize }}{% endif %}{% endif %}</td>
|
<td {{ column.attrs.td.as_html }}>{% if column.localize == None %}{{ cell }}{% else %}{% if column.localize %}{{ cell|localize }}{% else %}{{ cell|unlocalize }}{% endif %}{% endif %}</td>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
{% endblock table.tbody.row %}
|
{% endblock table.tbody.row %}
|
||||||
{% empty %}
|
|
||||||
{% if table.empty_text %}
|
|
||||||
{% block table.tbody.empty_text %}
|
|
||||||
<tr><td colspan="{{ table.columns|length }}">{{ table.empty_text }}</td></tr>
|
|
||||||
{% endblock table.tbody.empty_text %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
{% endblock table.tbody %}
|
|
||||||
{% block table.tfoot %}
|
|
||||||
<tfoot>
|
|
||||||
{% if table.summary %}
|
|
||||||
<tr>
|
|
||||||
{% for summary in table.summary %}
|
|
||||||
<td> {{ summary }} </td>
|
|
||||||
{% endfor %}
|
|
||||||
</tr>
|
|
||||||
{% endif %}
|
|
||||||
</tfoot>
|
|
||||||
{% endblock table.tfoot %}
|
|
||||||
{% endnospaceless %}
|
|
||||||
</table>
|
|
||||||
{% endblock table %}
|
|
||||||
{% if table.page %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endspaceless %}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user