Merge branch 'feature/establishment_fields' into 'develop'

added new fields

See merge request gm/gm-backend!259
This commit is contained in:
Олег Хаятов 2020-02-04 11:34:44 +00:00
commit d5b5149fb0
4 changed files with 45 additions and 3 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.7 on 2020-02-04 11:20
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('establishment', '0092_merge_20200131_0835'),
]
operations = [
migrations.AlterField(
model_name='establishment',
name='status',
field=models.PositiveSmallIntegerField(choices=[(0, 'Abandoned'), (1, 'Closed'), (2, 'Published'), (3, 'Unpicked'), (4, 'Waiting'), (5, 'Hidden'), (6, 'Deleted'), (7, 'Out of selection'), (8, 'Unpublished')], default=4, verbose_name='Status'),
),
]

View File

@ -135,6 +135,10 @@ class EstablishmentQuerySet(models.QuerySet):
"""Return qs with related schedule.""" """Return qs with related schedule."""
return self.prefetch_related('schedule') return self.prefetch_related('schedule')
def with_reviews(self):
"""Return qs with related reviews."""
return self.prefetch_related('reviews')
def with_currency_related(self): def with_currency_related(self):
"""Return qs with related """ """Return qs with related """
return self.prefetch_related('currency') return self.prefetch_related('currency')
@ -554,6 +558,10 @@ class Establishment(GalleryMixin, ProjectBaseMixin, URLImageMixin,
PUBLISHED = 2 PUBLISHED = 2
UNPICKED = 3 UNPICKED = 3
WAITING = 4 WAITING = 4
HIDDEN = 5
DELETED = 6
OUT_OF_SELECTION = 7
UNPUBLISHED = 8
STATUS_CHOICES = ( STATUS_CHOICES = (
(ABANDONED, _('Abandoned')), (ABANDONED, _('Abandoned')),
@ -561,6 +569,10 @@ class Establishment(GalleryMixin, ProjectBaseMixin, URLImageMixin,
(PUBLISHED, _('Published')), (PUBLISHED, _('Published')),
(UNPICKED, _('Unpicked')), (UNPICKED, _('Unpicked')),
(WAITING, _('Waiting')), (WAITING, _('Waiting')),
(HIDDEN, _('Hidden')),
(DELETED, _('Deleted')),
(OUT_OF_SELECTION, _('Out of selection')),
(UNPUBLISHED, _('Unpublished')),
) )
old_id = models.PositiveIntegerField(_('old id'), blank=True, null=True, default=None) old_id = models.PositiveIntegerField(_('old id'), blank=True, null=True, default=None)
@ -853,6 +865,10 @@ class Establishment(GalleryMixin, ProjectBaseMixin, URLImageMixin,
def distillery_type_indexing(self): def distillery_type_indexing(self):
return self.tags.filter(category__index_name='distillery_type') return self.tags.filter(category__index_name='distillery_type')
@property
def food_producer_indexing(self):
return self.tags.filter(category__index_name='producer_type')
@property @property
def last_comment(self): def last_comment(self):
if hasattr(self, 'comments_prefetched') and len(self.comments_prefetched): if hasattr(self, 'comments_prefetched') and len(self.comments_prefetched):

View File

@ -15,7 +15,7 @@ from location.serializers import (
EstablishmentWineRegionBaseSerializer, EstablishmentWineRegionBaseSerializer,
) )
from main.serializers import AwardSerializer, CurrencySerializer from main.serializers import AwardSerializer, CurrencySerializer
from review.serializers import ReviewShortSerializer from review.serializers import ReviewShortSerializer, ReviewBaseSerializer
from tag.serializers import TagBaseSerializer from tag.serializers import TagBaseSerializer
from timetable.serialziers import ScheduleRUDSerializer from timetable.serialziers import ScheduleRUDSerializer
from utils import exceptions as utils_exceptions from utils import exceptions as utils_exceptions
@ -408,6 +408,8 @@ class EstablishmentListRetrieveSerializer(EstablishmentBaseSerializer):
restaurant_cuisine = TagBaseSerializer(read_only=True, many=True, allow_null=True) restaurant_cuisine = TagBaseSerializer(read_only=True, many=True, allow_null=True)
artisan_category = TagBaseSerializer(read_only=True, many=True, allow_null=True) artisan_category = TagBaseSerializer(read_only=True, many=True, allow_null=True)
distillery_type = TagBaseSerializer(read_only=True, many=True, allow_null=True) distillery_type = TagBaseSerializer(read_only=True, many=True, allow_null=True)
food_producer = TagBaseSerializer(read_only=True, many=True, allow_null=True)
reviews = ReviewBaseSerializer(read_only=True, many=True)
class Meta(EstablishmentBaseSerializer.Meta): class Meta(EstablishmentBaseSerializer.Meta):
"""Meta class.""" """Meta class."""
@ -418,6 +420,11 @@ class EstablishmentListRetrieveSerializer(EstablishmentBaseSerializer):
'restaurant_cuisine', 'restaurant_cuisine',
'artisan_category', 'artisan_category',
'distillery_type', 'distillery_type',
'food_producer',
'vintage_year',
'reviews',
'contact_phones',
'public_mark'
] ]

View File

@ -33,12 +33,13 @@ class EstablishmentListView(EstablishmentMixinView, generics.ListAPIView):
serializer_class = serializers.EstablishmentListRetrieveSerializer serializer_class = serializers.EstablishmentListRetrieveSerializer
def get_queryset(self): def get_queryset(self):
return super().get_queryset().with_schedule() \ return super().get_queryset().with_schedule().with_reviews() \
.with_extended_address_related().with_currency_related() \ .with_extended_address_related().with_currency_related() \
.with_certain_tag_category_related('category', 'restaurant_category') \ .with_certain_tag_category_related('category', 'restaurant_category') \
.with_certain_tag_category_related('cuisine', 'restaurant_cuisine') \ .with_certain_tag_category_related('cuisine', 'restaurant_cuisine') \
.with_certain_tag_category_related('shop_category', 'artisan_category') \ .with_certain_tag_category_related('shop_category', 'artisan_category') \
.with_certain_tag_category_related('distillery_type', 'distillery_type') .with_certain_tag_category_related('distillery_type', 'distillery_type') \
.with_certain_tag_category_related('food_producer', 'producer_type')
class EstablishmentSimilarView(EstablishmentListView): class EstablishmentSimilarView(EstablishmentListView):