def create_ticket(self, record, rt_template): control_number = record["control_number"] author_name = record["name"]["value"] hep_url = get_inspirehep_url() author_url = f"{hep_url}/authors/{control_number}" author_form_url = f"{hep_url}/submissions/authors/{control_number}" # need to add author editor url? rt_queue = "AUTHORS_cor_user" requestor = current_user.email rt_template_context = { "author_url": author_url, "author_form_url": author_form_url, "hep_url": hep_url, } async_create_ticket_with_template.delay( rt_queue, requestor, rt_template, rt_template_context, f"Your update to author {author_name} on INSPIRE", control_number, )
def generate_sitemap_items_from_search(record_search): base_url = get_inspirehep_url() for record in record_search.params(_source=SEARCH_SOURCE).scan(): endpoint = get_endpoint_from_schema(record["$schema"]) yield { "loc": f"{base_url}/{endpoint}/{record.control_number}", "lastmod": record._updated, }
def get_submissions_confirmation_email_html_content(seminar): hep_url = get_inspirehep_url() recid = seminar["control_number"] seminar_url = f"{hep_url}/seminars/{recid}" seminar_edit_url = f"{hep_url}/submissions/seminars/{recid}" return render_template( "mailing/seminars/confirmation_new.html", seminar_url=seminar_url, seminar_edit_url=seminar_edit_url, )
def create_rt_ticket_for_claiming_action( self, from_author_recid, to_author_recid, claimed_literature_recids, not_allowed_to_be_claimed_literature_recids, ): INSPIREHEP_URL = get_inspirehep_url() to_author_record = AuthorsRecord.get_record_by_pid_value(to_author_recid) already_claimed_papers = [] incompatibile_names_papers = {} for paper_recid in claimed_literature_recids: already_claimed_papers.append( f"{INSPIREHEP_URL}/literature/{paper_recid}") for paper_recid in not_allowed_to_be_claimed_literature_recids: lit_record = LiteratureRecord.get_record_by_pid_value(paper_recid) matched_author_name = _get_claimed_author_name_for_paper( from_author_recid, lit_record.get("authors", [])) if matched_author_name: incompatibile_names_papers[ f"{INSPIREHEP_URL}/literature/{paper_recid}"] = matched_author_name template_payload = dict( to_author_names=get_value(to_author_record, "name.name_variants", []) or [to_author_record["name"]["value"]], from_author_url=f"{INSPIREHEP_URL}/authors/{from_author_recid}", to_author_url=f"{INSPIREHEP_URL}/authors/{to_author_recid}", incompatibile_names_papers=incompatibile_names_papers, already_claimed_papers=already_claimed_papers, ) rt_queue = "AUTHORS_claim_manual" requestor = None to_author_preffered_name = (get_value(to_author_record, "name.preferred_name") or to_author_record["name"]["value"]) async_create_ticket_with_template.delay( rt_queue, requestor, "rt/assign_authors_from_different_profile.html", template_payload, f"Claims by user {to_author_preffered_name} require curator action", )
def test_send_seminar_confirmation_email(mock_send_email, base_app, db, es_clear): expected_recipient = "*****@*****.**" seminar = {"control_number": "1234"} expected_subject = "Your seminar (1234) has been successfully submitted!" host = get_inspirehep_url() expected_content = render_template( "mailing/seminars/confirmation_new.html", seminar_url=f"{host}/seminars/1234", seminar_edit_url=f"{host}/submissions/seminars/1234", ) send_seminar_confirmation_email(expected_recipient, seminar) mock_send_email.assert_called_once_with( sender=current_app.config["SEMINARS_CONFIRMATION_EMAIL_ADDRESS"], recipient=expected_recipient, subject=expected_subject, body=expected_content, )
def create_ticket(self, record, rt_template): control_number = record["control_number"] hep_url = get_inspirehep_url() seminar_url = f"{hep_url}/seminars/{control_number}" seminar_edit_url = f"{hep_url}/submissions/seminars/{control_number}" rt_queue = "SEMINARS" requestor = current_user.email rt_template_context = { "seminar_url": seminar_url, "seminar_edit_url": seminar_edit_url, "hep_url": hep_url, } async_create_ticket_with_template.delay( rt_queue, requestor, rt_template, rt_template_context, f"New Seminar Submission {control_number}.", control_number, )
def create_ticket(self, record, rt_template): control_number = record["control_number"] INSPIREHEP_URL = get_inspirehep_url() CONFERENCE_DETAILS = f"{INSPIREHEP_URL}/conferences/{control_number}" CONFERENCE_EDIT = f"{INSPIREHEP_URL}/submissions/conferences/{control_number}" rt_queue = "CONF_add_user" requestor = current_user.email rt_template_context = { "conference_url": CONFERENCE_DETAILS, "conference_url_edit": CONFERENCE_EDIT, "hep_url": INSPIREHEP_URL, } async_create_ticket_with_template.delay( rt_queue, requestor, rt_template, rt_template_context, f"New Conference Submission {control_number}.", control_number, )
def create_ticket(self, record, rt_template): control_number = record["control_number"] INSPIREHEP_URL = get_inspirehep_url() JOB_DETAILS = f"{INSPIREHEP_URL}/jobs/{control_number}" JOB_EDIT = f"{INSPIREHEP_URL}/submissions/jobs/{control_number}" rt_queue = "JOBS" requestor = record["acquisition_source"]["email"] or record[ "acquisition_source"].get("name", "UNKNOWN") rt_template_context = { "job_url": JOB_DETAILS, "job_url_edit": JOB_EDIT, "hep_url": INSPIREHEP_URL, } async_create_ticket_with_template.delay( rt_queue, requestor, rt_template, rt_template_context, f"Job {control_number} has been submitted to the Jobs database", control_number, )
def test_generate_sitemap_file(mocked_open, inspire_app, cli): literature = create_record("lit") literature_from_es = current_search.client.get("records-hep", literature.id)[ "_source" ] literature_recid = literature["control_number"] literature_updated = literature_from_es["_updated"] config = {"SITEMAP_FILES_PATH": "/tmp", "SITEMAP_PAGE_SIZE": 1} with override_config(**config): result = cli.invoke(["sitemap", "generate"]) assert result.exit_code == 0 mocked_open.assert_any_call("/tmp/sitemap1.xml", "w+") mocked_open.assert_any_call("/tmp/sitemap.xml", "w+") mock_file = mocked_open() base_url = get_inspirehep_url() index_content = render_template( "sitemap/index.xml", urlset=[{"loc": f"{base_url}/sitemap1.xml"}] ) validate_xml_syntax(index_content) mock_file.write.assert_any_call(index_content) page_content = render_template( "sitemap/page.xml", urlset=[ { "loc": f"{base_url}/literature/{literature_recid}", "lastmod": literature_updated, } ], ) validate_xml_syntax(page_content) mock_file.write.assert_any_call(page_content)
def public_file_path(self): return urljoin(get_inspirehep_url(), current_app.config.get("FILES_PUBLIC_PATH"))
def get_sitemap_page_absolute_url(page): base_url = current_app.config.get("SITEMAP_BASE_PAGE_ABSOLUTE_URL") if not base_url: base_url = get_inspirehep_url() return f"{base_url}/{get_sitemap_page_filename(page)}"
def get_sitemap_page_absolute_url(page): base_url = get_inspirehep_url() return f"{base_url}/{get_sitemap_page_filename(page)}"