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", ) return obj
def borrowing_request_resolver(request_pid): """Return the Patron record for the given Brw Request or raise.""" request_record_cls = current_ils_ill.borrowing_request_record_cls patron_pid = get_field_value(request_record_cls, request_pid, "patron_pid") return get_patron_or_unknown_dump(patron_pid)
def borrowing_request_resolver(request_pid): """Return the Document record for the given Brw Request or raise.""" request_record_cls = current_ils_ill.borrowing_request_record_cls document_pid = get_field_value( request_record_cls, request_pid, "document_pid" ) return get_document(document_pid)
def vendor_resolver(order_pid): """Return the Vendor for the given Order.""" Order = current_ils_acq.order_record_cls Vendor = current_ils_acq.vendor_record_cls vendor_pid = get_field_value(Order, order_pid, "vendor_pid") vendor = Vendor.get_record_by_pid(vendor_pid) return pick(vendor, "pid", "name", "address", "email", "phone", "notes")
def location_resolver(internal_loc_pid): """Return the Location record for the given Internal Loc. or raise.""" location_pid = get_field_value(InternalLocation, internal_loc_pid, "location_pid") location = Location.get_record_by_pid(location_pid) del location["$schema"] return location
def borrowing_request_resolver(request_pid): """Return the Patron record for the given Brw Request or raise.""" request_record_cls = current_ils_ill.borrowing_request_record_cls patron_pid = get_field_value(request_record_cls, request_pid, "patron_pid") Patron = current_app_ils.patron_cls patron = Patron.get_patron(patron_pid) return patron.dumps_loader()
def loan_patron_resolver(loan_pid): """Resolve a Patron given a Loan PID.""" Loan = current_circulation.loan_record_cls try: patron_pid = get_field_value(Loan, loan_pid, "patron_pid") except KeyError: return {} return get_patron_or_empty_dict(patron_pid)
def borrowing_request_resolver(request_pid): """Return the Library record for the given Brw Request or raise.""" request_record_cls = current_ils_ill.borrowing_request_record_cls library_pid = get_field_value(request_record_cls, request_pid, "library_pid") library_record_cls = current_ils_ill.library_record_cls library = library_record_cls.get_record_by_pid(library_pid) return pick(library, "pid", "name")
def patron_resolver(document_request_pid): """Get the Patron record for the given DocumentRequest or raise.""" try: patron_pid = get_field_value( DocumentRequest, document_request_pid, "patron_pid" ) except KeyError: return {} return get_patron_or_unknown_dump(patron_pid)
def document_resolver(document_request_pid): """Get the Document record for the given DocumentRequest or raise.""" try: document_pid = get_field_value(DocumentRequest, document_request_pid, "document_pid") if not document_pid: return {} return get_document(document_pid) except KeyError: return {}
def location_resolver(internal_loc_pid): """Return the Location record for the given Internal Loc. or raise.""" location_pid = get_field_value( InternalLocation, internal_loc_pid, "location_pid" ) location = Location.get_record_by_pid(location_pid) return pick( location, "name", "opening_exceptions", "opening_weekdays", "pid", )
def provider_resolver(order_pid): """Return the Provider for the given Order.""" Order = current_ils_acq.order_record_cls Provider = current_ils_prov.provider_record_cls provider_pid = get_field_value(Order, order_pid, "provider_pid") provider = Provider.get_record_by_pid(provider_pid) return pick( provider, "pid", "name", "address", "email", "phone", "notes", "type", )
def order_lines_resolver(order_pid): Order = current_ils_acq.order_record_cls Document = current_app_ils.document_record_cls order_lines = get_field_value(Order, order_pid, "order_lines") documents = {} for order_line in order_lines: doc_pid = order_line.get("document_pid") doc = documents.get(doc_pid) or Document.get_record_by_pid(doc_pid) documents[doc["pid"]] = doc document_resolver(order_line, doc) patron_pid = order_line.get("patron_pid") if patron_pid: patron_dump = get_patron_or_unknown_dump(patron_pid) order_line["patron"] = patron_dump return order_lines
def borrowing_request_resolver(request_pid): """Return the Provider record for the given Brw Request or raise.""" request_record_cls = current_ils_ill.borrowing_request_record_cls provider_pid = get_field_value(request_record_cls, request_pid, "provider_pid") provider_record_cls = current_ils_prov.provider_record_cls provider = provider_record_cls.get_record_by_pid(provider_pid) return pick( provider, "pid", "name", "address", "email", "phone", "notes", "type", )
def order_lines_resolver(order_pid): Order = current_ils_acq.order_record_cls Document = current_app_ils.document_record_cls Patron = current_app_ils.patron_cls order_lines = get_field_value(Order, order_pid, "order_lines") documents = {} patrons = {} for order_line in order_lines: doc_pid = order_line.get('document_pid') doc = documents.get(doc_pid) or Document.get_record_by_pid(doc_pid) documents[doc["pid"]] = doc document_resolver(order_line, doc) patron_pid = order_line.get('patron_pid') if not patron_pid: continue patron = patrons.get(patron_pid) or Patron.get_patron(patron_pid) patrons[patron_pid] = patron patron_resolver(order_line, patron) return order_lines
def document_resolver(item_pid): """Return the Document record for the given Item or raise.""" document_pid = get_field_value(Item, item_pid, "document_pid") return get_document(document_pid)
def internal_location_resolver(item_pid): """Return the IntLoc record for the given Item or raise.""" internal_loc_pid = get_field_value(Item, item_pid, "internal_location_pid") return get_internal_location(internal_loc_pid)