|
|
|
@ -128,7 +128,15 @@ class AdminHadisCollectionSerializer(serializers.ModelSerializer): |
|
|
|
read_only_fields = ["id", "created_at", "updated_at"] |
|
|
|
|
|
|
|
def to_internal_value(self, data): |
|
|
|
import json |
|
|
|
mutable_data = safe_copy_data(data) |
|
|
|
for json_field in ["title", "summary"]: |
|
|
|
val = mutable_data.get(json_field) |
|
|
|
if isinstance(val, str): |
|
|
|
try: |
|
|
|
mutable_data[json_field] = json.loads(val) |
|
|
|
except ValueError: |
|
|
|
pass |
|
|
|
thumbnail = mutable_data.get("thumbnail") if hasattr(mutable_data, "get") else None |
|
|
|
if thumbnail and hasattr(thumbnail, "read"): |
|
|
|
compressed_bytes = maybe_compress_uploaded_file(thumbnail) |
|
|
|
@ -600,6 +608,18 @@ class AdminHadisCategoryArchiveSerializer(serializers.ModelSerializer): |
|
|
|
] |
|
|
|
read_only_fields = ["id", "share_link", "xmind_share_link"] |
|
|
|
|
|
|
|
def to_internal_value(self, data): |
|
|
|
import json |
|
|
|
data = safe_copy_data(data) |
|
|
|
for json_field in ["title", "description"]: |
|
|
|
val = data.get(json_field) |
|
|
|
if isinstance(val, str): |
|
|
|
try: |
|
|
|
data[json_field] = json.loads(val) |
|
|
|
except ValueError: |
|
|
|
pass |
|
|
|
return super().to_internal_value(data) |
|
|
|
|
|
|
|
def create(self, validated_data): |
|
|
|
validated_data.pop("remove_xmind_file", False) |
|
|
|
return super().create(validated_data) |
|
|
|
@ -715,6 +735,27 @@ class AdminTransmitterDetailSerializer(serializers.ModelSerializer): |
|
|
|
] |
|
|
|
read_only_fields = ["id", "slug", "share_link", "created_at", "updated_at", "reliability_detail"] |
|
|
|
|
|
|
|
def to_internal_value(self, data): |
|
|
|
import json |
|
|
|
data = safe_copy_data(data) |
|
|
|
for json_field in [ |
|
|
|
"full_name", |
|
|
|
"kunya", |
|
|
|
"known_as", |
|
|
|
"nickname", |
|
|
|
"origin", |
|
|
|
"lived_in", |
|
|
|
"died_in", |
|
|
|
"description", |
|
|
|
]: |
|
|
|
val = data.get(json_field) |
|
|
|
if isinstance(val, str): |
|
|
|
try: |
|
|
|
data[json_field] = json.loads(val) |
|
|
|
except ValueError: |
|
|
|
pass |
|
|
|
return super().to_internal_value(data) |
|
|
|
|
|
|
|
def update(self, instance, validated_data): |
|
|
|
remove_thumbnail = validated_data.pop("remove_thumbnail", False) |
|
|
|
if remove_thumbnail and instance.thumbnail: |
|
|
|
|