Merge branch 'master' of ssh://192.168.100.6/repo/record
Conflicts: asuzr/tables.py asuzr/views.py templates/asuzr/base.html
This commit is contained in:
@@ -115,6 +115,9 @@ class Sketch(models.Model):
|
||||
class Action(models.Model):
|
||||
name = models.CharField(max_length=150) #наименование действия
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
#Производственный план
|
||||
class ProdPlan(models.Model):
|
||||
start_date = models.DateField() #дата начала
|
||||
@@ -123,6 +126,9 @@ class ProdPlan(models.Model):
|
||||
executor = models.ForeignKey(User) #id исполнителя
|
||||
action = models.ForeignKey(Action) #id действия
|
||||
|
||||
def __unicode__(self):
|
||||
return ', '.join((str(self.start_date), self.order.product.name, self.action.name, self.executor.first_name))
|
||||
|
||||
#Протокол доступа
|
||||
class AccessProtocol(models.Model):
|
||||
time = models.DateTimeField() #время
|
||||
|
||||
@@ -97,6 +97,9 @@ class DesignerTable(tables.Table):
|
||||
|
||||
def render_sum_price(self, value):
|
||||
return '%0.1f' % value
|
||||
|
||||
class Meta:
|
||||
attrs = {'class': 'paleblue'}
|
||||
|
||||
class Meta:
|
||||
attrs = {'class': 'paleblue'}
|
||||
@@ -168,3 +171,13 @@ class DayOrdersTable(OrdersTable):
|
||||
'deadline',
|
||||
)
|
||||
template = 'asuzr/totals_table.html'
|
||||
|
||||
class ProdPlanTable(tables.Table):
|
||||
date = tables.Column(verbose_name = 'Дата')
|
||||
week_day = tables.Column(verbose_name = 'День недели', accessor = 'date.weekday_name')
|
||||
executor = EditableColumn('executor', 'prodplan',verbose_name = 'Исполнитель')
|
||||
order = EditableColumn('order', 'prodplan', verbose_name = 'Заказ')
|
||||
action = EditableColumn('action', 'prodplan', verbose_name = 'Действие')
|
||||
|
||||
class Meta:
|
||||
attrs = {'class': 'paleblue'}
|
||||
|
||||
@@ -8,6 +8,7 @@ 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 datetime import datetime, date, timedelta
|
||||
import calendar
|
||||
from django.db.models import Count, Sum
|
||||
@@ -84,6 +85,7 @@ def get_attendance_table(year, month, prefix):
|
||||
|
||||
table = VisitTable(month_days.values(), prefix = prefix)
|
||||
table.verbose_name = 'Сводная информация'
|
||||
|
||||
table.set_summaries({
|
||||
'calls': attend_sum['calls__sum'] or 0,
|
||||
'visits': attend_sum['visits__sum'] or 0,
|
||||
@@ -120,6 +122,13 @@ def visit_view(request):
|
||||
|
||||
@login_required
|
||||
def main(request, day, month, year):
|
||||
if day == None:
|
||||
day = str(date.today().day)
|
||||
if month == None:
|
||||
month = str(date.today().month)
|
||||
if year == None:
|
||||
year = str(date.today().year)
|
||||
|
||||
d,m,y=int(day),int(month), int(year)
|
||||
|
||||
attend_list = Attendance.objects.all().order_by('date')
|
||||
@@ -221,3 +230,23 @@ def production_table(request, order_id):
|
||||
'cost_items' : cost_items,
|
||||
})
|
||||
return HttpResponse(t.render(c))
|
||||
|
||||
@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
|
||||
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)}
|
||||
|
||||
prodplan_list = ProdPlan.objects.filter(start_date__range = (sdate,edate))
|
||||
|
||||
for prodplan in prodplan_list:
|
||||
week_days[prodplan.start_date.weekday()]['prodplan'] = prodplan
|
||||
|
||||
table = ProdPlanTable(week_days.values())
|
||||
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})
|
||||
|
||||
Reference in New Issue
Block a user