Quellcode durchsuchen

Добавлены формы для выбора дат на страницы Таблица посещаемости, Производственный план, Отчет по дизайнерам. Исправлена ошибка в формировании списка дат в prod_plan_view

Anastasia vor 10 Jahren
Ursprung
Commit
ca1666442b
4 geänderte Dateien mit 24 neuen und 12 gelöschten Zeilen
  1. 1 1
      asuzr/common.py
  2. 7 1
      asuzr/forms.py
  3. 14 9
      asuzr/views.py
  4. 2 1
      templates/asuzr/base.html

+ 1 - 1
asuzr/common.py

@@ -20,4 +20,4 @@ class custom_date(date):
 
  @property
  def is_weekend(self):
-    return self.weekday() >= 5
+    return self.weekday() >= 5

+ 7 - 1
asuzr/forms.py

@@ -1,5 +1,11 @@
+# -*- coding: utf-8 -*-
 from django import forms
 from datetime import date
+from django.contrib.admin.widgets import AdminDateWidget
 
 class DateForm (forms.Form):
-  date = forms.DateField(label = 'Date')
+  date = forms.DateField(widget = AdminDateWidget, label = u'Дата', initial = date.today)
+  
+class DiapDateForm (forms.Form):
+  sdate = forms.DateField(widget = AdminDateWidget, label = u'С', initial = date.today)
+  edate = forms.DateField(widget = AdminDateWidget, label = u'по', initial = date.today)

+ 14 - 9
asuzr/views.py

@@ -103,7 +103,7 @@ def get_day_orders_table(date, prefix):
 @login_required
 def visit_view(request):
   curr_date = datetime.strptime(request.GET.get('date', date.today().strftime('%d.%m.%Y')), '%d.%m.%Y')
-  form = DateForm(request.GET, initial = {'date': curr_date})
+  form = DateForm({'date':curr_date})
   attendance_table, add_info = get_attendance_table(curr_date.year, curr_date.month, 'attendance-')
   RequestConfig(request, paginate={'per_page': 32}).configure(attendance_table)
 
@@ -225,15 +225,16 @@ def orders(request, archive):
 
 @login_required 
 def desreport(request):
-  start_date = request.GET.get('sdate', date.today().strftime('%d.%m.%y'))
-  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')
+  start_date = request.GET.get('sdate', date.today().strftime('%d.%m.%Y'))
+  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')
   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 = u'Отчет по дизайнерам за '+' - '.join((start_date, end_date))
+  form = DiapDateForm({'sdate': sdate, 'edate': edate})
   RequestConfig(request).configure(table)
-  return render(request, 'asuzr/table.html', {'table': table, 'title': title})
+  return render(request, 'asuzr/table.html', {'table': table, 'title': title, 'form': form})
 
 @login_required
 def production_table(request, order_id):
@@ -251,12 +252,15 @@ def production_table(request, order_id):
 @login_required
 def prod_plan_view(request):
   curr_date = datetime.strptime(request.GET.get('date', date.today().strftime('%d.%m.%Y')), '%d.%m.%Y')
-  y,m = curr_date.year, curr_date.month
+  y,m,d = curr_date.year, curr_date.month, curr_date.day
   wd = curr_date.weekday()
   sdate = curr_date - timedelta(days = wd)
   edate = curr_date + timedelta(days = 6-wd)
   
-  week_days = {i: {'date': custom_date(y,m,sdate.day+i)} for i in range(0,7)}
+  days =  [curr_date + timedelta(days=i) for i in range(-curr_date.weekday(), 7-curr_date.weekday())]
+  print days
+  
+  week_days = {i: {'date': custom_date(i.year,i.month,i.day)} for i in days}
   
   prodplan_list = ProdPlan.objects.filter(start_date__range = (sdate,edate))
   
@@ -265,5 +269,6 @@ def prod_plan_view(request):
   
   table = ProdPlanTable(week_days.values())
   title = u'Производственный план на %s - %s' % (sdate.strftime('%d.%m.%Y'), edate.strftime('%d.%m.%Y'))
+  form = DateForm({'date':curr_date})
   RequestConfig(request).configure(table)
-  return render(request, 'asuzr/table.html', {'table': table, 'title': title})
+  return render(request, 'asuzr/table.html', {'table': table, 'title': title, 'form': form})

+ 2 - 1
templates/asuzr/base.html

@@ -60,12 +60,13 @@
 
 {% block controls %}
 {% if form %}
-<form action="/visits/" method="get">
+<form method="get">
     {{ form }}
     <input type="submit" value="OK" />
 </form>
 {% endif %}
 {% endblock %}
+
 <div id='content'>
 <H1>{% block title %}{{ title }}{% endblock %}</H1>