from urllib.parse import urlparse, urlunparse from rest_framework import serializers from django.conf import settings from apps.config.models import Config class ConfigSerializer(serializers.ModelSerializer): SERVICE_INSTAGRAM_URL = serializers.URLField(required=False) SERVICE_TWITTER_URL = serializers.URLField(required=False) SERVICE_FB_URL = serializers.URLField(required=False) SERVICE_YOUTUBE_URL = serializers.URLField(required=False) SERVICE_OK_URL = serializers.URLField(required=False) SERVICE_VK_URL = serializers.URLField(required=False) SERVICE_TELEGRAM_CHANNEL = serializers.URLField(required=False) SERVICE_COMMISSION = serializers.IntegerField(required=False) SERVICE_DISCOUNT_MIN_AMOUNT = serializers.IntegerField(required=False) SERVICE_DISCOUNT = serializers.IntegerField(required=False) INSTAGRAM_CLIENT_ACCESS_TOKEN = serializers.CharField(required=False) INSTAGRAM_CLIENT_SECRET = serializers.CharField(required=False) INSTAGRAM_PROFILE_URL = serializers.CharField(required=False) SCHOOL_LOGO_IMAGE = serializers.SerializerMethodField() MAIN_PAGE_TOP_IMAGE = serializers.SerializerMethodField() # SCHOOL_LOGO_IMAGE = serializers.ImageField(required=False, allow_null=True) # MAIN_PAGE_TOP_IMAGE = serializers.ImageField(required=False, allow_null=True) REFERRER_BONUS = serializers.IntegerField() REFERRAL_BONUS = serializers.IntegerField() MAIN_PAGE_VIDEO_URL = serializers.CharField(required=False) MAIN_PAGE_VIDEO_PREVIEW_IMG = serializers.SerializerMethodField() NUMBER_OF_STUDENTS = serializers.IntegerField() NUMBER_OF_COUNTRIES = serializers.IntegerField() NUMBER_OF_CITIES = serializers.IntegerField() FREE_LESSONS_VIDEO_URL = serializers.CharField(required=False) FREE_LESSONS_VIDEO_PREVIEW_IMG = serializers.SerializerMethodField(required=False) class Meta: model = Config fields = ( 'SERVICE_INSTAGRAM_URL', 'SERVICE_TWITTER_URL', 'SERVICE_FB_URL', 'SERVICE_OK_URL', 'SERVICE_VK_URL', 'SERVICE_YOUTUBE_URL', 'SERVICE_TELEGRAM_CHANNEL', 'SERVICE_COMMISSION', 'SERVICE_DISCOUNT_MIN_AMOUNT', 'SERVICE_DISCOUNT', 'INSTAGRAM_CLIENT_ACCESS_TOKEN', 'INSTAGRAM_CLIENT_SECRET', 'INSTAGRAM_PROFILE_URL', 'SCHOOL_LOGO_IMAGE', 'MAIN_PAGE_TOP_IMAGE', 'REFERRER_BONUS', 'REFERRAL_BONUS', 'MAIN_PAGE_VIDEO_URL', 'MAIN_PAGE_VIDEO_PREVIEW_IMG', 'NUMBER_OF_STUDENTS', 'NUMBER_OF_COUNTRIES', 'NUMBER_OF_CITIES', 'FREE_LESSONS_VIDEO_URL', 'FREE_LESSONS_VIDEO_PREVIEW_IMG', ) def get_SCHOOL_LOGO_IMAGE(self, config): if config.SCHOOL_LOGO_IMAGE: return 'http://' + settings.MAIN_HOST + config.SCHOOL_LOGO_IMAGE.url else: return None def get_MAIN_PAGE_TOP_IMAGE(self, config): if config.MAIN_PAGE_TOP_IMAGE: return 'http://' + settings.MAIN_HOST + config.MAIN_PAGE_TOP_IMAGE.url else: return None def get_MAIN_PAGE_VIDEO_PREVIEW_IMG(self, config): if config.MAIN_PAGE_VIDEO_PREVIEW_IMG: return 'http://' + settings.MAIN_HOST + config.MAIN_PAGE_VIDEO_PREVIEW_IMG.url else: return None def get_FREE_LESSONS_VIDEO_PREVIEW_IMG(self, config): if config.FREE_LESSONS_VIDEO_PREVIEW_IMG: return 'http://' + settings.MAIN_HOST + config.FREE_LESSONS_VIDEO_PREVIEW_IMG.url else: return None