Merge branch 'master' of ssh://192.168.100.6/repo/record
Conflicts: .gitignore asuzr/tables.py record/settings.py
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -3,3 +3,4 @@
|
||||
db*
|
||||
.directory
|
||||
sketches/*
|
||||
media/*
|
||||
|
||||
@@ -88,6 +88,10 @@ class Order(models.Model):
|
||||
def approved_date(self):
|
||||
return self.approved.strftime("%d/%m/%Y %H:%M")
|
||||
|
||||
@property
|
||||
def sketch(self):
|
||||
return len(Sketch.objects.filter(order = self))
|
||||
|
||||
@property
|
||||
def ostatok(self):
|
||||
return self.price-self.paid
|
||||
@@ -101,7 +105,7 @@ class Order(models.Model):
|
||||
|
||||
#Эскизы
|
||||
class Sketch(models.Model):
|
||||
sketch_file = models.FileField(upload_to = 'sketches') #путь к файу
|
||||
sketch_file = models.FileField(upload_to = 'sketches/') #путь к файу
|
||||
order = models.ForeignKey(Order) #id заказа
|
||||
|
||||
def __unicode__(self):
|
||||
|
||||
@@ -11,9 +11,16 @@ def editable(field_name):
|
||||
class EditableColumn(tables.TemplateColumn):
|
||||
def __init__(self, field_name, *args, **kwargs):
|
||||
super(tables.TemplateColumn, self).__init__(*args, **kwargs)
|
||||
print kwargs
|
||||
template = '{{% load inplace_edit %}}\n\n{{% inplace_edit "record.{field}" auto_height = 1 %}}'.format(field = field_name)
|
||||
self.template_code = template
|
||||
|
||||
class ThumbnailColumn(tables.TemplateColumn):
|
||||
def __init__(self, field_name, *args, **kwargs):
|
||||
super(tables.TemplateColumn, self).__init__(*args, **kwargs)
|
||||
template = '{{% load thumbnail %}}\n\n{{% thumbnail record.{field} "100x100" as im %}}<img src="{{{{ im.url }}}}">{{% endthumbnail %}}'.format(field = field_name)
|
||||
self.template_code = template
|
||||
|
||||
class TestTable(tables.Table):
|
||||
name = EditableColumn('name', "Наименование")
|
||||
prod_period = EditableColumn('prod_period', "Время производства")
|
||||
@@ -33,7 +40,7 @@ class OrdersTable(tables.Table):
|
||||
paid = EditableColumn('paid', verbose_name = 'Оплачено')
|
||||
ostatok = tables.Column(verbose_name = 'Остаток')
|
||||
approved = EditableColumn('approved', verbose_name = 'Согласовано')
|
||||
sketch = tables.LinkColumn('sketches', verbose_name = 'Эскиз')
|
||||
sketch = tables.LinkColumn('asuzr.views.sketches', verbose_name = 'Эскизы', args=[tables.utils.A('pk')])
|
||||
executor = EditableColumn('executor', verbose_name = 'Исполнитель')
|
||||
is_done = EditableColumn('is_done', verbose_name = 'Сдан')
|
||||
id = tables.Column(visible = False)
|
||||
@@ -83,5 +90,9 @@ class DesignerTable(tables.Table):
|
||||
def render_sum_price(self, value):
|
||||
return '%0.1f' % value
|
||||
|
||||
class SketchesTable(tables.Table):
|
||||
sketch_file = tables.FileColumn(verbose_name = 'Имя файла')
|
||||
sketch_image = ThumbnailColumn('sketch_file', verbose_name = 'Эскиз', orderable = False)
|
||||
|
||||
class Meta:
|
||||
attrs = {'class': 'paleblue'}
|
||||
|
||||
0
asuzr/templatetags/__init__.py
Normal file
0
asuzr/templatetags/__init__.py
Normal file
9
asuzr/templatetags/filters.py
Normal file
9
asuzr/templatetags/filters.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from django import template
|
||||
from django.contrib.auth.models import Group
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@register.filter(name='has_group')
|
||||
def has_group(user, group_name):
|
||||
group = Group.objects.get(name=group_name)
|
||||
return True if group in user.groups.all() else False
|
||||
@@ -105,6 +105,13 @@ def main(request, day, month, year):
|
||||
})
|
||||
return HttpResponse(t.render(c))
|
||||
|
||||
@login_required
|
||||
def sketches(request, order_id):
|
||||
curr_order = Order.objects.get(pk = order_id)
|
||||
table = SketchesTable(Sketch.objects.filter(order = curr_order))
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'asuzr/table.html', {'table': table, 'title': 'Эскизы заказа %s' % curr_order})
|
||||
|
||||
@login_required
|
||||
def orders(request, archive):
|
||||
is_archive = (archive == '1')
|
||||
|
||||
@@ -39,7 +39,8 @@ INSTALLED_APPS = (
|
||||
'django.contrib.staticfiles',
|
||||
'inplaceeditform',
|
||||
'django_tables2',
|
||||
'asuzr'
|
||||
'sorl.thumbnail',
|
||||
'asuzr',
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
@@ -85,6 +86,10 @@ USE_TZ = True
|
||||
|
||||
STATIC_URL = '/static/'
|
||||
|
||||
TEMPLATE_DIRS = ('/home/anastasia/projects/django/record/templates/')
|
||||
TEMPLATE_DIRS = ('templates/')
|
||||
|
||||
TEMPLATE_CONTEXT_PROCESSORS += ('django.core.context_processors.request',)
|
||||
|
||||
MEDIA_ROOT = 'media/'
|
||||
|
||||
MEDIA_URL = 'http://127.0.0.1:8000/media/'
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
from django.conf.urls import patterns, include, url
|
||||
from django.contrib.auth.views import login, logout
|
||||
from django.conf.urls.static import static
|
||||
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
|
||||
from django.conf import settings
|
||||
|
||||
from django.contrib import admin
|
||||
admin.autodiscover()
|
||||
@@ -9,18 +12,22 @@ js_info_dict = {
|
||||
}
|
||||
|
||||
urlpatterns = patterns('',
|
||||
# Examples:
|
||||
# url(r'^$', 'record.views.home', name='home'),
|
||||
# url(r'^blog/', include('blog.urls')),
|
||||
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'^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'^admin/', include(admin.site.urls)),
|
||||
url(r'^inplaceeditform/', include('inplaceeditform.urls')),
|
||||
url(r'^accounts/login/$', login),
|
||||
url(r'^accounts/logout/$', logout),
|
||||
url(r'^jsi18n$', 'django.views.i18n.javascript_catalog', js_info_dict),
|
||||
)
|
||||
|
||||
if settings.DEBUG:
|
||||
# static files (images, css, javascript, etc.)
|
||||
urlpatterns += patterns('',
|
||||
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
|
||||
'document_root': settings.MEDIA_ROOT}))
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,6 @@
|
||||
{% load inplace_edit %}
|
||||
{% load filters %}
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Автоматическая система учета заказов студии мебели Рекорд</title>
|
||||
@@ -16,16 +18,29 @@
|
||||
border: 1px solid #000; /* Рамка вокруг текста */
|
||||
padding: 3px; /* Поля вокруг текста */
|
||||
}
|
||||
</style>
|
||||
#user {
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
#menu, #user {
|
||||
display: inline;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
{% block menu %}
|
||||
<ul id="menu" class="hr">
|
||||
<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' 1 %}>Архивная таблица</a></li>
|
||||
<li><a href={% url 'asuzr.views.desreport' %}>Отчет по дизайнерам</a></li>
|
||||
</ul>
|
||||
<ul id="menu" class="hr">
|
||||
<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' 1 %}>Архивная таблица</a></li>
|
||||
<li><a href={% url 'asuzr.views.desreport' %}>Отчет по дизайнерам</a></li>
|
||||
{% if request.user.is_staff %}<li><a href={% url 'admin:index' %}>Администрирование</a></li>{% endif %}
|
||||
</ul>
|
||||
<div id="user">
|
||||
{% if request.user.is_authenticated %} Добро пожаловать, {{ request.user.first_name }}
|
||||
{% else %}<a href="{% url 'django.contrib.auth.views.login' %}">Вход</a>{% endif %}
|
||||
<br><a href="{% url 'django.contrib.auth.views.logout' %}">Выход</a>
|
||||
</div>
|
||||
{% endblock %}
|
||||
<H1>{% block title %}{{ title }}{% endblock %}</H1>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user