refactoring
This commit is contained in:
parent
3e0fad2139
commit
dc7a6a911a
|
|
@ -22,6 +22,10 @@ class AdvertisementQuerySet(models.QuerySet):
|
||||||
"""Filter Advertisement by page type."""
|
"""Filter Advertisement by page type."""
|
||||||
return self.filter(page_type__name=page_type)
|
return self.filter(page_type__name=page_type)
|
||||||
|
|
||||||
|
def by_country(self, code: str):
|
||||||
|
"""Filter Advertisement by country code."""
|
||||||
|
return self.filter(sites__country__code=code)
|
||||||
|
|
||||||
def by_locale(self, locale):
|
def by_locale(self, locale):
|
||||||
"""Filter by locale."""
|
"""Filter by locale."""
|
||||||
return self.filter(target_languages__locale=locale)
|
return self.filter(target_languages__locale=locale)
|
||||||
|
|
|
||||||
|
|
@ -11,14 +11,11 @@ from main.models import SiteSettings
|
||||||
class AdvertisementBaseSerializer(serializers.ModelSerializer):
|
class AdvertisementBaseSerializer(serializers.ModelSerializer):
|
||||||
"""Base serializer for model Advertisement."""
|
"""Base serializer for model Advertisement."""
|
||||||
|
|
||||||
languages = LanguageSerializer(many=True, read_only=True,
|
|
||||||
source='target_languages')
|
|
||||||
target_languages = serializers.PrimaryKeyRelatedField(
|
target_languages = serializers.PrimaryKeyRelatedField(
|
||||||
queryset=Language.objects.all(),
|
queryset=Language.objects.all(),
|
||||||
many=True,
|
many=True,
|
||||||
write_only=True
|
write_only=True
|
||||||
)
|
)
|
||||||
sites = SiteShortSerializer(many=True, read_only=True)
|
|
||||||
target_sites = serializers.PrimaryKeyRelatedField(
|
target_sites = serializers.PrimaryKeyRelatedField(
|
||||||
queryset=SiteSettings.objects.all(),
|
queryset=SiteSettings.objects.all(),
|
||||||
many=True,
|
many=True,
|
||||||
|
|
@ -33,9 +30,7 @@ class AdvertisementBaseSerializer(serializers.ModelSerializer):
|
||||||
'uuid',
|
'uuid',
|
||||||
'url',
|
'url',
|
||||||
'block_level',
|
'block_level',
|
||||||
'languages',
|
|
||||||
'target_languages',
|
'target_languages',
|
||||||
'sites',
|
|
||||||
'target_sites',
|
'target_sites',
|
||||||
'start',
|
'start',
|
||||||
'end',
|
'end',
|
||||||
|
|
|
||||||
|
|
@ -28,5 +28,8 @@ class AdvertisementPageTypeListView(AdvertisementBaseView, generics.ListAPIView)
|
||||||
product_type = self.kwargs.get('page_type')
|
product_type = self.kwargs.get('page_type')
|
||||||
qs = super(AdvertisementPageTypeListView, self).get_queryset()
|
qs = super(AdvertisementPageTypeListView, self).get_queryset()
|
||||||
if product_type:
|
if product_type:
|
||||||
return qs.by_page_type(product_type)
|
return qs.by_page_type(product_type) \
|
||||||
|
.by_country(self.request.country_code) \
|
||||||
|
.by_locale(self.request.locale) \
|
||||||
|
.distinct('id')
|
||||||
return qs.none()
|
return qs.none()
|
||||||
|
|
|
||||||
|
|
@ -7,3 +7,4 @@ class AdvertisementPageTypeWebListView(AdvertisementPageTypeListView):
|
||||||
"""Advertisement mobile list view."""
|
"""Advertisement mobile list view."""
|
||||||
|
|
||||||
serializer_class = AdvertisementPageTypeWebListSerializer
|
serializer_class = AdvertisementPageTypeWebListSerializer
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user