Merge branch 'feature/transfer-ad' into develop
# Conflicts: # apps/advertisement/transfer_data.py # apps/transfer/serializers/advertisement.py
This commit is contained in:
commit
6c82af1940
|
|
@ -1,7 +1,7 @@
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
from transfer.models import Ads
|
from transfer.models import Ads
|
||||||
from transfer.serializers.advertisement import AdvertisementSerializer
|
from transfer.serializers.advertisement import AdvertisementSerializer, AdvertisementImageSerializer
|
||||||
|
|
||||||
|
|
||||||
def transfer_advertisement():
|
def transfer_advertisement():
|
||||||
|
|
@ -19,6 +19,24 @@ def transfer_advertisement():
|
||||||
pprint(f"transfer_product errors: {errors}")
|
pprint(f"transfer_product errors: {errors}")
|
||||||
|
|
||||||
|
|
||||||
|
def transfer_page():
|
||||||
|
errors = []
|
||||||
|
queryset = Ads.objects.exclude(href__isnull=True) \
|
||||||
|
.exclude(attachment_suffix_url__isnull=True) \
|
||||||
|
.exclude(site_id__isnull=True)
|
||||||
|
|
||||||
|
serialized_data = AdvertisementImageSerializer(data=list(queryset.values()), many=True)
|
||||||
|
|
||||||
|
if serialized_data.is_valid():
|
||||||
|
serialized_data.save()
|
||||||
|
else:
|
||||||
|
for d in serialized_data.errors: errors.append(d) if d else None
|
||||||
|
pprint(f"transfer_page errors: {errors}")
|
||||||
|
|
||||||
|
|
||||||
data_types = {
|
data_types = {
|
||||||
"commercial": [transfer_advertisement]
|
"commercial": [
|
||||||
|
transfer_advertisement,
|
||||||
|
transfer_page
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from main.models import SiteSettings
|
from main.models import SiteSettings
|
||||||
|
|
||||||
from transfer.models import Sites
|
from transfer.models import Sites, Ads
|
||||||
from advertisement.models import Advertisement
|
from advertisement.models import Advertisement
|
||||||
|
from main.models import Page
|
||||||
|
import requests
|
||||||
|
from rest_framework import status
|
||||||
|
|
||||||
|
|
||||||
class AdvertisementSerializer(serializers.ModelSerializer):
|
class AdvertisementSerializer(serializers.ModelSerializer):
|
||||||
|
|
@ -48,3 +51,43 @@ class AdvertisementSerializer(serializers.ModelSerializer):
|
||||||
qs = SiteSettings.objects.filter(subdomain=subdomain)
|
qs = SiteSettings.objects.filter(subdomain=subdomain)
|
||||||
if qs.exists():
|
if qs.exists():
|
||||||
return qs.first()
|
return qs.first()
|
||||||
|
|
||||||
|
|
||||||
|
class AdvertisementImageSerializer(AdvertisementSerializer):
|
||||||
|
|
||||||
|
attachment_suffix_url = serializers.CharField()
|
||||||
|
|
||||||
|
class Meta(AdvertisementSerializer.Meta):
|
||||||
|
model = Page
|
||||||
|
fields = [
|
||||||
|
'id',
|
||||||
|
'attachment_suffix_url',
|
||||||
|
]
|
||||||
|
|
||||||
|
def validate(self, data):
|
||||||
|
data.update({
|
||||||
|
'image_url': self.get_absolute_image_url(data.pop('attachment_suffix_url')),
|
||||||
|
'advertisement': self.get_advertisement(data.pop('id')),
|
||||||
|
})
|
||||||
|
return data
|
||||||
|
|
||||||
|
def get_advertisement(self, old_id):
|
||||||
|
qs = Advertisement.objects.filter(old_id=old_id)
|
||||||
|
if qs.exists():
|
||||||
|
return qs.first()
|
||||||
|
|
||||||
|
def get_absolute_image_url(self, relative_path):
|
||||||
|
if relative_path:
|
||||||
|
absolute_image_url = f'https://1dc3f33f6d-3.optimicdn.com/gaultmillau.com/' \
|
||||||
|
f'{relative_path}'
|
||||||
|
response = requests.head(absolute_image_url)
|
||||||
|
if response.status_code == status.HTTP_200_OK:
|
||||||
|
return absolute_image_url
|
||||||
|
|
||||||
|
def create(self, validated_data):
|
||||||
|
advertisement = validated_data.get('advertisement')
|
||||||
|
image_url = validated_data.get('image_url')
|
||||||
|
|
||||||
|
if advertisement and image_url:
|
||||||
|
Page.objects.get_or_create(advertisement=advertisement, image_url=image_url, source=Page.MOBILE)
|
||||||
|
Page.objects.get_or_create(advertisement=advertisement, image_url=image_url, source=Page.WEB)
|
||||||
Loading…
Reference in New Issue
Block a user