import re from rest_framework import serializers from accounts.models import IAmPrincipal from goodtimes import constants, date_utils from manage_cms import models from taggit.models import Tag class TagSerializer(serializers.ModelSerializer): class Meta: model = Tag fields = ['id', 'name'] class NewsAndArticlesSerializer(serializers.ModelSerializer): class Meta: model = models.NewsAndArticles fields = "__all__" class NewsLetterSerializer(serializers.ModelSerializer): class Meta: model = models.Newsletter fields = "__all__" class FaqSerializer(serializers.ModelSerializer): class Meta: model = models.Faqs fields = "__all__" class OrganizationSerializer(serializers.ModelSerializer): about_us = serializers.CharField(source='about_us.html', read_only=True) terms_condition = serializers.CharField(source='terms_condition.html', read_only=True) terms_condition_user = serializers.CharField(source='terms_condition_user.html', read_only=True) terms_condition_merchant = serializers.CharField(source='terms_condition_merchant.html', read_only=True) privacy_policy = serializers.CharField(source='privacy_policy.html', read_only=True) privacy_policy_user = serializers.CharField(source='privacy_policy_user.html', read_only=True) privacy_policy_merchant = serializers.CharField(source='privacy_policy_merchant.html', read_only=True) subscription_agreement = serializers.CharField(source='subscription_agreement.html', read_only=True) license_agreement_user = serializers.CharField(source='license_agreement_user.html', read_only=True) license_agreement_merchant = serializers.CharField(source='license_agreement_merchant.html', read_only=True) class Meta: model = models.Organization fields = [ "about_us", "terms_condition", "terms_condition_user", "terms_condition_merchant", "privacy_policy", "privacy_policy_user", "privacy_policy_merchant", "subscription_agreement", "license_agreement_user", "license_agreement_merchant", ] class EducationVideoSerializer(serializers.ModelSerializer): tags = TagSerializer(many=True, read_only=True) date = serializers.DateTimeField(source="published_at", format='%d %b, %Y') class Meta: model = models.Education fields = [ "content_type", "title", "description", "thumbnail", "video_url", "tags", "date" ] def get_image_url(self, obj, field_name, request): image_field = getattr(obj, field_name) if image_field: return request.build_absolute_uri(image_field.url) return "" def to_representation(self, instance): data = super().to_representation(instance) request = self.context.get("request") data["thumbnail"] = self.get_image_url(instance, "thumbnail", request) return data class EducationMaterialSerializer(serializers.ModelSerializer): tags = TagSerializer(many=True, read_only=True) date = serializers.DateTimeField(source="published_at", format='%d %b, %Y') class Meta: model = models.Education fields = [ "content_type", "title", "file", "tags", "date" ] def get_image_url(self, obj, field_name, request): image_field = getattr(obj, field_name) if image_field: return request.build_absolute_uri(image_field.url) return "" def to_representation(self, instance): data = super().to_representation(instance) request = self.context.get("request") data["file"] = self.get_image_url(instance, "file", request) return data # class EducationTagSerializer(serializers.ModelSerializer): # tags = TagSerializer(many=True, read_only=True) # class Meta: # model = models.Education # fields = ["tags"]