Преглед изворни кода

Отчет по дизайнерам переведен на table2

Anastasia пре 10 година
родитељ
комит
ab930430bf
3 измењених фајлова са 20 додато и 9 уклоњено
  1. 1 1
      asuzr/models.py
  2. 14 0
      asuzr/tables.py
  3. 5 8
      asuzr/views.py

+ 1 - 1
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):

+ 14 - 0
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'}

+ 5 - 8
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):