From 51da45b00ba5518319855b6d0cded477cfd6ddf8 Mon Sep 17 00:00:00 2001 From: Anatoly Date: Tue, 10 Dec 2019 13:08:28 +0300 Subject: [PATCH] refactoring --- apps/establishment/models.py | 37 +++++++++++++++++++++---------- apps/establishment/urls/common.py | 2 +- apps/establishment/views/web.py | 8 +++---- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/apps/establishment/models.py b/apps/establishment/models.py index 68e09eb3..9ecf38c2 100644 --- a/apps/establishment/models.py +++ b/apps/establishment/models.py @@ -224,12 +224,12 @@ class EstablishmentQuerySet(models.QuerySet): .filter(**filters) \ .annotate_distance(point=establishment.location) - def similar_restaurants(self, restaurant_slug): + def similar_restaurants(self, slug): """ Return QuerySet with objects that similar to Restaurant. :param restaurant_slug: str Establishment slug """ - restaurant_qs = self.filter(slug=restaurant_slug, + restaurant_qs = self.filter(slug=slug, public_mark__isnull=False) if restaurant_qs.exists(): establishment = restaurant_qs.first() @@ -260,12 +260,12 @@ class EstablishmentQuerySet(models.QuerySet): """ return self.filter(wine_origin__wine_sub_region=wine_sub_region).distinct() - def similar_wineries(self, winery_slug: str): + def similar_wineries(self, slug: str): """ Return QuerySet with objects that similar to Winery. :param establishment_slug: str Establishment slug """ - winery_qs = self.filter(slug=winery_slug) + winery_qs = self.filter(slug=slug) if winery_qs.exists(): winery = winery_qs.first() return self.similar_base(winery) \ @@ -276,7 +276,7 @@ class EstablishmentQuerySet(models.QuerySet): .distinct('distance', 'wine_origins__wine_region', 'wine_origins__wine_sub_region', 'id') else: - self.none() + return self.none() def last_reviewed(self, point: Point): """ @@ -498,15 +498,9 @@ class Establishment(GalleryModelMixin, ProjectBaseMixin, URLImageMixin, def visible_tags(self): return super().visible_tags \ .exclude(category__index_name__in=['guide', 'collection', 'purchased_item', - 'business_tag', 'business_tags_de']) \ - .exclude(value__in=['rss', 'rss_selection']) + 'business_tag', 'business_tags_de', 'tag']) # todo: recalculate toque_number - @property - def visible_tags_detail(self): - """Removes some tags from detail Establishment representation""" - return self.visible_tags.exclude(category__index_name__in=['tag']) - def recalculate_toque_number(self): toque_number = 0 if self.address and self.public_mark: @@ -871,6 +865,25 @@ class ContactEmail(models.Model): return f'{self.email}' +# +# class Wine(TranslatedFieldsMixin, models.Model): +# """Wine model.""" +# establishment = models.ForeignKey( +# 'establishment.Establishment', verbose_name=_('establishment'), +# on_delete=models.CASCADE) +# bottles = models.IntegerField(_('bottles')) +# price_min = models.DecimalField( +# _('price min'), max_digits=14, decimal_places=2) +# price_max = models.DecimalField( +# _('price max'), max_digits=14, decimal_places=2) +# by_glass = models.BooleanField(_('by glass')) +# price_glass_min = models.DecimalField( +# _('price min'), max_digits=14, decimal_places=2) +# price_glass_max = models.DecimalField( +# _('price max'), max_digits=14, decimal_places=2) +# + + class Plate(TranslatedFieldsMixin, models.Model): """Plate model.""" STR_FIELD_NAME = 'name' diff --git a/apps/establishment/urls/common.py b/apps/establishment/urls/common.py index 5821a4c6..68ba2b16 100644 --- a/apps/establishment/urls/common.py +++ b/apps/establishment/urls/common.py @@ -18,7 +18,7 @@ urlpatterns = [ name='create-destroy-favorites'), # similar establishments - path('slug//similar/restaurants/', views.RestaurantSimilarListView.as_view(), + path('slug//similar/', views.RestaurantSimilarListView.as_view(), name='similar-restaurants'), path('slug//similar/wineries/', views.WinerySimilarListView.as_view(), name='similar-restaurants'), diff --git a/apps/establishment/views/web.py b/apps/establishment/views/web.py index eae34789..9e6dc026 100644 --- a/apps/establishment/views/web.py +++ b/apps/establishment/views/web.py @@ -88,8 +88,8 @@ class RestaurantSimilarListView(EstablishmentSimilarList): def get_queryset(self): """Override get_queryset method""" - qs = super().get_queryset() - return qs.similar_restaurants(restaurant_slug=self.kwargs.get('slug')) + return EstablishmentMixinView.get_queryset(self) \ + .similar_restaurants(slug=self.kwargs.get('slug')) class WinerySimilarListView(EstablishmentSimilarList): @@ -97,8 +97,8 @@ class WinerySimilarListView(EstablishmentSimilarList): def get_queryset(self): """Override get_queryset method""" - qs = super().get_queryset() - return qs.similar_wineries(winery_slug=self.kwargs.get('slug')) + return EstablishmentMixinView.get_queryset(self) \ + .similar_wineries(slug=self.kwargs.get('slug')) class EstablishmentTypeListView(generics.ListAPIView):