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):
|
class Action(models.Model):
|
||||||
name = models.CharField(max_length=150) #наименование действия
|
name = models.CharField(max_length=150) #наименование действия
|
||||||
|
|
||||||
|
def __unicode__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
#Производственный план
|
#Производственный план
|
||||||
class ProdPlan(models.Model):
|
class ProdPlan(models.Model):
|
||||||
start_date = models.DateField() #дата начала
|
start_date = models.DateField() #дата начала
|
||||||
@@ -123,6 +126,9 @@ class ProdPlan(models.Model):
|
|||||||
executor = models.ForeignKey(User) #id исполнителя
|
executor = models.ForeignKey(User) #id исполнителя
|
||||||
action = models.ForeignKey(Action) #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):
|
class AccessProtocol(models.Model):
|
||||||
time = models.DateTimeField() #время
|
time = models.DateTimeField() #время
|
||||||
|
|||||||
@@ -101,6 +101,9 @@ class DesignerTable(tables.Table):
|
|||||||
class Meta:
|
class Meta:
|
||||||
attrs = {'class': 'paleblue'}
|
attrs = {'class': 'paleblue'}
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
attrs = {'class': 'paleblue'}
|
||||||
|
|
||||||
class SketchesTable(tables.Table):
|
class SketchesTable(tables.Table):
|
||||||
sketch_file = tables.FileColumn(verbose_name = 'Имя файла')
|
sketch_file = tables.FileColumn(verbose_name = 'Имя файла')
|
||||||
sketch_image = ThumbnailColumn('sketch_file', verbose_name = 'Эскиз', orderable = False)
|
sketch_image = ThumbnailColumn('sketch_file', verbose_name = 'Эскиз', orderable = False)
|
||||||
@@ -168,3 +171,13 @@ class DayOrdersTable(OrdersTable):
|
|||||||
'deadline',
|
'deadline',
|
||||||
)
|
)
|
||||||
template = 'asuzr/totals_table.html'
|
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 Order
|
||||||
from asuzr.models import OrderPlan
|
from asuzr.models import OrderPlan
|
||||||
from asuzr.models import Schedule
|
from asuzr.models import Schedule
|
||||||
|
from asuzr.models import ProdPlan
|
||||||
from datetime import datetime, date, timedelta
|
from datetime import datetime, date, timedelta
|
||||||
import calendar
|
import calendar
|
||||||
from django.db.models import Count, Sum
|
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 = VisitTable(month_days.values(), prefix = prefix)
|
||||||
table.verbose_name = 'Сводная информация'
|
table.verbose_name = 'Сводная информация'
|
||||||
|
|
||||||
table.set_summaries({
|
table.set_summaries({
|
||||||
'calls': attend_sum['calls__sum'] or 0,
|
'calls': attend_sum['calls__sum'] or 0,
|
||||||
'visits': attend_sum['visits__sum'] or 0,
|
'visits': attend_sum['visits__sum'] or 0,
|
||||||
@@ -120,6 +122,13 @@ def visit_view(request):
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def main(request, day, month, year):
|
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)
|
d,m,y=int(day),int(month), int(year)
|
||||||
|
|
||||||
attend_list = Attendance.objects.all().order_by('date')
|
attend_list = Attendance.objects.all().order_by('date')
|
||||||
@@ -221,3 +230,23 @@ def production_table(request, order_id):
|
|||||||
'cost_items' : cost_items,
|
'cost_items' : cost_items,
|
||||||
})
|
})
|
||||||
return HttpResponse(t.render(c))
|
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'
|
WSGI_APPLICATION = 'record.wsgi.application'
|
||||||
|
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases
|
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases
|
||||||
|
|
||||||
|
|||||||
@@ -14,12 +14,13 @@ js_info_dict = {
|
|||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^product/$', 'asuzr.views.prod_list'),
|
url(r'^product/$', 'asuzr.views.prod_list'),
|
||||||
url(r'^product/(?P<prod_id>\d+)/$', 'asuzr.views.prod_detail'),
|
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'^visits/$', 'asuzr.views.visit_view'),
|
||||||
url(r'^orders/(?P<archive>\d+)/$', 'asuzr.views.orders',name='asuzr-orders'),
|
url(r'^orders/(?P<archive>\d+)/$', 'asuzr.views.orders',name='asuzr-orders'),
|
||||||
url(r'^desreport/$', 'asuzr.views.desreport'),
|
url(r'^desreport/$', 'asuzr.views.desreport'),
|
||||||
url(r'^production_table/(?P<order_id>\d+)/$', 'asuzr.views.production_table'),
|
url(r'^production_table/(?P<order_id>\d+)/$', 'asuzr.views.production_table'),
|
||||||
url(r'^sketches/(?P<order_id>\d+)/$', 'asuzr.views.sketches'),
|
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'^admin/', include(admin.site.urls)),
|
||||||
url(r'^inplaceeditform/', include('inplaceeditform.urls')),
|
url(r'^inplaceeditform/', include('inplaceeditform.urls')),
|
||||||
url(r'^accounts/login/$', login),
|
url(r'^accounts/login/$', login),
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
{% block page %}
|
{% block page %}
|
||||||
<table WIDTH="100%">
|
<table WIDTH="100%">
|
||||||
<TR VALIGN=top>
|
<TR VALIGN=top>
|
||||||
<TD WIDTH="50%">{% include 'asuzr/attendance.html' %}</TD>
|
<TD WIDTH="51%">{% include 'asuzr/attendance.html' %}</TD>
|
||||||
<TD WIDTH="5%"></TD>
|
<TD WIDTH="3%"></TD>
|
||||||
<TD WIDTH="45%">{% include 'asuzr/orders_detail.html' %}</TD>
|
<TD WIDTH="45%">{% include 'asuzr/orders_detail.html' %}</TD>
|
||||||
</TR>
|
</TR>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<TD>{{ attend.date.weekday_name}}</TD>
|
<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.calls" %}{% endif %}</TD>
|
||||||
<TD>{% if attend.attend %}{% inplace_edit "attend.attend.visits" %}{% 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.orders_price}}</TD>
|
||||||
<TD>{{ attend.designers}}</TD>
|
<TD>{{ attend.designers}}</TD>
|
||||||
</TR>
|
</TR>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Автоматическая система учета заказов студии мебели Рекорд</title>
|
<title>Автоматизированная система учета заказов студии мебели Рекорд</title>
|
||||||
<script src="{{ STATIC_URL }}admin/js/jquery.min.js" type="text/javascript"></script>
|
<script src="{{ STATIC_URL }}admin/js/jquery.min.js" type="text/javascript"></script>
|
||||||
{% inplace_static %}
|
{% inplace_static %}
|
||||||
<link rel="stylesheet" href="{{ STATIC_URL }}django_tables2/themes/paleblue/css/screen.css" />
|
<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' 0 %}>Таблица выхода заказов</a></li>
|
||||||
<li><a href={% url 'asuzr.views.orders' 1 %}>Архивная таблица</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.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 %}
|
{% if request.user.is_staff %}<li><a href={% url 'admin:index' %}>Администрирование</a></li>{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
<div id="user">
|
<div id="user">
|
||||||
|
|||||||
Reference in New Issue
Block a user