fix positions by establishment type/subtype

This commit is contained in:
Kuroshini 2020-02-04 15:42:15 +03:00
parent 9982c2ca77
commit 5aa74ff7c9
2 changed files with 6 additions and 4 deletions

View File

@ -173,5 +173,5 @@ class PositionsByEstablishmentFilter(filters.FilterSet):
def by_subtype(self, queryset, name, value):
"""filter by establishment subtype"""
if value not in EMPTY_VALUES:
return queryset.by_establishment_subtype(value)
return queryset.by_establishment_subtypes(value.split('__'))
return queryset

View File

@ -970,10 +970,12 @@ class EstablishmentGallery(IntermediateGalleryModelMixin):
class PositionQuerySet(models.QuerySet):
def by_establishment_type(self, value: str):
return self.filter(establishment_type__index_name=value)
return self.filter(Q(establishment_type__index_name=value) |
Q(establishment_type__isnull=True, establishment_subtype__isnull=True))
def by_establishment_subtype(self, value: str):
return self.filter(establishment_subtype__index_name=value)
def by_establishment_subtypes(self, value: List[str]):
return self.filter(Q(establishment_subtype__index_name__in=value) |
Q(establishment_type__isnull=True, establishment_subtype__isnull=True))
class Position(BaseAttributes, TranslatedFieldsMixin):