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.
 
 
 
 
 
 

64 lines
2.7 KiB

from urllib.parse import urlparse, urlunparse
from rest_framework import serializers
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_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()
class Meta:
model = Config
fields = (
'SERVICE_INSTAGRAM_URL',
'SERVICE_TWITTER_URL',
'SERVICE_FB_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',
)
def get_SCHOOL_LOGO_IMAGE(self, config):
request = self.context.get('request')
http_host = request.META.get('HTTP_ORIGIN')
if http_host and config.SCHOOL_LOGO_IMAGE:
domain = urlparse(http_host).netloc.split(':')[0]
SCHOOL_LOGO_IMAGE_url = 'http://' + domain + config.SCHOOL_LOGO_IMAGE.url
return SCHOOL_LOGO_IMAGE_url
else:
return None
def get_MAIN_PAGE_TOP_IMAGE(self, config):
request = self.context.get('request')
http_host = request.META.get('HTTP_ORIGIN')
if http_host and config.MAIN_PAGE_TOP_IMAGE:
domain = urlparse(http_host).netloc.split(':')[0]
MAIN_PAGE_TOP_IMAGE_url = 'http://' + domain + config.MAIN_PAGE_TOP_IMAGE.url
return MAIN_PAGE_TOP_IMAGE_url
else:
return None