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.
 
 
 
 
 
 

53 lines
2.1 KiB

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_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)
class Meta:
model = Config
fields = (
'SERVICE_INSTAGRAM_URL',
'SERVICE_TWITTER_URL',
'SERVICE_FB_URL',
'SERVICE_YOUTUBE_URL',
'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',
)
def get_SCHOOL_LOGO_IMAGE(self, config):
request = self.context.get('request')
if config.SCHOOL_LOGO_IMAGE:
SCHOOL_LOGO_IMAGE_url = config.SCHOOL_LOGO_IMAGE.url
return request.build_absolute_uri(SCHOOL_LOGO_IMAGE_url)
else:
return None
def get_MAIN_PAGE_TOP_IMAGE(self, config):
request = self.context.get('request')
if config.MAIN_PAGE_TOP_IMAGE:
MAIN_PAGE_TOP_IMAGE_url = config.MAIN_PAGE_TOP_IMAGE.url
return request.build_absolute_uri(MAIN_PAGE_TOP_IMAGE_url)
else:
return None