library: barcode modes, patrons/lending, install-time shelves and item types

Quick Add:
- barcode choices: automatic (zero-padded, >= 7 digits), scan a pre-printed
  sticker per item, or none for now; bulk 'give barcodes to items without one';
  reserve a block of numbers and print the sheet ahead of time (link opens
  Koha's range printer prefilled)
- default shelf saved on the server (shared by every device)
- item types follow Koha; CSP allows cover redirects; aria attrs fixed

Koha bootstrap:
- default lending rule (3 weeks, 25 items, 3 renewals, no fines) - a fresh
  Koha refuses every checkout without one
- automatic library-card numbers (start at 1000001), fines off
- Koha's own auto-barcode off (one numbering scheme)
- patron card template (Avery 5371) and layout with a scannable barcode
- LIBRARY_CODE, SHELVES and ITEM_TYPES honoured at first install

Why 7 digits: decoded printed sheets - 7-digit Code 39 read back 40/40, 6-digit
all-numeric symbols were reinterpreted as Code 32 for ~1 in 10 values.

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 11:07:02 +00:00
parent aa7950aa9e
commit 76866e8bbc
8 changed files with 601 additions and 98 deletions
+54 -9
View File
@@ -37,9 +37,9 @@ scanner works as a keyboard, so just scan.
1. The ISBN is looked up on the Library of Congress over **Z39.50**. If that server cannot
be reached (many networks block port 210), **Open Library** over HTTPS is used instead.
2. If you already have the title, you are asked whether to add **another copy**.
3. Otherwise the record is added with the **next barcode number**, the Dewey (or LC) call
number from the record, the item type chosen at the top (Book, Movie, Music, Game) and
the shelf you picked.
3. Otherwise the record is added with a barcode (see **Barcodes** below), the Dewey (or LC) call
number from the record, the item type chosen at the top (Book, Movie, Music, Game) and the shelf
you picked.
4. Nothing found? A short form lets you type the title and it is added anyway.
5. **Undo** removes an item (and the record, if it was the only copy). Freed barcode numbers
are never reused, because a label may already be printed.
@@ -54,11 +54,40 @@ stack of books without looking at the screen.
Phone camera scanning is not built in (browsers only allow the camera on HTTPS or
`localhost`). A scanner-app that "types" the code into the box works.
## Barcodes: your choice
Barcodes are optional. Open **Barcodes and settings** at the bottom of the Add books page:
| Choice | What happens |
|---|---|
| **Number them automatically** (default) | Each new item gets the next number, zero-padded to 7 digits (`0000042`). |
| **I stick a pre-printed barcode on each one** | After the ISBN is recognised you scan the sticker on the book. A sticker that is already in use is refused. |
| **No barcodes for now** | Items are added without one; the catalogue still shows them. |
Later, in the same panel:
* **Give them barcodes** numbers every item that has none, in one go, and shows the range to print.
* **Print a sheet of barcodes ahead of time** reserves a block (say 80 numbers), and the link opens
Koha's label printer with that range filled in. Print the sheet, and stick the labels on whenever you like.
Reserved numbers are never handed out again.
Good to know:
* Koha's range printer needs both ends to be the same length, so barcodes are fixed-width digits. They are
**at least 7 digits** on purpose: 6-digit all-number Code 39 barcodes can be misread as the pharmacy
"Code 32" format by some scanners (checked with a decoder: 7 digits read back perfectly, 6 did not).
* Prefixes (such as `HOME-0042`) are not offered: Koha's range printer cannot print them.
* Barcode types Koha can print: Code 39 (default, read by every scanner), Code 39 with a Modulo-43 or
Modulo-10 check digit (needs a scanner set up for check digits), EAN-13 (exactly 12-13 digits),
COOP 2 of 5 and Industrial 2 of 5. Change it under *Cataloging → Label creator → Label layouts*.
* Koha's own automatic barcode is switched off so there is one numbering scheme. Items added in the staff
interface have no barcode until you press **Give them barcodes**.
## Printing labels
Quick Add shows the barcode range for the session ("Barcodes 12 to 27"). In the staff
interface open **Cataloging → Label creator → Print barcode range**, enter those numbers,
and pick a template and layout:
From the Add books page, **Print labels** opens Koha's label printer with the barcode range of what you
just added filled in (you may be asked to log in to the staff interface). Pick a template and layout
and print at 100% scale (not "fit to page") so the labels line up.
| Template | Sheet |
|---|---|
@@ -72,7 +101,21 @@ and pick a template and layout:
| Spine - call number | call number only |
| Barcode only | barcode |
Print at 100% scale (not "fit to page") so the labels line up.
## People and lending
Lending is set up for a home library: 3-week loans, up to 25 items, 3 renewals, **no fines**.
Change it under *Administration → Circulation and fines rules*.
1. **Add a person**: staff interface → *Patrons → New patron → Friend / borrower*. Only the name is
required; the **library card number is assigned automatically** (`1000001`, `1000002`, ...). Numbers
start well away from item barcodes so a scan can never mean both.
2. **Print the card**: *Tools → Patron card creator → New batch*, add the patron's number, *Export card
batch*, template **Avery 5371**, layout **Library card**. The card carries the name and a scannable barcode.
3. **Check out**: *Circulation → Check out*. Scan the person's card, then scan each book. The due date appears
on screen.
4. **Check in**: *Circulation → Check in*, scan the book.
A USB or Bluetooth scanner types the number and presses Enter, so it works in all of these boxes.
## Finding the books
@@ -80,10 +123,12 @@ The public catalogue searches title, author, subject and ISBN, and shows each co
availability, call number and **shelving location**.
On the Add books page, pick the **Shelf / room** before you scan; every book you add
gets it, and the page remembers your choice. Change it whenever you move to another shelf.
gets it. The choice is saved on the server, so every device shares it. If all your books are in one
place, leave it on *(not set / all in one place)*; nothing is shown and nothing needs changing. Change it
whenever you move to another shelf.
The list comes from the staff interface (*Administration → Authorized values → LOC*), which
starts with a few rooms such as Fiction, General stacks and Reference. Add your own there,
for example "Living room - bookcase 2".
for example "Living room - bookcase 2". (Koha has no way to add a room from the Add books page.)
## Common tasks