Replies: 20 comments 14 replies
|
All three are done and merged:
It's all on the main branch, so it lands in the next release (0.7.31) rather than something you can download today. One honest caveat: I could only test the scanner headless (no camera on my build machine), so the live decode I haven't run on real hardware yet — once it's out, tell me how it behaves on your devices. The copy-tracking side is the part I most wanted to get right for a center like yours, so I'd really like to hear whether the label + scan flow matches how you track copies day to day. |
|
Thank you! As soon as the release comes out, I'll immediately check how everything works. |
|
Thank you for the improvements — printing labels with physical copy numbers instead of the EAN now works well.
|
|
All of this is in v0.7.31, out now. Copy code alone identifies the book. On the Create New Loan form, entering or scanning a copy inventory code now resolves the book automatically and pins that exact copy. The title search is no longer something you have to do, and you can no longer end up with a loan registered against a book that doesn't match the scanned copy — the book field fills itself from the code, with a status line confirming the identified copy (and a warning if that copy isn't available). Subtitle in the loan search. The book-search suggestions on that form now show the subtitle, so a textbook and its workbook are distinguishable there too. The loan details page and the receipt PDF also carry the subtitle and the physical copy inventory code. Camera scanner. It was blocked by the "Remember me". That checkbox was silently ignored due to a field-name mismatch — it is honoured again. Update from the admin panel, or grab it here: https://github.com/fabiodalez-dev/Pinakes/releases/tag/v0.7.31 |
|
The "another error" — the block of raw JavaScript shown as text on the loans list after creating a loan — is fixed in v0.7.32. An inline script was being closed early by a comment that contained a literal script-closing tag, so the rest of the JS rendered as page text. It no longer does. This is on top of the loan-workflow and camera-scanner fixes already in 0.7.31. https://github.com/fabiodalez-dev/Pinakes/releases/tag/v0.7.32 |
|
Overall we're very impressed — the system is now fully usable in our library. The camera scan module works like a charm, especially from a phone, and the loan/return workflow is intuitive for our staff. Thank you for the work on the previous fixes.
Request: Please ensure the "Download JSON" action always exports a complete file containing all current keys, with an empty string for any key that doesn't yet have a translation in that language. This would let us easily identify and fill in only the missing/new keys after each update, and would also prevent custom language files from being silently dropped during updates. |
|
v0.7.33 is out with the three improvements from your last round:
Update from the admin panel, or grab it here: https://github.com/fabiodalez-dev/Pinakes/releases/tag/v0.7.33 |
|
Bug Report — Inconsistent/Unstable Generation of Physical Copy Numbers We've found a bug in the generation of physical copy inventory codes when changing the "number of copies" for a book. The numbering becomes inconsistent and can eventually cause a database error.
Root cause (as observed): The system doesn't consistently apply the
|
Feedback — Label Content ScalingThe barcode label generation module has improved a lot — thank you. One remaining issue with the label content configuration: |
Feedback — Email/SMTP Testing and Due Date VisibilityThank you for fixing the physical copy numbering and label content scaling issues — both now work well.
Request:
|
|
All three items from your 07-13 round are in v0.7.37-rc.1 (release candidate), out now. 1. Send test email. Settings → Email has a Send test email button that sends a message with your current config (to a chosen address, or the logged-in admin) and reports the result inline — a green success line, or the specific error. While wiring it I also found and fixed the likely cause of "settings valid but no mail arrives": the 2. Due-date visibility. The Loans List has a dedicated Due date column, turned red when a loan is due today or overdue. The dashboard's Active Loans list uses the same red highlight — the exact rule the Physical Copies table already used, so it's consistent everywhere. "Today" is computed in the application timezone, not the browser's. 3. Due/overdue notifications. The warning query was matching the due date exactly at It's a prerelease, so it isn't the auto-update "latest" yet — download it from the releases page: https://github.com/fabiodalez-dev/Pinakes/releases/tag/v0.7.37-rc.1 . Give it a run and let me know if the due-date and notification behaviour fits your workflow. |
|
v0.7.37 is now the stable release (out of RC) — it's the "latest", so your instance can update straight from Settings → Updates. Everything from the previous round is in it: the Send test email button (with the SMTP driver fix that was the likely cause of "settings valid but no mail arrives"), the Due date column + red due-today/overdue highlighting on both the loans list and the dashboard, and the due-today/overdue notifications. Let me know how it holds up in your workflow. |
Feedback — Loan Form UX and Docker Localization PersistenceA few more bugs/inconveniences from continued testing:
If an error occurs after submitting the "Create New Loan" form, all previously entered data is lost and must be re-entered from scratch. Request: Please preserve the entered form data when a submission error occurs, so the user only needs to correct the issue rather than re-enter everything. Additionally, next to the "User" field, it would help to add a "Me" button that automatically fills in the currently logged-in user — useful for cases where a staff member or teacher is registering a loan for themselves.
There's a real use case where a teacher checks out many books at once (e.g., to later distribute individually to students while tracking them under their own account). Currently, all fields must be re-entered in full for each individual copy, which is slow and repetitive. Suggestion: Either retain the previously entered field values (except "Copy code (inventory)", which should reset each time) so registering each additional copy takes minimal input, or alternatively, add a batch/multi-copy loan registration feature.
When deploying via the official Suggestion: Move the locale folder inside storage (which is presumably already volume-mounted), or alternatively create a dedicated volume specifically for localization files, so custom translations survive updates in the official image as well. |
Feedback — Loan Form Success Message & Focus Issue, Physical Copy SortingTwo more issues found during continued testing:
The "Loan created successfully." message remains on screen after changing form fields, the date, or entering a new copy code for the next loan. Since the message doesn't clear or update, it becomes unclear to the user which action it actually refers to — did it apply to the current entry, or a previous one? This is made worse by an apparent focus issue: after successfully scanning a new barcode and clicking "Save and register another copy," nothing happens on the first click — the button (or form) appears unresponsive and requires a second click to register. The same behavior occurs with any element on the form after closing the scanner dialog: the page seems to lose focus/activity and requires an extra click anywhere on the page before it responds again. Request:
The sorting of physical copies in the list uses alphabetical (string) order rather than numerical order. For example, with 20 copies of a book, the order produced is:
instead of the expected numerical sequence (C1, C2, C3, ... C20). This is inconvenient in general, but especially problematic when printing labels, since it directly affects the order in which they're printed. Request: Please update the sorting logic for physical copies to sort numerically by the copy number (natural sort), rather than as plain strings. |
|
Both of your last rounds are in the stable v0.7.59, out now. From your 08-11 notes
From your 08-04 notes
The loan-form behaviours above now have browser tests, so they won't quietly regress. Update from Settings → Updates (0.7.59 is the "latest"), or grab it here: https://github.com/fabiodalez-dev/Pinakes/releases/tag/v0.7.59 |
|
Thank you for your quick response to my request, I really appreciate it. A serious issue has been identified with new user registration: New users are always assigned Italian, regardless of configured default language Newly created users are always set to Italian as their interface language, regardless of the APP_LOCALE environment variable (in our case set to en_US) or any other selected default/system language. This is a significant usability problem: new users who don't understand Italian have no way to figure out how to change the language themselves, effectively making the system unusable for them out of the box. Request:
Given the impact (new users are effectively locked out of a usable interface until an admin intervenes), we'd consider this a high-priority fix. |
|
Feedback (Blocker) — Cannot Loan Multiple Physical Copies of the Same Book to One User Hello, Now that the system is in real day-to-day use, a new blocker has surfaced: The system does not allow registering loans for multiple physical copies of the same book to the same user When attempting to register loans for different physical copies of the same book to one user, the system refuses. We understand the reasoning behind this restriction in a typical library context — one person normally has no need for two copies of the same title. However, in our use case it's a real obstacle: as described previously, a teacher often checks out many copies of the same textbook at once (to distribute to students while tracking them under their own account), and this restriction makes that workflow impossible. Request: We're not sure what the best solution would be — perhaps a setting/option to allow multiple copies of the same book per user, a per-role exception, or simply lifting the restriction when loans are tied to distinct physical copies (since each copy is individually tracked anyway). Any of these would resolve the blocker for us, and we'd be happy with whichever approach fits the system's design best. Thanks in advance! |
|
The multiple-copy blocker is fixed — the change is on its way as 0.7.64 (currently on the I went with the option you suggested last — lifting the restriction when the loans are tied to distinct physical copies — put behind an opt-in switch so the default library behaviour is untouched. What it does
The teacher workflow
Upgrade safety
I've covered the whole flow with browser tests — enabling the setting, two distinct copies to one borrower, the same copy rejected, strict mode still rejecting a second copy, and the batch "save and register another copy" loop — so it won't quietly regress. I'll follow up here when 0.7.64 ships. If it helps, you're welcome to test the branch build before then. |
|
Both of your open threads here are released — 0.7.65 is the current "latest", so Settings → Updates picks up everything below. Multiple copies of the same title to one borrower (your 08-20 blocker). Shipped in 0.7.64, hardened in 0.7.65. It's the opt-in I described: Settings → Loans → "Multiple copies of the same title", off by default. With it on, one borrower can hold several active loans of the same title as long as each is bound to a distinct physical copy; each copy still counts as one loan against the per-user limit, and nobody can ever hold two open loans on the same copy. The teacher scan-and-save loop ("Save and register another copy" keeps the borrower and title, clears only the copy code) works with it on. 0.7.65 adds the circulation hardening around it — the per-copy overlap check no longer trips on a copy's own earlier loan, and legacy "ready for pickup" loans with no deadline are backfilled instead of blocking. https://github.com/fabiodalez-dev/Pinakes/releases/tag/v0.7.64 New users forced to Italian, and no per-user language field (your 08-15 report). Fixed before the above, in 0.7.62. The registration form now has a "Preferred language" select, defaulting to the language the visitor is browsing in and validated server-side against the installed locales — new users are no longer hardcoded to Italian. The admin Edit-user form carries the same language field, so you can set or correct the language for any existing user without relying on them to find the switch. In the same release, user-facing notification emails render in each recipient's own language, not the install language. https://github.com/fabiodalez-dev/Pinakes/releases/tag/v0.7.62 If anything in the multi-copy flow or the language handling doesn't fit how your center works day to day, tell me and I'll adjust. |

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hello,
We are currently trying to adapt Pinakes for use at an Adult Learning Center, where it would serve as a system for managing educational literature and tracking borrowing/returns by both teachers and students. During this process, we've run into several limitations that currently prevent full deployment. We'd like to request improvements or ask whether workarounds already exist for the following:
When searching for a book by title, the results list displays only the main title, not the subtitle. In our collection, a base textbook and its accompanying workbook often share the exact same title and are distinguished only by subtitle (e.g., "Workbook" vs. no subtitle). This makes it impossible to tell them apart in the search results, leading to a high risk of selecting the wrong item.
Request: Please add the subtitle field to the search results list (or make it optionally visible/configurable), so that items with identical titles can be distinguished.
The system supports registering individual physical copies of a book with unique numbers, which is exactly what we need for accurate inventory tracking. However, there is currently no way to make practical use of this feature:
Request: Please add the unique copy number to the printable labels, and add the ability to select/scan a specific physical copy (not just the general title) when registering a loan or return.
Building on point 2 — once individual physical copies can be identified by a unique code (e.g., barcode or QR code) on the printed label, we would need a simple and transparent workflow for registering borrowing and returns using that code, ideally including:
A dedicated "Scan" button next to the code input field.
The ability to use a device's camera as a barcode/QR scanner directly in the browser, without requiring external hardware.
For reference, the zxing-wasm JavaScript library has worked well for this kind of in-browser camera scanning in our testing, and might be a useful option to consider for implementation.
Thank you for considering these requests. We believe these changes would make the system significantly more practical not only for our use case but for any library managing physical copies with unique identifiers. We're happy to provide more details about our specific workflow or test any changes if that would help.
Best regards,
Nikola
All reactions