Устранены конфликты
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
|||||||
*swp
|
*swp
|
||||||
*.pyc
|
*.pyc
|
||||||
db*
|
db*
|
||||||
|
record/settings.py
|
||||||
sketches/*
|
sketches/*
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ class Order(models.Model):
|
|||||||
contact = models.CharField(max_length=150, null=True, blank = True) #контактное лицо
|
contact = models.CharField(max_length=150, null=True, blank = True) #контактное лицо
|
||||||
phone_num = models.CharField(max_length=150,null=True, blank = True) #контактный телефон
|
phone_num = models.CharField(max_length=150,null=True, blank = True) #контактный телефон
|
||||||
cancelled = models.BooleanField(default=False) #отменен
|
cancelled = models.BooleanField(default=False) #отменен
|
||||||
cost_items = models.ManyToManyField(CostItem, through='OrderCosts') #статьи затрат
|
cost_items = models.ManyToManyField(CostItem, through='OrderCosts', related_name='+', null=True, blank=True) #статьи затрат
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return ', '.join((self.date.strftime('%d %b %Y'), self.product.name, self.address))
|
return ', '.join((self.date.strftime('%d %b %Y'), self.product.name, self.address))
|
||||||
|
|||||||
73
asuzr/tables.py
Normal file
73
asuzr/tables.py
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from django.utils.safestring import mark_safe
|
||||||
|
import django_tables2 as tables
|
||||||
|
from models import *
|
||||||
|
|
||||||
|
def editable(field_name):
|
||||||
|
return '{{% load inplace_edit %}}\n\n{{% inplace_edit "record.{field}" auto_height = 1 %}}'.format(field = field_name)
|
||||||
|
|
||||||
|
|
||||||
|
class EditableColumn(tables.TemplateColumn):
|
||||||
|
def __init__(self, field_name, *args, **kwargs):
|
||||||
|
super(tables.TemplateColumn, self).__init__(*args, **kwargs)
|
||||||
|
template = '{{% load inplace_edit %}}\n\n{{% inplace_edit "record.{field}" auto_height = 1 %}}'.format(field = field_name)
|
||||||
|
self.template_code = template
|
||||||
|
|
||||||
|
class TestTable(tables.Table):
|
||||||
|
name = EditableColumn('name', "Наименование")
|
||||||
|
prod_period = EditableColumn('prod_period', "Время производства")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Product
|
||||||
|
attrs = {"class": "paleblue"}
|
||||||
|
|
||||||
|
class OrdersTable(tables.Table):
|
||||||
|
date = tables.DateColumn('d/m/Y', verbose_name = 'Дата')
|
||||||
|
deadline = tables.DateColumn('d/m/Y/', verbose_name = 'Срок сдачи')
|
||||||
|
product = tables.Column(verbose_name = 'Наименование')
|
||||||
|
delivery = EditableColumn('delivery', verbose_name = 'Доставка')
|
||||||
|
lifting = EditableColumn('lifting', verbose_name = 'Подъем')
|
||||||
|
address = tables.Column(verbose_name = 'Адрес')
|
||||||
|
price = tables.Column(verbose_name = 'Стоимость')
|
||||||
|
paid = EditableColumn('paid', verbose_name = 'Оплачено')
|
||||||
|
ostatok = tables.Column(verbose_name = 'Остаток')
|
||||||
|
approved = EditableColumn('approved', verbose_name = 'Согласовано')
|
||||||
|
sketch = tables.LinkColumn('sketches', verbose_name = 'Эскиз')
|
||||||
|
executor = EditableColumn('executor', verbose_name = 'Исполнитель')
|
||||||
|
is_done = EditableColumn('is_done', verbose_name = 'Сдан')
|
||||||
|
id = tables.Column(visible = False)
|
||||||
|
designer = tables.Column(visible = False)
|
||||||
|
calls = tables.Column(visible = False)
|
||||||
|
contact = tables.Column(visible = False)
|
||||||
|
phone_num = tables.Column(visible = False)
|
||||||
|
cancelled = tables.Column(visible = False)
|
||||||
|
|
||||||
|
def render_price(self, value):
|
||||||
|
return '%0.1f' % value
|
||||||
|
|
||||||
|
def render_ostatok(self, value):
|
||||||
|
return '%0.1f' % value
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Order
|
||||||
|
attrs = {'class': 'paleblue'}
|
||||||
|
sequence = ('date',
|
||||||
|
'deadline',
|
||||||
|
'product',
|
||||||
|
'delivery',
|
||||||
|
'lifting',
|
||||||
|
'address',
|
||||||
|
'price',
|
||||||
|
'paid',
|
||||||
|
'ostatok',
|
||||||
|
'approved',
|
||||||
|
'sketch',
|
||||||
|
'executor',
|
||||||
|
'is_done',)
|
||||||
|
|
||||||
|
class ArchiveOrdersTable(OrdersTable):
|
||||||
|
calls = EditableColumn('calls', verbose_name = 'Обзвон')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
attrs = {'class': 'paleblue'}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.template import RequestContext, Context, loader
|
from django.template import RequestContext, Context, loader
|
||||||
@@ -11,6 +13,8 @@ import calendar
|
|||||||
from django.db.models import Count, Sum
|
from django.db.models import Count, Sum
|
||||||
from asuzr.common import custom_date
|
from asuzr.common import custom_date
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from tables import *
|
||||||
|
from django_tables2 import RequestConfig
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def prod_list(request):
|
def prod_list(request):
|
||||||
@@ -103,22 +107,12 @@ def main(request, day, month, year):
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def orders(request, archive):
|
def orders(request, archive):
|
||||||
if archive=='0':
|
is_archive = (archive == '1')
|
||||||
is_done_value=False
|
Table = ArchiveOrdersTable if is_archive else OrdersTable
|
||||||
else:
|
table = Table(Order.objects.filter(is_done = is_archive))
|
||||||
is_done_value=True
|
title = 'Архивная таблица заказов' if is_archive else 'Таблица выхода заказов'
|
||||||
order_id=request.GET.get('order_id',0)
|
RequestConfig(request).configure(table)
|
||||||
order_list = Order.objects.filter(is_done=is_done_value).order_by('-id')
|
return render(request, 'asuzr/table.html', {'table': table, 'title': title})
|
||||||
sel_order = Order.objects.filter(id=order_id)
|
|
||||||
cost_items = sel_order.values('cost_items')
|
|
||||||
t=loader.get_template('asuzr/orders.html')
|
|
||||||
c=RequestContext(request, {
|
|
||||||
'order_list': order_list,
|
|
||||||
'archive': is_done_value,
|
|
||||||
'sel_order' : sel_order,
|
|
||||||
'cost_items' : cost_items,
|
|
||||||
})
|
|
||||||
return HttpResponse(t.render(c))
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def desreport(request):
|
def desreport(request):
|
||||||
@@ -147,7 +141,3 @@ def production_table(request, order_id):
|
|||||||
'cost_items' : cost_items,
|
'cost_items' : cost_items,
|
||||||
})
|
})
|
||||||
return HttpResponse(t.render(c))
|
return HttpResponse(t.render(c))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,10 @@ from django.contrib.auth.views import login, logout
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
admin.autodiscover()
|
admin.autodiscover()
|
||||||
|
|
||||||
|
js_info_dict = {
|
||||||
|
'packages': ('django.conf',),
|
||||||
|
}
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
# Examples:
|
# Examples:
|
||||||
# url(r'^$', 'record.views.home', name='home'),
|
# url(r'^$', 'record.views.home', name='home'),
|
||||||
@@ -18,4 +22,5 @@ urlpatterns = patterns('',
|
|||||||
url(r'^inplaceeditform/', include('inplaceeditform.urls')),
|
url(r'^inplaceeditform/', include('inplaceeditform.urls')),
|
||||||
url(r'^accounts/login/$', login),
|
url(r'^accounts/login/$', login),
|
||||||
url(r'^accounts/logout/$', logout),
|
url(r'^accounts/logout/$', logout),
|
||||||
|
url(r'^jsi18n$', 'django.views.i18n.javascript_catalog', js_info_dict),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
<TR bgcolor={{attend.date.weekday_color}}>
|
<TR bgcolor={{attend.date.weekday_color}}>
|
||||||
<TD>{{ attend.date.date_dd_mm_yy}}</TD>
|
<TD>{{ attend.date.date_dd_mm_yy}}</TD>
|
||||||
<TD>{{ attend.date.weekday_name}}</TD>
|
<TD>{{ attend.date.weekday_name}}</TD>
|
||||||
<TD>{{attend.attend.calls}}</TD>
|
<TD>{% if attend.attend %}{% inplace_edit "attend.attend.calls" %}{% endif %}</TD>
|
||||||
<TD>{{attend.attend.visits}}</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>
|
||||||
|
|||||||
@@ -4,17 +4,30 @@
|
|||||||
<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" />
|
||||||
|
<style>
|
||||||
|
#menu {
|
||||||
|
margin: 0; /* Обнуляем значение отступов */
|
||||||
|
padding: 4px; /* Значение полей */
|
||||||
|
}
|
||||||
|
#menu li {
|
||||||
|
display: inline; /* Отображать как строчный элемент */
|
||||||
|
margin-right: 5px; /* Отступ слева */
|
||||||
|
border: 1px solid #000; /* Рамка вокруг текста */
|
||||||
|
padding: 3px; /* Поля вокруг текста */
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
{% block menu %}
|
{% block menu %}
|
||||||
<ul id="menu">
|
<ul id="menu" class="hr">
|
||||||
<li><a href={% url 'asuzr-main' 1 5 2015 %}>Таблица посещаемости</a></li>
|
<li><a href={% url 'asuzr-main' 1 5 2015 %}>Таблица посещаемости</a></li>
|
||||||
<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>
|
||||||
</ul>
|
</ul>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
<H1>{% block title %}Заголовок страницы{% endblock %}</H1>
|
<H1>{% block title %}{{ title }}{% endblock %}</H1>
|
||||||
|
|
||||||
{% block page %}
|
{% block page %}
|
||||||
Тело страницы
|
Тело страницы
|
||||||
|
|||||||
8
templates/asuzr/table.html
Normal file
8
templates/asuzr/table.html
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{% extends "asuzr/base.html" %}
|
||||||
|
{% load inplace_edit %}
|
||||||
|
{% load render_table from django_tables2 %}
|
||||||
|
|
||||||
|
{% block page %}
|
||||||
|
{% render_table table %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
Reference in New Issue
Block a user