Merge branch 'develop' into feature/guides

This commit is contained in:
Anatoly 2019-12-30 13:23:28 +03:00
commit cb6834b3c0
4 changed files with 28 additions and 16 deletions

View File

@ -7,7 +7,7 @@ from django.dispatch import receiver
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from functools import reduce from functools import reduce
from typing import List from typing import List
from django.contrib.postgres.fields.jsonb import KeyTextTransform
from django.contrib.postgres.fields import ArrayField from django.contrib.postgres.fields import ArrayField
@ -81,19 +81,22 @@ class RegionQuerySet(models.QuerySet):
def without_parent_region(self, switcher: bool = True): def without_parent_region(self, switcher: bool = True):
"""Filter regions by parent region.""" """Filter regions by parent region."""
return self.filter(parent_region__isnull=switcher) return self.filter(parent_region__isnull=switcher)\
.order_by('name')
def by_region_id(self, region_id): def by_region_id(self, region_id):
"""Filter regions by region id.""" """Filter regions by region id."""
return self.filter(id=region_id) return self.filter(id=region_id)\
.order_by('name')
def by_sub_region_id(self, sub_region_id): def by_sub_region_id(self, sub_region_id):
"""Filter sub regions by sub region id.""" """Filter sub regions by sub region id."""
return self.filter(parent_region_id=sub_region_id) return self.filter(parent_region_id=sub_region_id)\
.order_by('name')
def sub_regions_by_region_id(self, region_id): def sub_regions_by_region_id(self, region_id):
"""Filter regions by sub region id.""" """Filter regions by sub region id."""
return self.filter(parent_region_id=region_id) return self.filter(parent_region_id=region_id).order_by('name')
class Region(models.Model): class Region(models.Model):

View File

@ -1,5 +1,7 @@
"""Location app views.""" """Location app views."""
from rest_framework import generics from rest_framework import generics
from django.contrib.postgres.fields.jsonb import KeyTextTransform
from utils.models import get_current_locale
from location import models, serializers from location import models, serializers
from location.views import common from location.views import common
@ -36,12 +38,13 @@ class CityListCreateView(common.CityViewMixin, generics.ListCreateAPIView):
"""Create view for model City.""" """Create view for model City."""
serializer_class = serializers.CitySerializer serializer_class = serializers.CitySerializer
permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin]
# queryset = models.City.objects.all() queryset = models.City.objects.all()
filter_class = filters.CityBackFilter filter_class = filters.CityBackFilter
def get_queryset(self): def get_queryset(self):
"""Overridden method 'get_queryset'.""" """Overridden method 'get_queryset'."""
qs = models.City.objects.all() qs = models.City.objects.all().annotate(locale_name=KeyTextTransform(get_current_locale(), 'name_translated'))\
.order_by('locale_name')
if self.request.country_code: if self.request.country_code:
qs = qs.by_country_code(self.request.country_code) qs = qs.by_country_code(self.request.country_code)
return qs return qs
@ -51,7 +54,9 @@ class CityListSearchView(common.CityViewMixin, generics.ListCreateAPIView):
"""Create view for model City.""" """Create view for model City."""
serializer_class = serializers.CitySerializer serializer_class = serializers.CitySerializer
permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin]
queryset = models.City.objects.all() queryset = models.City.objects.all()\
.annotate(locale_name=KeyTextTransform(get_current_locale(), 'name_translated'))\
.order_by('locale_name')
filter_class = filters.CityBackFilter filter_class = filters.CityBackFilter
pagination_class = None pagination_class = None
@ -119,7 +124,7 @@ class RegionListCreateView(common.RegionViewMixin, generics.ListCreateAPIView):
pagination_class = None pagination_class = None
serializer_class = serializers.RegionSerializer serializer_class = serializers.RegionSerializer
permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin]
ordering_fields = '__all__' # ordering_fields = 'name'
filter_class = RegionFilter filter_class = RegionFilter
@ -132,7 +137,9 @@ class RegionRUDView(common.RegionViewMixin, generics.RetrieveUpdateDestroyAPIVie
# Country # Country
class CountryListCreateView(generics.ListCreateAPIView): class CountryListCreateView(generics.ListCreateAPIView):
"""List/Create view for model Country.""" """List/Create view for model Country."""
queryset = models.Country.objects.all() queryset = models.Country.objects.all()\
.annotate(locale_name=KeyTextTransform(get_current_locale(), 'name'))\
.order_by('locale_name')
serializer_class = serializers.CountryBackSerializer serializer_class = serializers.CountryBackSerializer
pagination_class = None pagination_class = None
permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin] permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin]

View File

@ -240,8 +240,3 @@ class ProductGuideElementSerializer(ProductBaseSerializer):
class Meta(ProductBaseSerializer.Meta): class Meta(ProductBaseSerializer.Meta):
"""Meta class.""" """Meta class."""
_unused_fields = ('tags', 'wine_regions', 'wine_colors', 'preview_image_url')
fields = ProductBaseSerializer.Meta.fields
# pop unused fields
for unused_field in _unused_fields: fields.pop(fields.index(unused_field))

View File

@ -20,4 +20,11 @@
./manage.py transfer --assemblage ./manage.py transfer --assemblage
./manage.py transfer --purchased_plaques ./manage.py transfer --purchased_plaques
./manage.py rm_empty_images ./manage.py rm_empty_images
./manage.py add_artisan_subtype # добавляет подтипы для заведений артизанов ./manage.py add_artisan_subtype # добавляет подтипы для заведений артизанов
# review и переводы для них
./manage.py transfer --languages
./manage.py transfer --overlook
./manage.py transfer --inquiries
./manage.py transfer --product_review
./manage.py transfer --transfer_text_review