$def with (page, edition_loans, edition_ebook, user_loans, user_ip) $var title: $page.title $ _x = ctx.setdefault('cssfile', 'plain') $ available_loans = page.get_available_loans() $ current_and_available_loans = page.get_current_and_available_loans() $ current_loans = current_and_available_loans[0] $ loan_users = [loan['user'] for loan in current_loans] $ pdf_resource_id = page.get_lending_resource_id('pdf') $ epub_resource_id = page.get_lending_resource_id('epub') $ meta_fields = page.get_ia_meta_fields() $if meta_fields.has_key('contributor'): $ contrib = meta_fields['contributor'] $else: $ contrib = None $ waitinglist = page.get_waitinglist() $def format_users(users): $for user_key in users: $ user = user_key and get_document(user_key) $if user: $user.name $else: Unknown

Borrow - Administration

$:render_template('covers/book_cover_small', page) $page.title $ authors = page.works[0].get_authors() $:macros.BookByline([(a.name, a.url()) for a in authors])
$if page.publish_date or page.publishers: $if page.publish_date: $page.publish_date, $else: Published date unknown, $if page.publishers: $for p in page.publishers: $p$cond(loop.last, "", ", ") $else: publisher unknown $if contrib: from $contrib
$ collections = page.get_ia_meta_fields()['collection'] $if 'lendinglibrary' not in collections and 'inlibrary' not in collections:
This book is not borrowable.

Current Loans

$ borrow_status = get_borrow_status(page.ocaid) $if current_loans: $ loan = current_loans[0]
$_("1 Current Loan") $_("Loan Expires")
$ user = loan.get('user') and get_document(loan['user']) $if user: $user.name $else: Unknown
Borrowed $datestr(datetime_from_utc_timestamp(loan['loaned_at']))
$if loan['expiry'] is None: $# Not yet fulfilled Not yet downloaded.
Download Now $else: $:macros.FormatExpiry(loan['expiry'])
$elif borrow_status.checkedout_on_ia:
Checked out on Internet Archive.
$elif borrow_status.resource_epub == 'checkedout':
ACS4 server is showing that ePub is checked out.
$elif borrow_status.resource_pdf == 'checkedout':
ACS4 server is showing that ePub is checked out.
$elif not waitinglist:
This title is available to borrow.
$else: No current loans.

Waiting List

$if waitinglist:
$for record in waitinglist: $ u = record.get_user() $ status = record['status']
$ungettext("%d person waiting", "%d people waiting", len(waitinglist), len(waitinglist)) Status
$loop.index $if u: $u.name $else: $record['userid']
$ ndays = record.get_waiting_in_days() $ungettext("Waiting for %d day", "Waiting for %d days", ndays, ndays)
$record['since']
$record['status'].title()
$if status == "available": $ delta_hours = record.get_expiry_in_hours()
$if delta_hours == 0: Less than an hour to borrow it. $elif delta_hours == 1: One more hour to borrow it. $else: $delta_hours more hours to borrow it.
$else: No one is waiting for this title.

You

Borrow Info

Borrowable? $cond(page.in_borrowable_collection(), "Yes", "No")
$if loan_users: Borrowed by: $:format_users(loan_users) $else: Borrowed by: None

Borrow Status

$ status = get_borrow_status(page.ocaid)
$if status.checkedout: Status: Not Available $else: Status: Available
Reason: $if status.has_loan: Checkedout on OL $elif status.has_waitinglist: Some people are on the waiting list $elif status.checkedout_on_ia: Checkedout on IA $else: not checked out either on OL or IA

Sources:
  • Open Library - $cond(status.has_loan, 'Checked out', 'Not checked out')$cond(status.has_waitinglist, ", but have people on waiting list", "")
  • Internet Archive - $cond(status.checkedout_on_ia, 'Checked out', 'Not checked out')
Formats:
  • Bookreader - $status.resource_bookreader
  • PDF - $status.resource_pdf
  • ePub - $status.resource_epub

Book Info

Available loans

$if available_loans: $for loan in available_loans:
$:json_encode(loan, indent="  ", sort_keys=True)
$else: None found

Current loans

$if edition_loans: $for loan in edition_loans:
$:json_encode(loan, indent="  ", sort_keys=True)
                    
$else: No current loans

Edition ebook record from datastore

$:json_encode(edition_ebook, indent="  ", sort_keys=True)
$def resource_info(urn): $ bss = 'http://lending.us.archive.org/bss/bss.py' Loan Status | Resource Info | Fulfillment Info

Book status in ACS4

Waiting List JSON

$:json_encode([doc.dict() for doc in waitinglist], indent=True)