Example #1
0
    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)
Example #2
0
    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",
            }