Chosen tags for artisans
This commit is contained in:
parent
0d2f961ad5
commit
8641188c45
|
|
@ -52,11 +52,21 @@ class TagCategoryFilterSet(TagsBaseFilterSet):
|
||||||
class TagsFilterSet(TagsBaseFilterSet):
|
class TagsFilterSet(TagsBaseFilterSet):
|
||||||
"""Chosen tags filterset."""
|
"""Chosen tags filterset."""
|
||||||
|
|
||||||
|
establishment_type = filters.CharFilter(method='by_establishment_type')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
"""Meta class."""
|
"""Meta class."""
|
||||||
|
|
||||||
model = models.Tag
|
model = models.Tag
|
||||||
fields = ('type',)
|
fields = (
|
||||||
|
'type',
|
||||||
|
'establishment_type',
|
||||||
|
)
|
||||||
|
|
||||||
|
def by_establishment_type(self, queryset, name, value):
|
||||||
|
if value == EstablishmentType.ARTISAN:
|
||||||
|
return models.Tag.objects.by_category_index_name('shop_category')
|
||||||
|
return queryset.by_establishment_type(value)
|
||||||
|
|
||||||
# TMP TODO remove it later
|
# TMP TODO remove it later
|
||||||
# Временный хардкод для демонстрации 4 ноября, потом удалить!
|
# Временный хардкод для демонстрации 4 ноября, потом удалить!
|
||||||
|
|
@ -71,3 +81,4 @@ class TagsFilterSet(TagsBaseFilterSet):
|
||||||
queryset = queryset.for_establishments().filter(value__in=settings.ESTABLISHMENT_CHOSEN_TAGS).distinct(
|
queryset = queryset.for_establishments().filter(value__in=settings.ESTABLISHMENT_CHOSEN_TAGS).distinct(
|
||||||
'value')
|
'value')
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,15 @@ class TagQuerySet(models.QuerySet):
|
||||||
return self.filter(models.Q(category__establishment_types__isnull=False) |
|
return self.filter(models.Q(category__establishment_types__isnull=False) |
|
||||||
models.Q(category__establishment_subtypes__isnull=False))
|
models.Q(category__establishment_subtypes__isnull=False))
|
||||||
|
|
||||||
|
def by_category_index_name(self, index_name):
|
||||||
|
return self.filter(category__index_name=index_name)
|
||||||
|
|
||||||
def order_by_priority(self):
|
def order_by_priority(self):
|
||||||
return self.order_by('chosentagsettings__priority')
|
return self.order_by('chosentagsettings__priority')
|
||||||
|
|
||||||
|
def by_establishment_type(self, index_name):
|
||||||
|
return self.filter(category__establishment_types__index_name=index_name)
|
||||||
|
|
||||||
|
|
||||||
class Tag(TranslatedFieldsMixin, models.Model):
|
class Tag(TranslatedFieldsMixin, models.Model):
|
||||||
"""Tag model."""
|
"""Tag model."""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user