refactored transfer ads
This commit is contained in:
parent
6c82af1940
commit
c725da6a9b
|
|
@ -14,8 +14,6 @@ class AdvertisementSerializer(serializers.ModelSerializer):
|
||||||
href = serializers.CharField()
|
href = serializers.CharField()
|
||||||
site_id = serializers.PrimaryKeyRelatedField(
|
site_id = serializers.PrimaryKeyRelatedField(
|
||||||
queryset=Sites.objects.all())
|
queryset=Sites.objects.all())
|
||||||
start_at = serializers.DateTimeField(allow_null=True)
|
|
||||||
expire_at = serializers.DateTimeField(allow_null=True)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
"""Meta class."""
|
"""Meta class."""
|
||||||
|
|
@ -24,29 +22,27 @@ class AdvertisementSerializer(serializers.ModelSerializer):
|
||||||
'id',
|
'id',
|
||||||
'href',
|
'href',
|
||||||
'site_id',
|
'site_id',
|
||||||
'start_at',
|
|
||||||
'expire_at',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
def validate(self, data):
|
def validate(self, data):
|
||||||
data.update({
|
data.update({
|
||||||
'old_id': data.pop('id'),
|
'old_id': data.pop('id'),
|
||||||
'url': data.pop('href'),
|
'url': data.pop('href'),
|
||||||
'site': self.get_site(data.pop('site_id')),
|
'site_settings': self.get_site_settings(data.pop('site_id')),
|
||||||
'start': data.pop('start_at', None),
|
|
||||||
'end': data.pop('expire_at', None),
|
|
||||||
})
|
})
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
site = validated_data.pop('site')
|
site = validated_data.pop('site_settings')
|
||||||
obj, _ = self.Meta.model.objects.get_or_create(validated_data)
|
url = validated_data.get('url')
|
||||||
|
|
||||||
|
obj, _ = self.Meta.model.objects.get_or_create(url=url, defaults=validated_data)
|
||||||
|
|
||||||
if site and site not in obj.sites.all():
|
if site and site not in obj.sites.all():
|
||||||
obj.sites.add(site)
|
obj.sites.add(site)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
def get_site(self, subdomain):
|
def get_site_settings(self, subdomain):
|
||||||
subdomain = subdomain.country_code_2 if isinstance(subdomain, Sites) else subdomain
|
subdomain = subdomain.country_code_2 if isinstance(subdomain, Sites) else subdomain
|
||||||
qs = SiteSettings.objects.filter(subdomain=subdomain)
|
qs = SiteSettings.objects.filter(subdomain=subdomain)
|
||||||
if qs.exists():
|
if qs.exists():
|
||||||
|
|
@ -89,5 +85,5 @@ class AdvertisementImageSerializer(AdvertisementSerializer):
|
||||||
image_url = validated_data.get('image_url')
|
image_url = validated_data.get('image_url')
|
||||||
|
|
||||||
if advertisement and image_url:
|
if advertisement and image_url:
|
||||||
Page.objects.get_or_create(advertisement=advertisement, image_url=image_url, source=Page.MOBILE)
|
self.Meta.model.objects.get_or_create(source=Page.MOBILE, **validated_data)
|
||||||
Page.objects.get_or_create(advertisement=advertisement, image_url=image_url, source=Page.WEB)
|
self.Meta.model.objects.get_or_create(source=Page.WEB, **validated_data)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user