Исправлены конфликты

This commit is contained in:
Anastasia
2015-06-19 09:11:49 +05:00
11 changed files with 204 additions and 120 deletions

View File

@@ -1,21 +1,16 @@
# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.shortcuts import render, redirect, get_object_or_404
from django.http import HttpResponse, HttpResponseRedirect
from django.template import RequestContext, Context, loader
from asuzr.models import Product
from asuzr.models import Attendance
from asuzr.models import Order
from asuzr.models import OrderPlan
from asuzr.models import Schedule
from asuzr.models import ProdPlan
from asuzr.models import *
from datetime import datetime, date, timedelta
import calendar
from django.db.models import Count, Sum
from asuzr.common import custom_date
from django.contrib.auth.decorators import login_required
from tables import *
from forms import *
from asuzr.tables import *
from asuzr.forms import *
from django_tables2 import RequestConfig
@login_required
@@ -44,17 +39,13 @@ def get_orders_by_date(dt):
order_list = Order.objects.filter(date=dt).order_by('id')
return order_list
@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})
y,m = curr_date.year, curr_date.month
day_in_month = calendar.monthrange(y,m)[1]
month_days = {i+1: {'date': custom_date(y,m,i+1)} for i in range(day_in_month)}
sdate = date(y,m,1)
edate = date(y,m,day_in_month)
def get_attendance_table(year, month, prefix):
day_in_month = calendar.monthrange(year,month)[1]
sdate = date(year,month,1)
edate = date(year,month,day_in_month)
month_days = {i+1: {'date': custom_date(year,month,i+1)} for i in range(day_in_month)}
attend_list = Attendance.objects.filter(date__range = (sdate,edate))
attend_sum = attend_list.aggregate(Sum('calls'), Sum('visits'))
for attend in attend_list:
@@ -76,25 +67,56 @@ def visit_view(request):
month_days[day]['designer'] = '%s, %s' % (month_days[day]['designer'], designer)
else:
month_days[day]['designer'] = designer
month_plan = OrderPlan.objects.filter(date = sdate).first()
month_plan = 0 if month_plan == None else month_plan.plan
month_balance = month_plan - (order_sum['price__sum'] or 0)
additional_info = {'title': 'Справочно',
'rows': [
{'title': 'ПЛАН', 'value': month_plan},
{'title': 'Осталось до выполнения', 'value': month_balance},
]
}
table = VisitTable(month_days.values(), prefix = prefix)
table.verbose_name = 'Сводная информация'
table = VisitTable(month_days.values())
RequestConfig(request, paginate={'per_page': 32}).configure(table)
table.set_summaries({
'calls': attend_sum['calls__sum'],
'visits': attend_sum['visits__sum'],
'orders': order_sum['product__count'],
'cost': order_sum['price__sum'],
'calls': attend_sum['calls__sum'] or 0,
'visits': attend_sum['visits__sum'] or 0,
'orders': order_sum['product__count'] or 0,
'cost': order_sum['price__sum'] or 0,
})
title = 'Таблица посещаемости на %s г.' % curr_date.strftime('%B %Y')
if request.method == 'POST':
form = DateForm(request.POST)
if form.is_valid():
print form.cleaned_data
else:
form = DateForm()
return render(request, 'asuzr/table.html', {'table': table, 'title': title, 'form': form})
return table, additional_info
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'] or 0)
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')
form = DateForm(request.GET, initial = {'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)
orders_table = get_day_orders_table(curr_date, 'orders-')
RequestConfig(request).configure(orders_table)
title = 'Таблица посещаемости на %s' % curr_date.strftime('%B %Y г')
return render(request, 'asuzr/table2.html', {
'table1': attendance_table,
'table2': orders_table,
'additional_info': add_info,
'title': title,
'form': form})
@login_required
def main(request, day, month, year):
@@ -169,9 +191,28 @@ def main(request, day, month, year):
@login_required
def sketches(request, order_id):
curr_order = Order.objects.get(pk = order_id)
if request.method == 'POST':
if 'sketch_file' in request.FILES:
files = request.FILES.getlist('sketch_file')
for f in files:
instance = Sketch(sketch_file = f, order = curr_order)
instance.save()
return redirect(sketches, order_id = order_id)
table = SketchesTable(Sketch.objects.filter(order = curr_order))
RequestConfig(request).configure(table)
return render(request, 'asuzr/table.html', {'table': table, 'title': 'Эскизы заказа %s' % curr_order})
return render(request, 'asuzr/sketches.html', {
'order_id': order_id,
'table': table,
'title': 'Эскизы заказа %s' % curr_order})
def delete_sketch(request):
pk = request.GET.get('pk', -1)
sketch = get_object_or_404(Sketch, pk = pk)
order_id = sketch.order.pk
sketch.sketch_file.delete(save = False)
sketch.delete()
return redirect(sketches, order_id = order_id)
@login_required
def orders(request, archive):
@@ -226,12 +267,3 @@ def prod_plan_view(request):
title = u'Производственный план на %s - %s' % (sdate.strftime('%d.%m.%Y'), edate.strftime('%d.%m.%Y'))
RequestConfig(request).configure(table)
return render(request, 'asuzr/table.html', {'table': table, 'title': title})
def get_date(request):
if request.method == 'POST':
form = DateForm(request.POST)
if form.is_valid():
HttpResponse("AAA")
else:
form = DateForm()
return render(request, 'asuzr/date_control.html', {'form': form})