Добавлены формы для выбора дат на страницы Таблица посещаемости, Производственный план, Отчет по дизайнерам. Исправлена ошибка в формировании списка дат в prod_plan_view
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
from django import forms
|
from django import forms
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
from django.contrib.admin.widgets import AdminDateWidget
|
||||||
|
|
||||||
class DateForm (forms.Form):
|
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)
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ def get_day_orders_table(date, prefix):
|
|||||||
@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')
|
||||||
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-')
|
attendance_table, add_info = 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)
|
||||||
|
|
||||||
@@ -225,15 +225,16 @@ def orders(request, archive):
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def desreport(request):
|
def desreport(request):
|
||||||
start_date = request.GET.get('sdate', date.today().strftime('%d.%m.%y'))
|
start_date = request.GET.get('sdate', date.today().strftime('%d.%m.%Y'))
|
||||||
sdate = datetime.strptime(start_date, '%d.%m.%y')
|
sdate = datetime.strptime(start_date, '%d.%m.%Y')
|
||||||
end_date = request.GET.get('edate', date.today().strftime('%d.%m.%y'))
|
end_date = request.GET.get('edate', date.today().strftime('%d.%m.%Y'))
|
||||||
edate = datetime.strptime(end_date, '%d.%m.%y')
|
edate = datetime.strptime(end_date, '%d.%m.%Y')
|
||||||
Table = DesignerTable
|
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')))
|
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))
|
title = u'Отчет по дизайнерам за '+' - '.join((start_date, end_date))
|
||||||
|
form = DiapDateForm({'sdate': sdate, 'edate': edate})
|
||||||
RequestConfig(request).configure(table)
|
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
|
@login_required
|
||||||
def production_table(request, order_id):
|
def production_table(request, order_id):
|
||||||
@@ -251,12 +252,15 @@ def production_table(request, order_id):
|
|||||||
@login_required
|
@login_required
|
||||||
def prod_plan_view(request):
|
def prod_plan_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')
|
||||||
y,m = curr_date.year, curr_date.month
|
y,m,d = curr_date.year, curr_date.month, curr_date.day
|
||||||
wd = curr_date.weekday()
|
wd = curr_date.weekday()
|
||||||
sdate = curr_date - timedelta(days = wd)
|
sdate = curr_date - timedelta(days = wd)
|
||||||
edate = curr_date + timedelta(days = 6-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))
|
prodplan_list = ProdPlan.objects.filter(start_date__range = (sdate,edate))
|
||||||
|
|
||||||
@@ -265,5 +269,6 @@ def prod_plan_view(request):
|
|||||||
|
|
||||||
table = ProdPlanTable(week_days.values())
|
table = ProdPlanTable(week_days.values())
|
||||||
title = u'Производственный план на %s - %s' % (sdate.strftime('%d.%m.%Y'), edate.strftime('%d.%m.%Y'))
|
title = u'Производственный план на %s - %s' % (sdate.strftime('%d.%m.%Y'), edate.strftime('%d.%m.%Y'))
|
||||||
|
form = DateForm({'date':curr_date})
|
||||||
RequestConfig(request).configure(table)
|
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})
|
||||||
|
|||||||
@@ -60,12 +60,13 @@
|
|||||||
|
|
||||||
{% block controls %}
|
{% block controls %}
|
||||||
{% if form %}
|
{% if form %}
|
||||||
<form action="/visits/" method="get">
|
<form method="get">
|
||||||
{{ form }}
|
{{ form }}
|
||||||
<input type="submit" value="OK" />
|
<input type="submit" value="OK" />
|
||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
<div id='content'>
|
<div id='content'>
|
||||||
<H1>{% block title %}{{ title }}{% endblock %}</H1>
|
<H1>{% block title %}{{ title }}{% endblock %}</H1>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user