Ver Fonte

Таблица заказов

Доделал таблицу заказов
Denis V. Dedkov há 10 anos atrás
pai
commit
8cea3edb6b
4 ficheiros alterados com 45 adições e 65 exclusões
  1. 9 3
      asuzr/tables.py
  2. 11 3
      asuzr/views.py
  3. 15 0
      templates/asuzr/totals_table.html
  4. 10 59
      templates/asuzr/weekend_table.html

+ 9 - 3
asuzr/tables.py

@@ -119,10 +119,9 @@ class VisitTable(tables.Table):
   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:
+   indexes = {'calls': 2, 'visits': 3, 'orders': 4, 'cost': 5}
+   for s in summaries:
       idx = indexes[s]
       self.summary[idx] = summaries[s]
  
@@ -141,6 +140,12 @@ class VisitTable(tables.Table):
 
 class DayOrdersTable(OrdersTable):
   designer = tables.Column(verbose_name = 'Дизайнер')
+
+  summary = ['Всего', 0, '', '', '',]
+
+  def set_summary(self, price):
+    self.summary[1] = price
+
   class Meta:
     attrs = {'class': 'paleblue'}
     exclude = ('date',
@@ -159,3 +164,4 @@ class DayOrdersTable(OrdersTable):
                 'designer', 
                 'deadline',
                )
+    template = 'asuzr/totals_table.html'

+ 11 - 3
asuzr/views.py

@@ -82,17 +82,25 @@ def get_attendance_table(year, month, prefix):
  
   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
 def visit_view(request):
   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-')
   RequestConfig(request, paginate={'per_page': 32}).configure(attendance_table)
 
-  orders_table = DayOrdersTable(Order.objects.filter(date = curr_date))
-  orders_table.verbose_name = 'Заказы на %s г' % curr_date.strftime('%d %B %Y')
+  orders_table = get_day_orders_table(curr_date, 'orders-')
   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', {
                                                'table1': attendance_table, 
                                                'table2': orders_table,

+ 15 - 0
templates/asuzr/totals_table.html

@@ -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 %}
+

+ 10 - 59
templates/asuzr/weekend_table.html

@@ -1,63 +1,14 @@
-{% spaceless %}
+{% extends "asuzr/totals_table.html" %}
 {% load django_tables2 %}
 {% load i18n %}
-{% if table.page %}
-<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="
-                    {% if row.date.is_weekend %}weekend{% else %}
-                    {{ forloop.counter|divisibleby:2|yesno:"even,odd" }}{% endif %}
-                    "> {# avoid cycle for Django 1.2-1.6 compatibility #}
-            {% for column, cell in row.items %}
-                <td {{ column.attrs.td.as_html }}>{% if column.localize == None %}{{ cell }}{% else %}{% if column.localize %}{{ cell|localize }}{% else %}{{ cell|unlocalize }}{% endif %}{% endif %}</td>
-            {% endfor %}
-        </tr>
-        {% 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>
+{% block table.tbody.row %}
+     <tr class="
+               {% if row.date.is_weekend %}weekend{% else %}
+               {{ forloop.counter|divisibleby:2|yesno:"even,odd" }}{% endif %}
+               "> {# avoid cycle for Django 1.2-1.6 compatibility #}
+       {% for column, cell in row.items %}
+           <td {{ column.attrs.td.as_html }}>{% if column.localize == None %}{{ cell }}{% else %}{% if column.localize %}{{ cell|localize }}{% else %}{{ cell|unlocalize }}{% endif %}{% endif %}</td>
        {% endfor %}
-       </tr>
-    {% endif %}
-    </tfoot>
-    {% endblock table.tfoot %}
-    {% endnospaceless %}
-</table>
-{% endblock table %}
-{% if table.page %}
-</div>
-{% endif %}
+    </tr>
+{% endblock table.tbody.row %}
 
-{% endspaceless %}