library: add Quick Add page (scan an ISBN, the book is added)

A small standard-library Python service next to Koha:
- looks the code up via Z39.50 (yaz) then Open Library over HTTPS
- checks Koha for an existing copy (ISBN-10/13 and UPC/EAN aware)
- adds the record + an item with the next barcode via Koha's REST API
- scanner-friendly UI: auto-focus, audible feedback, duplicate card with
  'add another copy', manual entry when nothing is found, undo, and the
  barcode range to print labels for
Also: enable RESTBasicAuth, map 024$a to the ean column, wire the service,
port and credentials into compose/install.sh.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013wi3ZSot4XbUViwRFgLpRf
This commit is contained in:
Claude
2026-11-06 10:24:54 +00:00
parent f4da2608cd
commit 2ef8f68b9b
8 changed files with 853 additions and 0 deletions
+25
View File
@@ -43,6 +43,31 @@ services:
volumes:
- koha-data:/var/lib/koha
# Scan an ISBN -> the book is added (Z39.50 lookup, then Koha's REST API).
quickadd:
build:
context: ./quickadd
image: library-quickadd:local
container_name: library-quickadd
restart: unless-stopped
depends_on:
koha:
condition: service_started
environment:
TZ: ${TZ:-UTC}
KOHA_API: http://koha:8081/api/v1
ADMIN_USER: ${ADMIN_USER:-admin}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
KOHA_LIBRARY: HOME
OPAC_PORT: ${OPAC_PORT:-8080}
STAFF_PORT: ${STAFF_PORT:-8081}
QUICKADD_SOURCES: ${QUICKADD_SOURCES:-z3950:lx2.loc.gov:210/LCDB,openlibrary}
ports:
- "${QUICKADD_PORT:-8082}:8082"
volumes:
- quickadd-data:/data
volumes:
db-data:
koha-data:
quickadd-data: