コード例 #1
0
    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)
コード例 #2
0
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)