From b6bcf24a4efd830db3ae7139eaec5ce448b36554 Mon Sep 17 00:00:00 2001 From: Dmitriy Shesterkin Date: Sun, 14 Jan 2018 12:48:33 +0500 Subject: [PATCH] ordering for table documents by date as default, and in current orfrring order by document number --- src/docs/models/base_models.py | 2 +- src/docs/views/base_views.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/docs/models/base_models.py b/src/docs/models/base_models.py index e097446..8da2bef 100644 --- a/src/docs/models/base_models.py +++ b/src/docs/models/base_models.py @@ -43,7 +43,7 @@ class BaseModel(VeryBaseModel): class Meta(VeryBaseModel.Meta): abstract = True - ordering = ('-doc_date',) + ordering = ('-doc_date', '-created_at',) def __str__(self): return f'{self._meta.verbose_name} № {self.doc_num} от {self.doc_date}' diff --git a/src/docs/views/base_views.py b/src/docs/views/base_views.py index 39715ee..adee5ac 100644 --- a/src/docs/views/base_views.py +++ b/src/docs/views/base_views.py @@ -148,7 +148,7 @@ class BaseViews(object): 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()) if params.get(ORDER_VAR) in self.ORDER_FIELDS: order_field = params.get(ORDER_VAR) @@ -163,7 +163,11 @@ class BaseViews(object): # задать сортировку order_field, order_type = self.get_ordering() 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 def get_filters(self, qs):