You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
3.6 KiB
87 lines
3.6 KiB
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
|
|
|