def _reject_record(obj, *args, **kwargs): from inspirehep.modules.audit.api import log_prediction_action # Audit logging results = obj.get_tasks_results() prediction_results = results.get("arxiv_guessing", {}) log_prediction_action( action="reject_record", prediction_results=prediction_results, object_id=obj.id, user_id=0, source="workflow", ) obj.extra_data["approved"] = False obj.extra_data["reason"] = message obj.log.info(message)
def resolve(bwo, data): """Resolve the action taken in the approval action.""" from invenio_workflows.models import ObjectVersion from inspirehep.modules.audit.api import log_prediction_action value = data.get("value", "") # Audit logging results = bwo.get_tasks_results() prediction_results = results.get("arxiv_guessing", {}) log_prediction_action( action="resolve", prediction_results=prediction_results, object_id=bwo.id, user_id=current_user.get_id(), source="holdingpen", user_action=value, ) upload_pdf = data.get("pdf_submission", False) bwo.remove_action() extra_data = bwo.get_extra_data() extra_data["approved"] = value in ('accept', 'accept_core') extra_data["core"] = value == "accept_core" extra_data["reason"] = data.get("text", "") extra_data["pdf_upload"] = True if upload_pdf == "true" else False bwo.set_extra_data(extra_data) bwo.save(version=ObjectVersion.WAITING) bwo.continue_workflow(delayed=True) if extra_data["approved"]: return { "message": "Suggestion has been accepted!", "category": "success", } else: return { "message": "Suggestion has been rejected", "category": "warning", }