@@ -377,11 +377,6 @@ class Meta:
377377 }
378378
379379 def validate (self , data ):
380- #if self.context and 'request' in self.context:
381- # if 'is_annual_report' in self.context['request'].data:
382- # data['is_annual_report'] = self.context['request'].data['is_annual_report']
383- # if 'annual_split_detail' in self.context['request'].data:
384- # data['annual_split_detail'] = self.context['request'].data['annual_split_detail']
385380 d_project_districts = data ['project_districts' ]
386381 # Override country with district's country
387382 if isinstance (d_project_districts , list ) and len (d_project_districts ):
@@ -401,12 +396,23 @@ def validate(self, data):
401396
402397 def create (self , validated_data ):
403398 project = super ().create (validated_data )
399+ # create does not bear the non-Project extra fields (which are needed for AnnualSplits), so we must đouble:
400+ if self .context and 'request' in self .context :
401+ if 'is_annual_report' in self .context ['request' ].data :
402+ project .is_annual_report = self .context ['request' ].data ['is_annual_report' ]
403+ if 'annual_split_detail' in self .context ['request' ].data :
404+ project .annual_split_detail = self .context ['request' ].data ['annual_split_detail' ]
404405 project .user = self .context ['request' ].user
405406 project .save ()
406407 return project
407408
408409 def update (self , instance , validated_data ):
409410 validated_data ['modified_by' ] = self .context ['request' ].user
411+ if self .context and 'request' in self .context : # code đuplication
412+ if 'is_annual_report' in self .context ['request' ].data :
413+ validated_data ['is_annual_report' ] = self .context ['request' ].data ['is_annual_report' ]
414+ if 'annual_split_detail' in self .context ['request' ].data :
415+ validated_data ['annual_split_detail' ] = self .context ['request' ].data ['annual_split_detail' ]
410416 return super ().update (instance , validated_data )
411417
412418
0 commit comments