|
@@ -5,6 +5,7 @@ from flask import make_response
|
|
|
from flask import request
|
|
|
from flask.views import View
|
|
|
|
|
|
+from pycs import app
|
|
|
from pycs import db
|
|
|
from pycs.database.LabelProvider import LabelProvider
|
|
|
from pycs.database.Project import Project
|
|
@@ -75,19 +76,18 @@ class ExecuteLabelProvider(View):
|
|
|
# result adds the received labels to the database and fires events
|
|
|
def result(provided_labels):
|
|
|
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)
|
|
|
- success = True
|
|
|
-
|
|
|
- if not success:
|
|
|
- continue
|
|
|
+ created.append((created_label, is_new))
|
|
|
|
|
|
+ for label, is_new in created:
|
|
|
if is_new:
|
|
|
- nm.create_label(created_label.id)
|
|
|
+ nm.create_label(label.id)
|
|
|
else:
|
|
|
- nm.edit_label(created_label.id)
|
|
|
+ nm.edit_label(label.id)
|
|
|
|
|
|
# run job with given functions
|
|
|
jobs.run(project,
|