refactoring

This commit is contained in:
Anatoly 2019-12-10 13:08:28 +03:00
parent 439fb17778
commit 51da45b00b
3 changed files with 30 additions and 17 deletions

View File

@ -224,12 +224,12 @@ class EstablishmentQuerySet(models.QuerySet):
.filter(**filters) \ .filter(**filters) \
.annotate_distance(point=establishment.location) .annotate_distance(point=establishment.location)
def similar_restaurants(self, restaurant_slug): def similar_restaurants(self, slug):
""" """
Return QuerySet with objects that similar to Restaurant. Return QuerySet with objects that similar to Restaurant.
:param restaurant_slug: str Establishment slug :param restaurant_slug: str Establishment slug
""" """
restaurant_qs = self.filter(slug=restaurant_slug, restaurant_qs = self.filter(slug=slug,
public_mark__isnull=False) public_mark__isnull=False)
if restaurant_qs.exists(): if restaurant_qs.exists():
establishment = restaurant_qs.first() establishment = restaurant_qs.first()
@ -260,12 +260,12 @@ class EstablishmentQuerySet(models.QuerySet):
""" """
return self.filter(wine_origin__wine_sub_region=wine_sub_region).distinct() 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. Return QuerySet with objects that similar to Winery.
:param establishment_slug: str Establishment slug :param establishment_slug: str Establishment slug
""" """
winery_qs = self.filter(slug=winery_slug) winery_qs = self.filter(slug=slug)
if winery_qs.exists(): if winery_qs.exists():
winery = winery_qs.first() winery = winery_qs.first()
return self.similar_base(winery) \ return self.similar_base(winery) \
@ -276,7 +276,7 @@ class EstablishmentQuerySet(models.QuerySet):
.distinct('distance', 'wine_origins__wine_region', .distinct('distance', 'wine_origins__wine_region',
'wine_origins__wine_sub_region', 'id') 'wine_origins__wine_sub_region', 'id')
else: else:
self.none() return self.none()
def last_reviewed(self, point: Point): def last_reviewed(self, point: Point):
""" """
@ -498,15 +498,9 @@ class Establishment(GalleryModelMixin, ProjectBaseMixin, URLImageMixin,
def visible_tags(self): def visible_tags(self):
return super().visible_tags \ return super().visible_tags \
.exclude(category__index_name__in=['guide', 'collection', 'purchased_item', .exclude(category__index_name__in=['guide', 'collection', 'purchased_item',
'business_tag', 'business_tags_de']) \ 'business_tag', 'business_tags_de', 'tag'])
.exclude(value__in=['rss', 'rss_selection'])
# todo: recalculate toque_number # 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): def recalculate_toque_number(self):
toque_number = 0 toque_number = 0
if self.address and self.public_mark: if self.address and self.public_mark:
@ -871,6 +865,25 @@ class ContactEmail(models.Model):
return f'{self.email}' 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): class Plate(TranslatedFieldsMixin, models.Model):
"""Plate model.""" """Plate model."""
STR_FIELD_NAME = 'name' STR_FIELD_NAME = 'name'

View File

@ -18,7 +18,7 @@ urlpatterns = [
name='create-destroy-favorites'), name='create-destroy-favorites'),
# similar establishments # similar establishments
path('slug/<slug:slug>/similar/restaurants/', views.RestaurantSimilarListView.as_view(), path('slug/<slug:slug>/similar/', views.RestaurantSimilarListView.as_view(),
name='similar-restaurants'), name='similar-restaurants'),
path('slug/<slug:slug>/similar/wineries/', views.WinerySimilarListView.as_view(), path('slug/<slug:slug>/similar/wineries/', views.WinerySimilarListView.as_view(),
name='similar-restaurants'), name='similar-restaurants'),

View File

@ -88,8 +88,8 @@ class RestaurantSimilarListView(EstablishmentSimilarList):
def get_queryset(self): def get_queryset(self):
"""Override get_queryset method""" """Override get_queryset method"""
qs = super().get_queryset() return EstablishmentMixinView.get_queryset(self) \
return qs.similar_restaurants(restaurant_slug=self.kwargs.get('slug')) .similar_restaurants(slug=self.kwargs.get('slug'))
class WinerySimilarListView(EstablishmentSimilarList): class WinerySimilarListView(EstablishmentSimilarList):
@ -97,8 +97,8 @@ class WinerySimilarListView(EstablishmentSimilarList):
def get_queryset(self): def get_queryset(self):
"""Override get_queryset method""" """Override get_queryset method"""
qs = super().get_queryset() return EstablishmentMixinView.get_queryset(self) \
return qs.similar_wineries(winery_slug=self.kwargs.get('slug')) .similar_wineries(slug=self.kwargs.get('slug'))
class EstablishmentTypeListView(generics.ListAPIView): class EstablishmentTypeListView(generics.ListAPIView):