@ -3598,6 +3598,20 @@ class AdminTransmitterOriginalTextSerializer(serializers.ModelSerializer):
address = validated_data . pop ( " address " , None )
address = validated_data . pop ( " address " , None )
delete_image_ids = validated_data . pop ( " delete_image_ids " , [ ] )
delete_image_ids = validated_data . pop ( " delete_image_ids " , [ ] )
# Pre-fill title from book reference if title is empty
title_val = validated_data . get ( " title " )
has_title = isinstance ( title_val , list ) and any (
isinstance ( item , dict ) and ( item . get ( ' text ' , ' ' ) or item . get ( ' title ' , ' ' ) ) . strip ( )
for item in title_val
)
if not has_title and book_reference_id :
try :
b_ref = BookReference . objects . filter ( id = book_reference_id . id if hasattr ( book_reference_id , ' id ' ) else book_reference_id ) . first ( )
if b_ref and b_ref . title :
validated_data [ " title " ] = b_ref . title
except Exception :
pass
instance = super ( ) . create ( validated_data )
instance = super ( ) . create ( validated_data )
ref_data = {
ref_data = {
@ -3606,6 +3620,11 @@ class AdminTransmitterOriginalTextSerializer(serializers.ModelSerializer):
" delete_image_ids " : delete_image_ids ,
" delete_image_ids " : delete_image_ids ,
}
}
save_relation_reference_data ( instance , ref_data , request = request , ref_type = " original_text " )
save_relation_reference_data ( instance , ref_data , request = request , ref_type = " original_text " )
if not instance . title or ( isinstance ( instance . title , list ) and not any ( isinstance ( item , dict ) and ( item . get ( ' text ' , ' ' ) or item . get ( ' title ' , ' ' ) ) . strip ( ) for item in instance . title ) ) :
if instance . auto_populate_title ( ) :
instance . save ( update_fields = [ ' title ' , ' slug ' , ' share_link ' ] )
return instance
return instance
def update ( self , instance , validated_data ) :
def update ( self , instance , validated_data ) :
@ -3614,6 +3633,20 @@ class AdminTransmitterOriginalTextSerializer(serializers.ModelSerializer):
address = validated_data . pop ( " address " , None )
address = validated_data . pop ( " address " , None )
delete_image_ids = validated_data . pop ( " delete_image_ids " , [ ] )
delete_image_ids = validated_data . pop ( " delete_image_ids " , [ ] )
# Pre-fill title from book reference if title is empty
title_val = validated_data . get ( " title " )
has_title = isinstance ( title_val , list ) and any (
isinstance ( item , dict ) and ( item . get ( ' text ' , ' ' ) or item . get ( ' title ' , ' ' ) ) . strip ( )
for item in title_val
)
if not has_title and book_reference_id :
try :
b_ref = BookReference . objects . filter ( id = book_reference_id . id if hasattr ( book_reference_id , ' id ' ) else book_reference_id ) . first ( )
if b_ref and b_ref . title :
validated_data [ " title " ] = b_ref . title
except Exception :
pass
instance = super ( ) . update ( instance , validated_data )
instance = super ( ) . update ( instance , validated_data )
ref_data = {
ref_data = {
@ -3622,6 +3655,11 @@ class AdminTransmitterOriginalTextSerializer(serializers.ModelSerializer):
" delete_image_ids " : delete_image_ids ,
" delete_image_ids " : delete_image_ids ,
}
}
save_relation_reference_data ( instance , ref_data , request = request , ref_type = " original_text " )
save_relation_reference_data ( instance , ref_data , request = request , ref_type = " original_text " )
if not instance . title or ( isinstance ( instance . title , list ) and not any ( isinstance ( item , dict ) and ( item . get ( ' text ' , ' ' ) or item . get ( ' title ' , ' ' ) ) . strip ( ) for item in instance . title ) ) :
if instance . auto_populate_title ( ) :
instance . save ( update_fields = [ ' title ' , ' slug ' , ' share_link ' ] )
return instance
return instance