diff --git a/asuzr/tables.py b/asuzr/tables.py index 0378764..60c94fb 100644 --- a/asuzr/tables.py +++ b/asuzr/tables.py @@ -8,7 +8,6 @@ from models import * class EditableColumn(tables.TemplateColumn): def __init__(self, field_name, object_name = '', *args, **kwargs): - super(tables.TemplateColumn, self).__init__(*args, **kwargs) template = ''' {{{{% load inplace_edit %}}}} @@ -26,12 +25,25 @@ class EditableColumn(tables.TemplateColumn): {{% endif %}} ''' template = template.format(main_part = main_part) - - self.template_code = template.format(field = field_name, object_name = object_name) + template = 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 = {'th': {'bgcolor': '#FFE4E1'}} + else: + self.attrs = {} + + return super(ColoredEditableColumn, self).render(record, **kwargs) class ThumbnailColumn(tables.TemplateColumn): def __init__(self, field_name, *args, **kwargs): - super(tables.TemplateColumn, self).__init__(*args, **kwargs) template = ''' {{% load thumbnail %}} @@ -39,7 +51,7 @@ class ThumbnailColumn(tables.TemplateColumn): {{% endthumbnail %}} '''.format(field = field_name) - self.template_code = template + super(ThumbnailColumn, self).__init__(template, *args, **kwargs) class OrdersTable(tables.Table): date = tables.DateColumn('d/m/Y', verbose_name = 'Дата') @@ -82,7 +94,7 @@ class OrdersTable(tables.Table): exclude = ('id', 'calls', 'contact', 'phone_num', 'cancelled', 'designer', ) class ArchiveOrdersTable(OrdersTable): - calls = EditableColumn('calls', verbose_name = 'Обзвон') + calls = ColoredEditableColumn('calls', condition_field = 'calls_color', verbose_name = 'Обзвон') class Meta: attrs = {'class': 'paleblue'}