|
|
|
@ -353,11 +353,34 @@ def save_relation_reference_data(instance, validated_data, request=None, is_corr |
|
|
|
address = validated_data.pop("address", None) |
|
|
|
delete_image_ids = validated_data.pop("delete_image_ids", []) |
|
|
|
|
|
|
|
new_images = request.FILES.getlist("uploaded_images") if request else [] |
|
|
|
new_images = [] |
|
|
|
if request: |
|
|
|
files_obj = getattr(request, "FILES", None) |
|
|
|
if not files_obj and hasattr(request, "_request"): |
|
|
|
files_obj = getattr(request._request, "FILES", None) |
|
|
|
|
|
|
|
if files_obj: |
|
|
|
if hasattr(files_obj, "getlist"): |
|
|
|
new_images = files_obj.getlist("uploaded_images") or files_obj.getlist("uploaded_images[]") |
|
|
|
if not new_images: |
|
|
|
val = files_obj.get("uploaded_images") or files_obj.get("uploaded_images[]") |
|
|
|
if val: |
|
|
|
new_images = [val] if not isinstance(val, list) else val |
|
|
|
|
|
|
|
if not new_images and hasattr(request, "data"): |
|
|
|
data_obj = request.data |
|
|
|
if hasattr(data_obj, "getlist"): |
|
|
|
new_images = data_obj.getlist("uploaded_images") or data_obj.getlist("uploaded_images[]") |
|
|
|
if not new_images and hasattr(data_obj, "get"): |
|
|
|
val = data_obj.get("uploaded_images") or data_obj.get("uploaded_images[]") |
|
|
|
if val: |
|
|
|
new_images = val if isinstance(val, list) else [val] |
|
|
|
|
|
|
|
actual_images = [img for img in new_images if img and not isinstance(img, (str, int, float, bool, dict))] |
|
|
|
|
|
|
|
ref = instance.references.first() |
|
|
|
if not ref: |
|
|
|
if book_reference or address or new_images: |
|
|
|
if book_reference or address or actual_images: |
|
|
|
if ref_type == "original_text": |
|
|
|
ref = OriginalTextReference.objects.create(original_text=instance) |
|
|
|
elif is_correction: |
|
|
|
@ -376,7 +399,7 @@ def save_relation_reference_data(instance, validated_data, request=None, is_corr |
|
|
|
if delete_image_ids: |
|
|
|
ref.images.filter(id__in=delete_image_ids).delete() |
|
|
|
|
|
|
|
for img in new_images: |
|
|
|
for img in actual_images: |
|
|
|
if ref_type == "original_text": |
|
|
|
OriginalTextReferenceImage.objects.create(reference=ref, image=img) |
|
|
|
elif is_correction: |
|
|
|
@ -385,6 +408,8 @@ def save_relation_reference_data(instance, validated_data, request=None, is_corr |
|
|
|
InterpretationReferenceImage.objects.create(reference=ref, image=img) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdminHadisCorrectionSerializer(serializers.ModelSerializer): |
|
|
|
hadis_detail = AdminHadisBriefSerializer(source="hadis", read_only=True) |
|
|
|
bookmark_count = serializers.IntegerField(source="annotated_bookmark_count", read_only=True) |
|
|
|
|