from flask import make_response, abort from flask.views import View, request from pycs.database.File import File from pycs.database.Result import Result from pycs.frontend.notifications.NotificationManager import NotificationManager class ResetResults(View): """ removes all results from a given file """ # pylint: disable=arguments-differ methods = ['POST'] def dispatch_request(self, file_id: int): # extract request data data = request.get_json(force=True) if not data.get('reset', False): abort(400) # find file file = File.query.get(file_id) if file is None: return abort(404) removed = [] for result in file.results.all(): removed.append(result.serialize()) file.results.delete() for result in removed: NotificationManager.removed("result", result, Result) return make_response()