ordering for table documents by date as default, and in current orfrring order by document number

prod
Dmitriy Shesterkin 8 years ago
parent bf8f725b15
commit b6bcf24a4e
  1. 2
      src/docs/models/base_models.py
  2. 8
      src/docs/views/base_views.py

@ -43,7 +43,7 @@ class BaseModel(VeryBaseModel):
class Meta(VeryBaseModel.Meta): class Meta(VeryBaseModel.Meta):
abstract = True abstract = True
ordering = ('-doc_date',) ordering = ('-doc_date', '-created_at',)
def __str__(self): def __str__(self):
return f'{self._meta.verbose_name}{self.doc_num} от {self.doc_date}' return f'{self._meta.verbose_name}{self.doc_num} от {self.doc_date}'

@ -148,7 +148,7 @@ class BaseViews(object):
def get_ordering(self): def get_ordering(self):
"""Поле и порядок сортировки.""" """Поле и порядок сортировки."""
order_field, order_type = 'doc_num', 'desc' # default order_field, order_type = 'doc_date', 'desc' # default
params = dict(self.request.GET.items()) params = dict(self.request.GET.items())
if params.get(ORDER_VAR) in self.ORDER_FIELDS: if params.get(ORDER_VAR) in self.ORDER_FIELDS:
order_field = params.get(ORDER_VAR) order_field = params.get(ORDER_VAR)
@ -163,7 +163,11 @@ class BaseViews(object):
# задать сортировку # задать сортировку
order_field, order_type = self.get_ordering() order_field, order_type = self.get_ordering()
if order_field: if order_field:
qs = qs.order_by('%s%s' % ((order_type == 'desc' and '-' or ''), order_field,)) if order_field == 'doc_date':
order_query = '%s%s' % ((order_type == 'desc' and '-' or ''), order_field,)
qs = qs.order_by(order_query, '-doc_num')
else:
qs = qs.order_by('%s%s' % ((order_type == 'desc' and '-' or ''), order_field,))
return qs return qs
def get_filters(self, qs): def get_filters(self, qs):

Loading…
Cancel
Save