Merge branch 'master' of ssh://192.168.100.6/repo/record
This commit is contained in:
@@ -101,6 +101,8 @@ class Order(models.Model):
|
|||||||
need_color=False
|
need_color=False
|
||||||
if self.approved!=None:
|
if self.approved!=None:
|
||||||
need_color = (date.today()-self.approved.date()>= timedelta(days = 10))
|
need_color = (date.today()-self.approved.date()>= timedelta(days = 10))
|
||||||
|
need_color = need_color and (self.calls == '')
|
||||||
|
|
||||||
return need_color
|
return need_color
|
||||||
|
|
||||||
#Эскизы
|
#Эскизы
|
||||||
|
|||||||
@@ -8,30 +8,43 @@ from models import *
|
|||||||
|
|
||||||
class EditableColumn(tables.TemplateColumn):
|
class EditableColumn(tables.TemplateColumn):
|
||||||
def __init__(self, field_name, object_name = '', *args, **kwargs):
|
def __init__(self, field_name, object_name = '', *args, **kwargs):
|
||||||
super(tables.TemplateColumn, self).__init__(*args, **kwargs)
|
|
||||||
template = '''
|
template = '''
|
||||||
{{{{% load inplace_edit %}}}}
|
{{{{% load inplace_edit %}}}}
|
||||||
|
|
||||||
{main_part}
|
{main_part}
|
||||||
'''
|
'''
|
||||||
main_part = ''
|
main_part = ''
|
||||||
|
params = 'auto_height = 1, auto_width = 1'
|
||||||
if object_name == '':
|
if object_name == '':
|
||||||
main_part = '''
|
main_part = '''
|
||||||
{{% inplace_edit "record.{field}" auto_height = 1, auto_width = 1 %}}
|
{{% inplace_edit "record.{field}" {params} %}}
|
||||||
'''
|
'''
|
||||||
else:
|
else:
|
||||||
main_part = '''
|
main_part = '''
|
||||||
{{% if record.{object_name} %}}
|
{{% if record.{object_name} %}}
|
||||||
{{% inplace_edit "record.{object_name}.{field}" auto_height = 1, auto_width = 1 %}}
|
{{% inplace_edit "record.{object_name}.{field}" {params} %}}
|
||||||
{{% endif %}}
|
{{% endif %}}
|
||||||
'''
|
'''
|
||||||
template = template.format(main_part = main_part)
|
template = template.format(main_part = main_part)
|
||||||
|
template = template.format(field = field_name, object_name = object_name, params = params)
|
||||||
|
|
||||||
self.template_code = template.format(field = field_name, object_name = object_name)
|
super(EditableColumn, self).__init__(template, *args, **kwargs)
|
||||||
|
|
||||||
|
class ColoredEditableColumn(EditableColumn):
|
||||||
|
def __init__(self, field_name, object_name = '', condition_field = None, *args, **kwargs):
|
||||||
|
super(ColoredEditableColumn, self).__init__(field_name, object_name, *args, **kwargs)
|
||||||
|
self.condition_field = condition_field
|
||||||
|
|
||||||
|
def render(self, record, **kwargs):
|
||||||
|
if self.condition_field != None and eval('record.%s' % self.condition_field):
|
||||||
|
self.attrs = {'td': {'bgcolor': '#FFE4E1'}}
|
||||||
|
else:
|
||||||
|
self.attrs = {}
|
||||||
|
|
||||||
|
return super(ColoredEditableColumn, self).render(record, **kwargs)
|
||||||
|
|
||||||
class ThumbnailColumn(tables.TemplateColumn):
|
class ThumbnailColumn(tables.TemplateColumn):
|
||||||
def __init__(self, field_name, *args, **kwargs):
|
def __init__(self, field_name, *args, **kwargs):
|
||||||
super(tables.TemplateColumn, self).__init__(*args, **kwargs)
|
|
||||||
template = '''
|
template = '''
|
||||||
{{% load thumbnail %}}
|
{{% load thumbnail %}}
|
||||||
|
|
||||||
@@ -39,7 +52,7 @@ class ThumbnailColumn(tables.TemplateColumn):
|
|||||||
<img src="{{{{ im.url }}}}">
|
<img src="{{{{ im.url }}}}">
|
||||||
{{% endthumbnail %}}
|
{{% endthumbnail %}}
|
||||||
'''.format(field = field_name)
|
'''.format(field = field_name)
|
||||||
self.template_code = template
|
super(ThumbnailColumn, self).__init__(template, *args, **kwargs)
|
||||||
|
|
||||||
class OrdersTable(tables.Table):
|
class OrdersTable(tables.Table):
|
||||||
date = tables.DateColumn('d/m/Y', verbose_name = 'Дата')
|
date = tables.DateColumn('d/m/Y', verbose_name = 'Дата')
|
||||||
@@ -64,6 +77,7 @@ class OrdersTable(tables.Table):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Order
|
model = Order
|
||||||
|
empty_text = 'Незавершенных заказов нет'
|
||||||
attrs = {'class': 'paleblue'}
|
attrs = {'class': 'paleblue'}
|
||||||
sequence = ('date',
|
sequence = ('date',
|
||||||
'deadline',
|
'deadline',
|
||||||
@@ -81,7 +95,7 @@ class OrdersTable(tables.Table):
|
|||||||
exclude = ('id', 'calls', 'contact', 'phone_num', 'cancelled', 'designer', )
|
exclude = ('id', 'calls', 'contact', 'phone_num', 'cancelled', 'designer', )
|
||||||
|
|
||||||
class ArchiveOrdersTable(OrdersTable):
|
class ArchiveOrdersTable(OrdersTable):
|
||||||
calls = EditableColumn('calls', verbose_name = 'Обзвон')
|
calls = ColoredEditableColumn('calls', condition_field = 'calls_color', verbose_name = 'Обзвон')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
attrs = {'class': 'paleblue'}
|
attrs = {'class': 'paleblue'}
|
||||||
@@ -99,9 +113,7 @@ class DesignerTable(tables.Table):
|
|||||||
return '%0.1f' % value
|
return '%0.1f' % value
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
attrs = {'class': 'paleblue'}
|
empty_text = 'Заказов за этот период не было'
|
||||||
|
|
||||||
class Meta:
|
|
||||||
attrs = {'class': 'paleblue'}
|
attrs = {'class': 'paleblue'}
|
||||||
|
|
||||||
class SketchesTable(tables.Table):
|
class SketchesTable(tables.Table):
|
||||||
@@ -114,6 +126,7 @@ class SketchesTable(tables.Table):
|
|||||||
(reverse('asuzr.views.delete_sketch'), escape(record.id)))
|
(reverse('asuzr.views.delete_sketch'), escape(record.id)))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
empty_text = 'Эскизов для этого заказа пока нет'
|
||||||
attrs = {'class': 'paleblue'}
|
attrs = {'class': 'paleblue'}
|
||||||
|
|
||||||
class VisitTable(tables.Table):
|
class VisitTable(tables.Table):
|
||||||
@@ -158,6 +171,7 @@ class DayOrdersTable(OrdersTable):
|
|||||||
return ' '.join((value.first_name, value.last_name))
|
return ' '.join((value.first_name, value.last_name))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
empty_text = 'Заказов для этого дня нет'
|
||||||
attrs = {'class': 'paleblue'}
|
attrs = {'class': 'paleblue'}
|
||||||
exclude = ('date',
|
exclude = ('date',
|
||||||
'delivery',
|
'delivery',
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Django settings for record project.
|
Django settings for record project.
|
||||||
|
|
||||||
@@ -96,3 +98,11 @@ MEDIA_ROOT = 'media/'
|
|||||||
MEDIA_URL = 'http://127.0.0.1:8000/media/'
|
MEDIA_URL = 'http://127.0.0.1:8000/media/'
|
||||||
|
|
||||||
THUMBNAIL_ENGINE = 'sorl.thumbnail.engines.convert_engine.Engine'
|
THUMBNAIL_ENGINE = 'sorl.thumbnail.engines.convert_engine.Engine'
|
||||||
|
|
||||||
|
INPLACEEDIT_EVENT = 'click'
|
||||||
|
|
||||||
|
INPLACEEDIT_SUCCESS_TEXT = u'Сохранено'
|
||||||
|
|
||||||
|
from django.utils.safestring import mark_safe
|
||||||
|
|
||||||
|
INPLACEEDIT_EDIT_EMPTY_VALUE = mark_safe(u'<div class="gray">Редактировать</div>')
|
||||||
|
|||||||
@@ -34,6 +34,9 @@
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
.gray {
|
||||||
|
color: lightgray;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
Reference in New Issue
Block a user