Merge branch 'feature/chosen-tags-hardcode' into 'develop'
Temp crunch for chosen tags See merge request gm/gm-backend!96
This commit is contained in:
commit
3abb74d19e
|
|
@ -1,6 +1,7 @@
|
|||
"""Tag app filters."""
|
||||
from django_filters import rest_framework as filters
|
||||
from establishment.models import EstablishmentType
|
||||
from django.conf import settings
|
||||
from tag import models
|
||||
|
||||
class TagsBaseFilterSet(filters.FilterSet):
|
||||
|
|
@ -53,3 +54,17 @@ class TagsFilterSet(TagsBaseFilterSet):
|
|||
|
||||
model = models.Tag
|
||||
fields = ('type',)
|
||||
|
||||
|
||||
# TMP TODO remove it later
|
||||
# Временный хардкод для демонстрации 4 ноября, потом удалить!
|
||||
def filter_by_type(self, queryset, name, value):
|
||||
""" Overrides base filter. Temporary decision"""
|
||||
if not (settings.NEWS_CHOSEN_TAGS and settings.ESTABLISHMENT_CHOSEN_TAGS):
|
||||
return super().filter_by_type(queryset, name, value)
|
||||
queryset = models.Tag.objects
|
||||
if self.NEWS in value:
|
||||
queryset = queryset.for_news().filter(value__in=settings.NEWS_CHOSEN_TAGS)
|
||||
if self.ESTABLISHMENT in value:
|
||||
queryset = queryset.for_establishments().filter(value__in=settings.ESTABLISHMENT_CHOSEN_TAGS)
|
||||
return queryset
|
||||
|
|
@ -1,9 +1,11 @@
|
|||
"""Tag views."""
|
||||
from django.conf import settings
|
||||
from rest_framework import permissions
|
||||
from rest_framework import viewsets, mixins, status, generics
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
|
||||
from tag import filters, models, serializers
|
||||
from rest_framework import permissions
|
||||
|
||||
|
||||
class ChosenTagsView(generics.ListAPIView, viewsets.GenericViewSet):
|
||||
|
|
@ -21,6 +23,23 @@ class ChosenTagsView(generics.ListAPIView, viewsets.GenericViewSet):
|
|||
.filter(id__in=result_tags_ids) \
|
||||
.order_by_priority()
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
# TMP TODO remove it later
|
||||
# Временный хардкод для демонстрации 4 ноября, потом удалить!
|
||||
queryset = self.filter_queryset(self.get_queryset())
|
||||
|
||||
page = self.paginate_queryset(queryset)
|
||||
if page is not None:
|
||||
serializer = self.get_serializer(page, many=True)
|
||||
return self.get_paginated_response(serializer.data)
|
||||
|
||||
serializer = self.get_serializer(queryset, many=True)
|
||||
result_list = serializer.data
|
||||
if request.query_params.get('type') and (settings.ESTABLISHMENT_CHOSEN_TAGS or settings.NEWS_CHOSEN_TAGS):
|
||||
ordered_list = settings.ESTABLISHMENT_CHOSEN_TAGS if request.query_params.get('type') == 'establishment' else settings.NEWS_CHOSEN_TAGS
|
||||
result_list = sorted(result_list, key=lambda x: ordered_list.index(x['index_name']))
|
||||
return Response(result_list)
|
||||
|
||||
|
||||
# User`s views & viewsets
|
||||
class TagCategoryViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
|
||||
|
|
|
|||
|
|
@ -490,3 +490,8 @@ PHONENUMBER_DB_FORMAT = 'NATIONAL'
|
|||
PHONENUMBER_DEFAULT_REGION = "FR"
|
||||
|
||||
FALLBACK_LOCALE = 'en-GB'
|
||||
|
||||
# TMP TODO remove it later
|
||||
# Временный хардкод для демонстрации 4 ноября, потом удалить!
|
||||
ESTABLISHMENT_CHOSEN_TAGS = ['gastronomic', 'en_vogue', 'terrace', 'streetfood', 'business', 'bar_cocktail', 'brunch', 'pop']
|
||||
NEWS_CHOSEN_TAGS = ['test']
|
||||
Loading…
Reference in New Issue
Block a user