Files
AdventureLog/documentation/docs/changelogs/v0-12-1.md
Sean Morley 42785f1925 v0.12.1 version update + itinerary validation fixes (#1158)
* fix(itinerary): suppress false-positive UniqueTogetherValidator in CollectionItineraryItemSerializer (#1157)

DRF 3.15 inspects `UniqueConstraint` entries from `Model._meta.constraints`
and auto-generates `UniqueTogetherValidator` objects for them, but strips
each constraint's `condition` argument in the process.

The `CollectionItineraryItem` model has two conditional constraints:
- `unique_order_per_collection_day`: unique `(collection, date, order)`
  only when `is_global=False AND date IS NOT NULL`
- `unique_order_per_collection_global`: unique `(collection, order)`
  only when `is_global=True`

Without their conditions, DRF turns the second constraint into a validator
that checks `(collection, order)` across *all* rows regardless of type.
This means adding any dated itinerary item (transportation, lodging, etc.)
with `order=0` is rejected with 400 whenever a trip-wide (global) item
already holds `order=0` for the same collection — which is almost always,
since global items start at order 0.

Fix: set `validators = []` on the serializer Meta to suppress the
incorrectly-stripped validators. The view already adjusts `order` to avoid
real conflicts within each group, and the DB-level constraints continue
to enforce conditional uniqueness correctly.

This actually fixes #1153 for me

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore(release): update version to v0.12.1 in settings, documentation, Dockerfile, and config

* fix(config): update appVersion to remove suffix and align with release v0.12.1

* docs(changelog): update v0.12.1 release notes with new features and improvements

---------

Co-authored-by: Maxim Burgerhout <maxim@wzzrd.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 12:58:42 -04:00

2.2 KiB
Raw Permalink Blame History

AdventureLog v0.12.1

Released 5-26-2026

Hi everyone!

Im excited to announce AdventureLog v0.12.1, an incremental release that improves the day-to-day experience of logging, managing, and visualizing your travels. While this update is smaller than v0.12.0, it brings meaningful quality-of-life upgrades, better reliability, and fixes bugs associated with the v0.12.0 feature update.

New Quick-Add Workflow

  • Added the location and lodging quick-add feature to make logging places faster and more convenient. (#687)
    • Quick-add pulls from Google Maps so the integration is required for it to be available on your instance

🗺️ Collection Map Fixes

  • Fixed a bug where collection maps displayed no markers or pins even when the underlying data was correct (#1100)

Miscellaneous

  • New light and dark themes that better reflect AdventureLog
  • Ability to set default basemap for the map views in the user settings page
    • This is now reflected across all maps in the application
    • Added OpenFreeMap Liberty as a basemap option
  • Opening a location in an external map provider now searches and displays the location properly
  • Enhanced API key management interface for a clearer and more usable experience
  • Improved API hashing algorithm for higher security
  • Various UI and workflow refinements across the app
  • General stability and usability improvements
  • Make it so only collection owners can edit collection details

🙌 Thanks to the Community

This release was shaped by an incredible amount of feedback, ideas, testing, and code contributions from the community. Thank you to everyone who opened issues, reviewed changes, tested builds, and helped refine this update.

💻 Code Contributors

  • @HangoverHGV
  • @citrusjunoss
  • @lesensei
  • @vorbeiei
  • @mllopart
  • @stephanzwicknagl
  • @orhunavcu
  • @bittin
  • @totoroot
  • @cyphra
  • @Pexilo

💖 Support the Project

If AdventureLog helps you plan, remember, or relive your travels, consider supporting the project:

👉 https://seanmorley.com/sponsor

📖 Full Changelog: https://github.com/seanmorley15/AdventureLog/compare/v0.12.0...v0.12.1

Happy travels!

Sean Morley (@seanmorley15) Founder & Project Lead