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