from flask import make_response, abort from flask.views import View, request from pycs.database.Result import Result from pycs.frontend.notifications.NotificationManager import NotificationManager class EditResultLabel(View): """ edit a result and set its label """ # pylint: disable=arguments-differ methods = ['POST'] def dispatch_request(self, result_id: int): # extract request data data = request.get_json(force=True) if 'label' not in data: return abort(400) # find result result = Result.query.get(result_id) if result is None: return abort(404) # abort if label is empty for labeled-images if result.type == 'labeled-image' and not data['label']: return abort(400) result.label_id = int(data['label']) result.origin = 'user' result.commit() NotificationManager.edited("result", result.id, Result) return make_response()