Browse Source

improved label provider execution

Dimitri Korsch 3 years ago
parent
commit
4fe6cded3b
1 changed files with 9 additions and 9 deletions
  1. 9 9
      pycs/frontend/endpoints/projects/ExecuteLabelProvider.py

+ 9 - 9
pycs/frontend/endpoints/projects/ExecuteLabelProvider.py

@@ -5,6 +5,7 @@ from flask import make_response
 from flask import request
 from flask import request
 from flask.views import View
 from flask.views import View
 
 
+from pycs import app
 from pycs import db
 from pycs import db
 from pycs.database.LabelProvider import LabelProvider
 from pycs.database.LabelProvider import LabelProvider
 from pycs.database.Project import Project
 from pycs.database.Project import Project
@@ -75,19 +76,18 @@ class ExecuteLabelProvider(View):
         # result adds the received labels to the database and fires events
         # result adds the received labels to the database and fires events
         def result(provided_labels):
         def result(provided_labels):
             project = Project.query.get(project_id)
             project = Project.query.get(project_id)
-            for label in provided_labels:
-                success = False
-                with db.session.begin_nested():
+            created = []
+            app.logger.info(f"Storing {len(provided_labels):,d} labels for project #{project_id}...")
+            with db.session.begin_nested():
+                for label in provided_labels:
                     created_label, is_new = project.create_label(commit=False, **label)
                     created_label, is_new = project.create_label(commit=False, **label)
-                    success = True
-
-                if not success:
-                    continue
+                    created.append((created_label, is_new))
 
 
+            for label, is_new in created:
                 if is_new:
                 if is_new:
-                    nm.create_label(created_label.id)
+                    nm.create_label(label.id)
                 else:
                 else:
-                    nm.edit_label(created_label.id)
+                    nm.edit_label(label.id)
 
 
         # run job with given functions
         # run job with given functions
         jobs.run(project,
         jobs.run(project,