Пример #1
0
def document_resolver(loan_pid):
    """Resolve a Document given a Loan PID."""
    Loan = current_circulation.loan_record_cls
    try:
        document_pid = get_field_value(Loan, loan_pid, "document_pid")
    except KeyError:
        return {}

    Document = current_app_ils.document_record_cls
    try:
        document = Document.get_record_by_pid(document_pid)
    except PIDDeletedError:
        obj = {}
    else:
        obj = pick(
            document,
            "authors",
            "cover_metadata",
            "document_type",
            "edition",
            "identifiers",
            "open_access",
            "pid",
            "publication_year",
            "title",
        )
        obj["authors"] = flatten_authors(obj["authors"])

    return obj
Пример #2
0
 def get_document(document_pid):
     """Return the Document record."""
     Document = current_app_ils.document_record_cls
     document = Document.get_record_by_pid(document_pid)
     obj = pick(document, "authors", "cover_metadata", "edition", "pid",
                "publication_year", "title", "document_type")
     obj["authors"] = flatten_authors(obj["authors"])
     return obj
Пример #3
0
 def document_resolver(order_line, doc):
     """Resolve the Document for the given Order Line."""
     order_line["document"] = pick(
         doc,
         "authors",
         "cover_metadata",
         "edition",
         "pid",
         "publication_year",
         "title",
     )
     order_line["document"]["authors"] = flatten_authors(
         order_line["document"]["authors"])
     return doc