فهرست منبع

Исправил ошибку с наследованием классов

Denis V. Dedkov 10 سال پیش
والد
کامیت
66abc18dbf
1فایلهای تغییر یافته به همراه18 افزوده شده و 6 حذف شده
  1. 18 6
      asuzr/tables.py

+ 18 - 6
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):
                    <img src="{{{{ im.url }}}}">
                  {{% 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'}