def __create_report_unknown(self, data): data['attr_data'] = self.__upload_attrs_files( self.__get_archive(data.get('attr_data'))) data['problem_description'] = self.__get_archive( data['problem_description']) serializer = ReportUnknownSerializer(data=data, decision=self.decision) serializer.is_valid(raise_exception=True) report = serializer.save() # Get ancestors before parent might me changed ancestors_ids = self.__ancestors_for_cache(report) if self.decision.is_lightweight and not report.parent.verification: # Change parent to Core report.parent_id = ancestors_ids[0] report.save() # Caching leaves for each tree branch node ReportComponentLeaf.objects.bulk_create( list( ReportComponentLeaf(report_id=parent_id, content_object=report) for parent_id in ancestors_ids)) # Connect report with marks connect_unknown_report.delay(report.id)
def recalculate_unknown_links(decisions): MarkUnknownReport.objects.filter(report__decision__in=decisions).delete() for report_id in ReportUnknown.objects.filter( decision__in=decisions).values_list('id', flat=True): connect_unknown_report.delay(report_id)