Merge branch 'develop' into feature/guides
This commit is contained in:
commit
cb6834b3c0
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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]
|
||||||
|
|
|
||||||
|
|
@ -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))
|
|
||||||
|
|
|
||||||
|
|
@ -21,3 +21,10 @@
|
||||||
./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
|
||||||
Loading…
Reference in New Issue
Block a user