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})
|
||||
|
||||
@@ -56,7 +56,6 @@ ROOT_URLCONF = 'record.urls'
|
||||
|
||||
WSGI_APPLICATION = 'record.wsgi.application'
|
||||
|
||||
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases
|
||||
|
||||
|
||||
@@ -14,12 +14,13 @@ js_info_dict = {
|
||||
urlpatterns = patterns('',
|
||||
url(r'^product/$', 'asuzr.views.prod_list'),
|
||||
url(r'^product/(?P<prod_id>\d+)/$', 'asuzr.views.prod_detail'),
|
||||
url(r'^main/(?P<day>\d+)/(?P<month>\d+)/(?P<year>\d+)/$', 'asuzr.views.main', name='asuzr-main'),
|
||||
url(r'^main/?(?P<day>\d+)?/?(?P<month>\d+)?/?(?P<year>\d+)?/$', 'asuzr.views.main', name='asuzr-main'),
|
||||
url(r'^visits/$', 'asuzr.views.visit_view'),
|
||||
url(r'^orders/(?P<archive>\d+)/$', 'asuzr.views.orders',name='asuzr-orders'),
|
||||
url(r'^desreport/$', 'asuzr.views.desreport'),
|
||||
url(r'^production_table/(?P<order_id>\d+)/$', 'asuzr.views.production_table'),
|
||||
url(r'^sketches/(?P<order_id>\d+)/$', 'asuzr.views.sketches'),
|
||||
url(r'^prodplan/$', 'asuzr.views.prod_plan_view'),
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^inplaceeditform/', include('inplaceeditform.urls')),
|
||||
url(r'^accounts/login/$', login),
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
{% block page %}
|
||||
<table WIDTH="100%">
|
||||
<TR VALIGN=top>
|
||||
<TD WIDTH="50%">{% include 'asuzr/attendance.html' %}</TD>
|
||||
<TD WIDTH="5%"></TD>
|
||||
<TD WIDTH="51%">{% include 'asuzr/attendance.html' %}</TD>
|
||||
<TD WIDTH="3%"></TD>
|
||||
<TD WIDTH="45%">{% include 'asuzr/orders_detail.html' %}</TD>
|
||||
</TR>
|
||||
</table>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<TD>{{ attend.date.weekday_name}}</TD>
|
||||
<TD>{% if attend.attend %}{% inplace_edit "attend.attend.calls" %}{% endif %}</TD>
|
||||
<TD>{% if attend.attend %}{% inplace_edit "attend.attend.visits" %}{% endif %}</TD>
|
||||
<TD><a href="{% url 'asuzr-main' attend.date.day attend.date.month attend.date.year %}">{{ attend.orders_count}}</a></TD>
|
||||
<TD><a href="{% url 'asuzr-main' %}{{attend.date.day}}/{{attend.date.month}}/{{attend.date.year}}">{{ attend.orders_count}}</a></TD>
|
||||
<TD>{{ attend.orders_price}}</TD>
|
||||
<TD>{{ attend.designers}}</TD>
|
||||
</TR>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Автоматическая система учета заказов студии мебели Рекорд</title>
|
||||
<title>Автоматизированная система учета заказов студии мебели Рекорд</title>
|
||||
<script src="{{ STATIC_URL }}admin/js/jquery.min.js" type="text/javascript"></script>
|
||||
{% inplace_static %}
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}django_tables2/themes/paleblue/css/screen.css" />
|
||||
@@ -44,6 +44,7 @@
|
||||
<li><a href={% url 'asuzr.views.orders' 0 %}>Таблица выхода заказов</a></li>
|
||||
<li><a href={% url 'asuzr.views.orders' 1 %}>Архивная таблица</a></li>
|
||||
<li><a href={% url 'asuzr.views.desreport' %}>Отчет по дизайнерам</a></li>
|
||||
<li><a href={% url 'asuzr.views.prod_plan_view' %}>Производственный план</a></li>
|
||||
{% if request.user.is_staff %}<li><a href={% url 'admin:index' %}>Администрирование</a></li>{% endif %}
|
||||
</ul>
|
||||
<div id="user">
|
||||
|
||||
Reference in New Issue
Block a user