def _create_curator_ticket_update(obj, eng): from invenio_base.globals import cfg user_email = acc_get_user_email(obj.id_user) recid = obj.data.get("recid", "") subject = "Your update to author {} on INSPIRE".format( obj.data.get("name").get("preferred_name") ) record_url = os.path.join(cfg["AUTHORS_UPDATE_BASE_URL"], "record", str(recid)) body = render_template( template, email=user_email, url=record_url, bibedit_url=record_url + "/edit", user_comment=obj.extra_data.get("comments", ""), ).strip() submit_rt_ticket( obj=obj, queue=queue, subject=subject, body=body, requestors=user_email, ticket_id_key=ticket_id_key )
def _create_curation_ticket(obj, eng): from invenio_access.control import acc_get_user_email recid = obj.extra_data.get('recid') record_url = obj.extra_data.get('url') user_email = acc_get_user_email(obj.id_user) bai = "" if obj.data.get("bai"): bai = "[{}]".format(obj.data.get("bai")) subject = "Curation needed for author {} {}".format( obj.data.get("name").get("preferred_name"), bai ) body = render_template( template, email=user_email, object=obj, recid=recid, record_url=record_url, user_comment=obj.extra_data.get("comments", ""), ).strip() submit_rt_ticket( obj=obj, queue=queue, subject=subject, body=body, requestors=user_email, ticket_id_key=ticket_id_key )
def get_title(bwo): """Return title of object.""" from invenio_access.control import acc_get_user_email id_user = bwo.id_user user_email = acc_get_user_email(id_user) return u"Demo form by: {0}".format(user_email)
def get_description(bwo): """Return description of object.""" from invenio_access.control import acc_get_user_email results = bwo.get_tasks_results() try: deposit_object = Deposition(bwo) except InvalidDepositionType: return "This submission is disabled: {0}.".format(bwo.workflow.name) id_user = deposit_object.workflow_object.id_user user_email = acc_get_user_email(id_user) sip = deposit_object.get_latest_sip() if sip: record = Record(sip.metadata) identifiers = [] report_numbers = record.get("report_numbers", []) dois = record.get("dois.value", []) if report_numbers: for report_number in report_numbers: number = report_number.get("value", "") if number: identifiers.append(number) if dois: identifiers.extend(["doi:{0}".format(d) for d in dois]) categories = [] subjects = record.get("subject_terms", []) if subjects: for subject in subjects: if isinstance(subject, string_types): categories.append(subject) elif isinstance(subject, dict): if subject.get("term"): categories.append(subject.get("term")) categories = [record.get("type_of_doc", "")] + categories authors = [] authors += [record.get("_first_author", {})] authors += record.get("_additional_authors", []) return render_template( "workflows/styles/submission_record.html", categories=categories, authors=authors, identifiers=identifiers, results=results, user_email=user_email, object=bwo, record=record, ) else: return "Submitter: {0}".format(user_email)
def _convert_data_to_model(obj, eng): import copy from .dojson.model import updateform # Save original form data for later access form_fields = copy.deepcopy(obj.data) obj.extra_data["formdata"] = copy.deepcopy(form_fields) data = obj.data filter_empty_elements(data) converted = updateform.do(data) data.clear() data.update(converted) author_name = '' if 'family_name' in form_fields and form_fields['family_name']: author_name = form_fields['family_name'].strip() + ', ' if 'given_names' in form_fields and form_fields['given_names']: author_name += form_fields['given_names'] if author_name: data.get('name', {})['value'] = author_name # Add comments to extra data if "comments" in form_fields and form_fields["comments"]: obj.extra_data["comments"] = form_fields["comments"] data["_private_note"] = form_fields["comments"] # Add HEPNAMES collection data["collections"] = { "primary": "HEPNAMES" } # ========== # Owner Info # ========== user_email = acc_get_user_email(obj.id_user) sources = ["{0}{1}".format('inspire:uid:', obj.id_user)] data['acquisition_source'] = dict( source=sources, email=user_email, date=date.today().isoformat(), method="submission", submission_number=obj.id, )
def _create_ticket(obj, eng): from invenio_access.control import acc_get_user_email deposition = Deposition(obj) requestors = acc_get_user_email(obj.id_user) subject, body = get_ticket_body(template, deposition, deposition.get_latest_sip(sealed=True).metadata, requestors, obj) submit_rt_ticket(obj, queue, subject, body, requestors, ticket_id_key)
def _create_curation_ticket(obj, eng): from invenio_access.control import acc_get_user_email requestors = acc_get_user_email(obj.id_user) record = get_record_from_obj(obj, eng) if obj.extra_data.get("core"): subject, body = get_curation_body(template, record, requestors, obj.extra_data) submit_rt_ticket(obj, queue, subject, body, requestors, ticket_id_key)
def _create_curation_ticket(obj, eng): from invenio_access.control import acc_get_user_email deposition = Deposition(obj) requestors = acc_get_user_email(obj.id_user) metadata = deposition.get_latest_sip(sealed=True).metadata if obj.extra_data.get("core"): subject, body = get_curation_body(template, metadata, requestors, obj.extra_data) submit_rt_ticket(obj, queue, subject, body, requestors, ticket_id_key)
def _create_curator_ticket_new(obj, eng): user_email = acc_get_user_email(obj.id_user) subject = "Your suggestion to INSPIRE: author {}".format( obj.data.get("name").get("preferred_name") ) body = render_template( template, email=user_email, object=obj, user_comment=obj.extra_data.get("comments", ""), ).strip() submit_rt_ticket( obj=obj, queue=queue, subject=subject, body=body, requestors=user_email, ticket_id_key=ticket_id_key )
def formatter(bwo, **kwargs): """Return formatted data of object.""" of = kwargs.get("of", "hp") xml = bwo.extra_data.get("marcxml") id_user = bwo.id_user user_email = acc_get_user_email(id_user) ticket_id = bwo.extra_data.get("ticket_id") ticket_url = "https://rt.inspirehep.net/Ticket/Display.html?id={}".format( ticket_id ) if of == "xm": return xml else: # FIXME add a template for the author display in the HP return render_template("authors/workflows/authorupdate.html", record=bwo.data, user_email=user_email, ticket_url=ticket_url, comments=bwo.extra_data.get("comments"))
def get_title(bwo): """Return title of object.""" id_user = bwo.id_user user_email = acc_get_user_email(id_user) return u"Author update by: {0}".format(user_email)