@@ -412,14 +412,14 @@ class DrefOperationalUpdateSerializer(
412412 budget_file_details = DrefFileSerializer (source = 'budget_file' , read_only = True )
413413 country_details = MiniCountrySerializer (source = 'country' , read_only = True )
414414 district_details = MiniDistrictSerializer (source = 'district' , read_only = True , many = True )
415- assessment_report_file = DrefFileSerializer (source = 'assessment_report' , required = False , allow_null = True )
415+ assessment_report_details = DrefFileSerializer (source = 'assessment_report' , read_only = True )
416416 risk_security = RiskSecuritySerializer (many = True , required = False )
417417 modified_at = serializers .DateTimeField (required = False )
418418
419419 class Meta :
420420 model = DrefOperationalUpdate
421421 read_only_fields = ('operational_update_number' , )
422- exclude = ('images' , 'photos' , 'event_map' , 'assessment_report' , ' cover_image' )
422+ exclude = ('images' , 'photos' , 'event_map' , 'cover_image' )
423423
424424 def validate (self , data ):
425425 dref = data .get ('dref' )
@@ -516,6 +516,7 @@ def create(self, validated_data):
516516 validated_data ['anticipatory_actions' ] = dref .anticipatory_actions
517517 validated_data ['event_scope' ] = dref .event_scope
518518 validated_data ['budget_file' ] = dref .budget_file
519+ validated_data ['assessment_report' ] = dref .assessment_report
519520 validated_data ['country' ] = dref .country
520521 validated_data ['risk_security_concern' ] = dref .risk_security_concern
521522 validated_data ['is_assessment_report' ] = dref .is_assessment_report
@@ -535,7 +536,6 @@ def create(self, validated_data):
535536 operational_update = super ().create (validated_data )
536537 # XXX: Copy files from DREF (Only nested serialized fields)
537538 nested_serialized_file_fields = [
538- 'assessment_report' ,
539539 'cover_image' ,
540540 'event_map' ,
541541 ]
@@ -613,7 +613,6 @@ def create(self, validated_data):
613613 validated_data ['event_description' ] = dref_operational_update .event_description
614614 validated_data ['anticipatory_actions' ] = dref_operational_update .anticipatory_actions
615615 validated_data ['event_scope' ] = dref_operational_update .event_scope
616- validated_data ['cover_image' ] = dref_operational_update .cover_image
617616 validated_data ['budget_file' ] = dref_operational_update .budget_file
618617 validated_data ['assessment_report' ] = dref_operational_update .assessment_report
619618 validated_data ['country' ] = dref_operational_update .country
@@ -633,6 +632,16 @@ def create(self, validated_data):
633632 validated_data ['communication' ] = dref_operational_update .communication
634633 validated_data ['people_in_need' ] = dref_operational_update .people_in_need
635634 operational_update = super ().create (validated_data )
635+ # XXX: Copy files from DREF (Only nested serialized fields)
636+ nested_serialized_file_fields = [
637+ 'cover_image' ,
638+ 'event_map' ,
639+ ]
640+ for file_field in nested_serialized_file_fields :
641+ dref_file = getattr (dref , file_field , None )
642+ if dref_file :
643+ setattr (operational_update , file_field , dref_file .clone (self .context ['request' ].user ))
644+ operational_update .save (update_fields = nested_serialized_file_fields )
636645 # XXX COPY M2M fields
637646 operational_update .planned_interventions .add (* dref_operational_update .planned_interventions .all ())
638647 operational_update .images .add (* dref_operational_update .images .all ())
@@ -709,18 +718,17 @@ class DrefFinalReportSerializer(
709718 photos_file = DrefFileSerializer (source = 'photos' , many = True , required = False , allow_null = True )
710719 country_details = MiniCountrySerializer (source = 'country' , read_only = True )
711720 district_details = MiniDistrictSerializer (source = 'district' , read_only = True , many = True )
712- assessment_report_file = DrefFileSerializer (source = 'assessment_report' , required = False , allow_null = True )
721+ assessment_report_details = DrefFileSerializer (source = 'assessment_report' , read_only = True )
713722 risk_security = RiskSecuritySerializer (many = True , required = False )
714723 modified_at = serializers .DateTimeField (required = False )
715- budget_file_details = DrefFileSerializer (source = 'budget_file ' , read_only = True )
724+ financial_report_details = DrefFileSerializer (source = 'financial_report ' , read_only = True )
716725
717726 class Meta :
718727 model = DrefFinalReport
719728 exclude = (
720729 'images' ,
721730 'photos' ,
722731 'event_map' ,
723- 'assessment_report' ,
724732 'cover_image' ,
725733 )
726734
@@ -762,6 +770,7 @@ def create(self, validated_data):
762770 dref = validated_data ['dref' ]
763771 dref_operational_update = DrefOperationalUpdate .objects .filter (
764772 dref = dref ,
773+ is_published = True
765774 ).order_by ('-operational_update_number' ).first ()
766775 if dref_operational_update :
767776 validated_data ['title' ] = dref_operational_update .title
@@ -823,7 +832,6 @@ def create(self, validated_data):
823832 validated_data ['event_description' ] = dref_operational_update .event_description
824833 validated_data ['anticipatory_actions' ] = dref_operational_update .anticipatory_actions
825834 validated_data ['event_scope' ] = dref_operational_update .event_scope
826- validated_data ['assessment_report' ] = dref_operational_update .assessment_report
827835 validated_data ['country' ] = dref_operational_update .country
828836 validated_data ['risk_security_concern' ] = dref_operational_update .risk_security_concern
829837 validated_data ['is_assessment_report' ] = dref_operational_update .is_assessment_report
@@ -832,11 +840,10 @@ def create(self, validated_data):
832840 validated_data ['event_date' ] = dref_operational_update .event_date
833841 validated_data ['people_in_need' ] = dref_operational_update .people_in_need
834842 validated_data ['ns_respond_date' ] = dref_operational_update .ns_respond_date
835- validated_data ['budget_file ' ] = dref_operational_update .budget_file
843+ validated_data ['assessment_report ' ] = dref_operational_update .assessment_report
836844 dref_final_report = super ().create (validated_data )
837845 # XXX: Copy files from DREF (Only nested serialized fields)
838846 nested_serialized_file_fields = [
839- 'assessment_report' ,
840847 'cover_image' ,
841848 'event_map' ,
842849 ]
@@ -922,9 +929,19 @@ def create(self, validated_data):
922929 validated_data ['people_in_need' ] = dref .people_in_need
923930 validated_data ['event_text' ] = dref .event_text
924931 validated_data ['ns_respond_date' ] = dref .ns_respond_date
925- validated_data ['budget_file ' ] = dref .budget_file
926- validated_data ['did_national_society ' ] = dref .did_national_society
932+ validated_data ['cover_image ' ] = dref .cover_image
933+ validated_data ['event_map ' ] = dref .event_map
927934 dref_final_report = super ().create (validated_data )
935+ # XXX: Copy files from DREF (Only nested serialized fields)
936+ nested_serialized_file_fields = [
937+ 'cover_image' ,
938+ 'event_map' ,
939+ ]
940+ for file_field in nested_serialized_file_fields :
941+ dref_file = getattr (dref , file_field , None )
942+ if dref_file :
943+ setattr (dref_final_report , file_field , dref_file .clone (self .context ['request' ].user ))
944+ dref_final_report .save (update_fields = nested_serialized_file_fields )
928945 dref_final_report .planned_interventions .add (* dref .planned_interventions .all ())
929946 dref_final_report .needs_identified .add (* dref .needs_identified .all ())
930947 dref_final_report .district .add (* dref .district .all ())
0 commit comments