prototype
This commit is contained in:
parent
786ee03d8e
commit
5043462095
|
|
@ -6,12 +6,14 @@ from django.conf import settings
|
|||
|
||||
|
||||
class NewsSerializer(serializers.ModelSerializer):
|
||||
image_url = serializers.SerializerMethodField()
|
||||
preview_image_url = serializers.SerializerMethodField()
|
||||
description = serializers.SerializerMethodField()
|
||||
title = serializers.SerializerMethodField()
|
||||
template = serializers.SerializerMethodField()
|
||||
state = serializers.IntegerField(source="state")
|
||||
# image_url = serializers.CharField()
|
||||
# preview_image_url = serializers.CharField()
|
||||
attachment_file_name = serializers.CharField(allow_null=True)
|
||||
# body = serializers.CharField(allow_null=True, source="description")
|
||||
body = serializers.CharField(allow_null=True)
|
||||
title = serializers.CharField()
|
||||
template = serializers.CharField()
|
||||
state = serializers.CharField()
|
||||
created_at = serializers.DateTimeField(source="start", format='%m-%d-%Y %H:%M:%S')
|
||||
|
||||
class Meta:
|
||||
|
|
@ -20,57 +22,102 @@ class NewsSerializer(serializers.ModelSerializer):
|
|||
"created_at",
|
||||
"state",
|
||||
"template",
|
||||
"image_url",
|
||||
"preview_image_url",
|
||||
# "image_url",
|
||||
# "preview_image_url",
|
||||
"attachment_file_name",
|
||||
"title",
|
||||
"description",
|
||||
"body",
|
||||
"slug",
|
||||
"news_type",
|
||||
"playlist"
|
||||
)
|
||||
|
||||
def validate(self, data):
|
||||
data["state"] = self.get_state(data)
|
||||
data["template"] = self.get_template(data)
|
||||
data["title"] = self.get_title(data)
|
||||
data["description"] = self.get_description(data)
|
||||
data["image_url"] = self.get_image_url(data)
|
||||
data["preview_image_url"] = self.get_preview_image_url(data)
|
||||
data.pop("attachment_file_name")
|
||||
data.pop("body")
|
||||
return data
|
||||
|
||||
def create(self, validated_data):
|
||||
validated_data['state'] = self.get_state(validated_data)
|
||||
# validated_data['state'] = self.get_state(validated_data)
|
||||
return News.objects.create(**validated_data)
|
||||
|
||||
def get_template(self, obj):
|
||||
if obj.template == "main":
|
||||
if obj["template"] == "main":
|
||||
return News.MAIN
|
||||
elif obj.template == "main.pdf.erb":
|
||||
elif obj["template"] == "main.pdf.erb":
|
||||
return News.MAIN_PDF_ERB
|
||||
else:
|
||||
return News.NEWSPAPER
|
||||
|
||||
# if obj.template == "main":
|
||||
# return News.MAIN
|
||||
# elif obj.template == "main.pdf.erb":
|
||||
# return News.MAIN_PDF_ERB
|
||||
# else:
|
||||
# return News.NEWSPAPER
|
||||
|
||||
def get_state(self, obj):
|
||||
if obj.state == "published":
|
||||
if obj["state"] == "published":
|
||||
return News.PUBLISHED
|
||||
elif obj.state == "hidden":
|
||||
elif obj["state"] == "hidden":
|
||||
return News.HIDDEN
|
||||
elif obj.state == "published_exclusive":
|
||||
elif obj["state"] == "published_exclusive":
|
||||
return News.PUBLISHED_EXCLUSIVE
|
||||
else:
|
||||
return News.WAITING
|
||||
|
||||
# if obj.state == "published":
|
||||
# return News.PUBLISHED
|
||||
# elif obj.state == "hidden":
|
||||
# return News.HIDDEN
|
||||
# elif obj.state == "published_exclusive":
|
||||
# return News.PUBLISHED_EXCLUSIVE
|
||||
# else:
|
||||
# return News.WAITING
|
||||
|
||||
# django.db.utils.IntegrityError: "start" NOT NULL
|
||||
# def get_start(self, obj):
|
||||
# # return obj.created_at
|
||||
# return datetime.datetime.now().isoformat()
|
||||
|
||||
def get_title(self, obj):
|
||||
return f'{"en-GB": {obj.title}}'
|
||||
tit = obj.get("title")
|
||||
return {"en-GB": tit}
|
||||
# return f'{"en-GB": {obj.title}}'
|
||||
|
||||
def get_description(self, obj):
|
||||
if not hasattr(obj, "body"):
|
||||
return ""
|
||||
else:
|
||||
return obj.body
|
||||
# return {"en-GB": {obj["body"]}}
|
||||
desc = obj.get("body")
|
||||
return {"en-GB": desc}
|
||||
# if not hasattr(obj, "body"):
|
||||
# return ""
|
||||
# else:
|
||||
# return obj.body
|
||||
|
||||
def get_image_url(self, obj):
|
||||
if not hasattr(obj, "attachment_file_name") or obj.attachment_file_name is None:
|
||||
if not obj.get("attachment_file_name"):
|
||||
return ""
|
||||
return obj.attachment_file_name
|
||||
|
||||
if len(obj.get("attachment_file_name"))>200:
|
||||
return obj.get("attachment_file_name")[:200]
|
||||
return obj.get("attachment_file_name")
|
||||
# if not hasattr(obj, "attachment_file_name") or obj.attachment_file_name is None:
|
||||
# return ""
|
||||
# return obj.attachment_file_name
|
||||
|
||||
def get_preview_image_url(self, obj):
|
||||
if not hasattr(obj, "attachment_file_name") or obj.attachment_file_name is None:
|
||||
if not obj.get("attachment_file_name"):
|
||||
return ""
|
||||
return obj.attachment_file_name
|
||||
|
||||
if len(obj.get("attachment_file_name"))>200:
|
||||
return obj.get("attachment_file_name")[:200]
|
||||
return obj.get("attachment_file_name")
|
||||
# if not hasattr(obj, "attachment_file_name") or obj.attachment_file_name is None:
|
||||
# return ""
|
||||
# return obj.attachment_file_name
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user