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:
2015-06-17 00:45:47 +05:00
8 changed files with 55 additions and 6 deletions

View File

@@ -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() #время

View File

@@ -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'}

View File

@@ -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})

View File

@@ -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

View File

@@ -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),

View File

@@ -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>

View File

@@ -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>

View File

@@ -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">