fix news ordering
This commit is contained in:
parent
5ef58b8202
commit
1a6828b53e
|
|
@ -144,6 +144,16 @@ class NewsQuerySet(TranslationQuerysetMixin):
|
|||
def by_locale(self, locale):
|
||||
return self.filter(title__icontains=locale)
|
||||
|
||||
def annotate_is_null_publication(self):
|
||||
return self.annotate(
|
||||
is_null_publication=Case(
|
||||
When(publication_date__isnull=True, then=True),
|
||||
When(publication_time__isnull=True, then=True),
|
||||
default=False,
|
||||
output_field=models.BooleanField(default=False),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class News(GalleryMixin, BaseAttributes, TranslatedFieldsMixin, HasTagsMixin,
|
||||
FavoritesMixin):
|
||||
|
|
|
|||
|
|
@ -126,15 +126,15 @@ class NewsBackOfficeLCView(NewsBackOfficeMixinView,
|
|||
|
||||
def get_queryset(self):
|
||||
"""Override get_queryset method."""
|
||||
qs = super().get_queryset().with_extended_related()
|
||||
qs = super().get_queryset().with_extended_related().annotate_is_null_publication()
|
||||
if 'ordering' in self.request.query_params:
|
||||
self.request.GET._mutable = True
|
||||
if '-publication_datetime' in self.request.query_params['ordering']:
|
||||
self.request.query_params['ordering'] = self.request.query_params['ordering']\
|
||||
.replace('-publication_datetime', '-publication_date,-publication_time')
|
||||
.replace('-publication_datetime', 'is_null_publication,-publication_date,-publication_time')
|
||||
elif 'publication_datetime' in self.request.query_params['ordering']:
|
||||
self.request.query_params['ordering'] = self.request.query_params['ordering']\
|
||||
.replace('publication_datetime', 'publication_date,publication_time')
|
||||
.replace('publication_datetime', 'is_null_publication,publication_date,publication_time')
|
||||
self.request.GET._mutable = False
|
||||
if self.request.country_code:
|
||||
qs = qs.by_country_code(self.request.country_code)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user