v3.1.2 - Share Your Shelf, Season by Season
Important
⚠️ As always, export your database before upgrading. Safety first!
This one had help. Two people sent code this cycle instead of just issues! Thank you @Siebe-Uy and @minchetas.
🔗 Public Share Links
Generate a read-only link, and a QR code, that lets anyone browse a collection without an
account. The use case @aarondixon described when opening the issue is exactly the one that
shipped: a QR code taped next to your shelf, so guests scan it and browse on their own phone,
and you never maintain an account for anybody.
- Several links at once, each independent. Disabling, regenerating or deleting one never
touches the others. - Scoped links. A link can show the whole collection, or only some types and formats,
"Vinyls only", "CDs and Vinyls but not Cassettes". The nav bar and the filters follow suit,
so a visitor is never offered a control that names something the link hides. - The QR code is generated by your own instance. The token never goes to a third-party
QR service. - Read-only, enforced at the route. A share visitor cannot add, edit, delete, refresh or
annotate anything, cannot reach the wishlist, the dashboard, the admin panel, settings or
backups, and cannot see another collection. - Two things a signed-in viewer sees are kept from a link, because a public link travels
further than a member ever does: where items are kept (the Location field disappears
from the item page, the cards and the filters, and its values are never even read), and
who is behind the collection ("Added by" and "Last modified" are not shown). - Items you already hide from viewers with the Visibility settings stay hidden from share
links too, including by direct URL.
Built by @Siebe-Uy, from @aarondixon's issue. Full guide in
docs/sharing.md.
📺 TV Shows, Season by Season
A show can now hold its seasons, each a full item of its own: its own cover, its own year,
its own episode list, its own comments. Asked for by @LordChabelo.
- When you add a show, a checklist says which seasons you own. Seasons already in your
collection are ticked and locked, so the list states what you have instead of inviting you
to add it twice. - Ticking a season you're missing attaches it to the show you already have. No duplicate
cover, no second entry for the same series. - Tick nothing and the show is added as a single item, which is what every existing item
has always been. That's not an option to find, it's the default. - On the shelf, a show holding several seasons shows itself and says "Seasons 1 to 4". A show
holding exactly one shows that season, its artwork, its title, because that box is what
you actually own. - Episodes, per season: seen or not, a rating, and your own notes. A metadata refresh
merges instead of replacing, so correcting an air date never wipes what you wrote.
Note
This is not retroactive. A series already in your collection keeps being one item until you
convert it by hand: search for the show, tick the seasons you own, save. Your existing
item becomes the show's entry and the seasons attach to it and the confirmation page now
tells you that's about to happen before you save.
🏷 A Second Badge, In the Free Corner
The cover badge told you vinyl but not whether it was an LP, a 12" or a 7", and said nothing
about the sleeve. You can now put any field of any module in the free corner of the cover,
chosen per module and per collection in the Customize panel, and pick which corner it sits in
from a picker that shows you the result. Sleeve condition reads "VG+", not "Very Good Plus
(VG+)", a corner is narrow. Thanks to @jws5406 for both halves of this (#87 and #88).
Along the way the badge overlay stopped existing in four slightly different copies that
disagreed on where it sat, which is why there was no free corner to put anything in before.
🧭 Getting Back Where You Were
- Editing an item returns you to it, and from there the back arrow goes to the page you
actually came from, page 35 of 70, with your filters and your sort still on it. Deleting
goes to the same place. Thanks to @jws5406! - Jump to any page. Long collections only offered next/prev and a couple of numbered
buttons, so a page far from either end was unreachable. The pagination now has a number
input where the...gap was: type a page, press Enter. Built by @Siebe-Uy.
✨ Smaller Things That Matter
- Modified by. Item pages now show who last changed an item by hand, next to who added it.
A provider filling in a cover is nobody's edit, so it has a date of its own, shown as a
caption under the Refresh button, and never erases the name of the last person who really
touched the item. This closes the half of @chibashr's request that 3.1.1 left open. - Titles sort the way a shelf does. "The Wall" files under W, "Ámbar" sits next to
"Amber", and case no longer splits a list in two. Thanks to @LordChabelo! - CSV imports stop giving up silently. When a provider said "too many requests", the row
was counted as a miss and the item came in bare, and no refresh tool could rescue it,
because it was never linked to the provider at all. The import now waits the provider out
and retries, slows the whole run down after a rate limit instead of walking into the same
wall, and tells you at the end how many items came in without data. Thanks to @code-sterling
for a report that pinned the cause exactly! - Translations. A pass over Spanish and Italian where "Show" (the verb) had been
translated as "a show, a performance", plus a nav link that was hardcoded in French and
showed up that way in every language. Thanks to @minchetas, who sent the fix!
🛠 Fixes
- Fixed external IDs being rewritten as text on every save. The edit form went through the
base model, sotmdb_idbecame"1396"instead of1396. Nothing looked broken, the item
still displayed, but every lookup comparing the ID as a number missed it, starting with
duplicate detection, so the same record could be added twice. Every module was affected. The
write path is fixed and a migration repairs what it left behind on your instance at startup. - Fixed a show and its seasons being separated by a collection restore, a move to the wishlist
or the duplicate warning. - Fixed the QR code of a share link still being served after the link was switched off.
- Fixed the Personalization link in the nav showing in French whatever your language.
- Fixed the Spanish cassette label and a handful of labels left lowercase.
Same as always: nearly every line came from one of your issues. Thank you @aarondixon,
@jws5406, @LordChabelo, @chibashr and @code-sterling for the reports, and a special one this
time to @Siebe-Uy and @minchetas, who turned up with working code.
Love u all <3