| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- # -*- 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)
- 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', "Время производства")
- 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('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)
- 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'}
-
- class DesignerTable(tables.Table):
- full_name = tables.Column(empty_values=(), verbose_name = 'Дизайнер')
- designer__count = tables.Column(verbose_name = 'Всего заказов')
- price__sum = tables.Column(verbose_name = 'Общая сумма')
-
- def render_full_name(self, record):
- return " ".join((record['designer__first_name'], record['designer__last_name']))
-
- 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'}
|