tables.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # -*- coding: utf-8 -*-
  2. from django.utils.safestring import mark_safe
  3. import django_tables2 as tables
  4. from models import *
  5. def editable(field_name):
  6. return '{{% load inplace_edit %}}\n\n{{% inplace_edit "record.{field}" auto_height = 1 %}}'.format(field = field_name)
  7. class EditableColumn(tables.TemplateColumn):
  8. def __init__(self, field_name, *args, **kwargs):
  9. super(tables.TemplateColumn, self).__init__(*args, **kwargs)
  10. template = '{{% load inplace_edit %}}\n\n{{% inplace_edit "record.{field}" auto_height = 1 %}}'.format(field = field_name)
  11. self.template_code = template
  12. class TestTable(tables.Table):
  13. name = EditableColumn('name', "Наименование")
  14. prod_period = EditableColumn('prod_period', "Время производства")
  15. class Meta:
  16. model = Product
  17. attrs = {"class": "paleblue"}
  18. class OrdersTable(tables.Table):
  19. date = tables.DateColumn('d/m/Y', verbose_name = 'Дата')
  20. deadline = tables.DateColumn('d/m/Y/', verbose_name = 'Срок сдачи')
  21. product = tables.Column(verbose_name = 'Наименование')
  22. delivery = EditableColumn('delivery', verbose_name = 'Доставка')
  23. lifting = EditableColumn('lifting', verbose_name = 'Подъем')
  24. address = tables.Column(verbose_name = 'Адрес')
  25. price = tables.Column(verbose_name = 'Стоимость')
  26. paid = EditableColumn('paid', verbose_name = 'Оплачено')
  27. ostatok = tables.Column(verbose_name = 'Остаток')
  28. approved = EditableColumn('approved', verbose_name = 'Согласовано')
  29. sketch = tables.LinkColumn('sketches', verbose_name = 'Эскиз')
  30. executor = EditableColumn('executor', verbose_name = 'Исполнитель')
  31. is_done = EditableColumn('is_done', verbose_name = 'Сдан')
  32. id = tables.Column(visible = False)
  33. designer = tables.Column(visible = False)
  34. calls = tables.Column(visible = False)
  35. contact = tables.Column(visible = False)
  36. phone_num = tables.Column(visible = False)
  37. cancelled = tables.Column(visible = False)
  38. def render_price(self, value):
  39. return '%0.1f' % value
  40. def render_ostatok(self, value):
  41. return '%0.1f' % value
  42. class Meta:
  43. model = Order
  44. attrs = {'class': 'paleblue'}
  45. sequence = ('date',
  46. 'deadline',
  47. 'product',
  48. 'delivery',
  49. 'lifting',
  50. 'address',
  51. 'price',
  52. 'paid',
  53. 'ostatok',
  54. 'approved',
  55. 'sketch',
  56. 'executor',
  57. 'is_done',)
  58. class ArchiveOrdersTable(OrdersTable):
  59. calls = EditableColumn('calls', verbose_name = 'Обзвон')
  60. class Meta:
  61. attrs = {'class': 'paleblue'}