Commit Graph

1726 Commits

Author SHA1 Message Date
3526c963a4 chore: add missing project scaffolding 2026-03-08 20:01:46 +00:00
006a28ea0f move documentation/ to docs/ 2026-03-08 20:00:08 +00:00
604b52bcc7 fix(itinerary): make optimize nearest-neighbor context-aware of anchor positions
The optimize function always started nearest-neighbor from the first
array element, ignoring where the traveler actually is after preceding
anchors (flights, lodging). Now passes the preceding anchor's exit
coordinates (destination for transportation) so the algorithm picks
the spatially nearest item as the starting point.
2026-03-08 19:41:19 +00:00
73289725eb Merge branch 'feat/llm-travel-agent' into main 2026-03-08 18:54:50 +00:00
64345d44d6 Merge branch 'fix/itinerary-reactivity-optimize' into main 2026-03-08 18:54:46 +00:00
fd3ca360de fix(chat): sanitize error responses and add tool kwargs allowlist
Prevent API key and sensitive info leakage through exception messages:
- Replace str(exc) with generic error messages in all catch-all handlers
- Add server-side exception logging via logger.exception()
- Add ALLOWED_KWARGS per-tool allowlist to filter untrusted LLM kwargs
- Bound tool execution loop to MAX_TOOL_ITERATIONS=10
- Fix tool_call delta merge to use tool_call index
2026-03-08 18:54:35 +00:00
757140ec70 feat(chat): add LLM-powered travel agent with multi-provider support
Implement a full chat-based travel agent using LiteLLM for multi-provider
LLM support (OpenAI, Anthropic, Gemini, Ollama, Groq, Mistral, etc.).

Backend:
- New 'chat' Django app with ChatConversation and ChatMessage models
- Streaming SSE endpoint via StreamingHttpResponse
- 5 agent tools: search_places, list_trips, get_trip_details,
  add_to_itinerary, get_weather
- LiteLLM client wrapper with per-user API key retrieval
- System prompt with user preference context injection

Frontend:
- New /chat route with full-page chat UI (DaisyUI + Tailwind)
- Collapsible conversation sidebar with CRUD
- SSE streaming response display with tool call visualization
- Provider selector dropdown
- SSE proxy fix to stream text/event-stream without buffering
- Navbar link and i18n keys
2026-03-08 18:44:44 +00:00
6203d7ed87 fix(itinerary): fix Svelte 4 reactivity for temperature display and connector metrics
Temperature display always showed 'unavailable' because formatDayTemperature()
read dayTemperatures from closure, which Svelte 4's compiler doesn't track in
template expressions. Same issue affected getLocationConnector() reading
connectorMetricsMap from closure.

Fix: pass both state variables as explicit function parameters so they appear
in template expressions and trigger re-renders on async updates.

Also improve optimize button diagnostics with console logging and better
toast feedback when items lack coordinates.
2026-03-08 18:18:53 +00:00
d4e0ef14b8 fix(itinerary): fix route optimization reactivity and replace api key provider dropdown with AI LLM providers
- fix optimizeDayOrder() dual-update: directly set days[dayIndex].items + days before
  saveReorderedItems() so it reads the correct post-optimization order synchronously
  (Svelte 4 batches reactive statements; days wasn't updated before save read it)
- also patch collection.itinerary order values so reactive rebuild uses new order
- replace single google_maps <option> with 8 AI LLM provider options
  (anthropic, openai, gemini, ollama, groq, mistral, github_models, openrouter)
- add getApiKeyProviderLabel() helper for saved key display with google_maps fallback
- add i18n keys for all new provider labels in en.json and de.json
2026-03-08 17:45:44 +00:00
c5be09bcb9 fix(frontend): clean docs links and improve settings clarity 2026-03-08 17:21:51 +00:00
2fd11dbd26 fix: stabilize post-MVP travel-agent and itinerary workflows 2026-03-08 16:51:19 +00:00
fb2347345f fix(docker): stabilize compose startup across prod and dev stacks 2026-03-08 14:54:55 +00:00
e56170fbd4 merge: integrate mvp trip features and bun migration 2026-03-08 14:46:20 +00:00
c5939e2957 feat(frontend): apply itinerary UI and docs refinements 2026-03-08 14:42:32 +00:00
2ad814334f chore(frontend): migrate toolchain from pnpm to bun 2026-03-08 14:41:36 +00:00
8c0637c518 feat: ship MVP itinerary optimization, weather, AI key prefs, and MCP tools 2026-03-08 13:49:32 +00:00
9eb0325c7a fix(frontend): simplify collections view and restore invite access
Unify collections and shared items under a single Collections tab while keeping Archive separate, and fix card layering so menus render correctly. Restore invite discoverability by adding navbar access to /invites and add missing i18n keys to prevent raw key labels in collections/invites UI.
2026-03-08 01:29:52 +00:00
f11a5051c6 fix(ci): lowercase GHCR owner tags and harden frontend runtime image 2026-03-07 21:18:21 +00:00
7cf1b783ae fix(ci): publish container images to GHCR only 2026-03-07 21:02:38 +00:00
4df5036534 fix(ci): use GITHUB_TOKEN for GHCR and stabilize Trivy scan 2026-03-07 20:56:52 +00:00
da84d171e5 fix(frontend): remediate Trivy vulnerabilities in build image 2026-03-07 20:40:51 +00:00
7bcab5afd8 rm docs/ 2026-03-07 20:21:06 +00:00
63996a532c chore: update latest workflows and dev compose overrides
Allow manual dispatch and self-triggering path updates for latest image workflows while bumping checkout/login actions. Adjust dev compose to favor local builds and bypass backend image entrypoint for local startup.
2026-03-07 20:20:20 +00:00
288f81f631 fix: refine itinerary lodging placement and stay metadata
Align lodging cards with itinerary flow by rendering checkout stays before the timeline and check-in stays after it, while collapsing duplicate no-location stays. Tighten compact card metadata into a concise IN/OUT panel so stay details read cleanly without visual noise.
2026-03-07 20:18:26 +00:00
68a6aea023 chore: ignore local megamemory directory 2026-03-07 17:48:40 +00:00
2579cd46ce fix: make itinerary lodging cards compact and remove duplicate overnight summary 2026-03-07 17:47:22 +00:00
3af4f06944 feat: anchor lodging in itinerary days with boundary connectors 2026-03-07 17:28:03 +00:00
7d279883d5 fix: add directions links and stabilize connector metrics after drag 2026-03-07 15:47:41 +00:00
eb612f1cdf fix: keep itinerary connectors visible when route data is unavailable 2026-03-07 15:28:33 +00:00
cf84feb783 fix: restore itinerary connectors and refresh dependencies 2026-03-07 12:46:02 +00:00
a3d12bf4b2 feat: refine itinerary flow and add OSRM connector metrics 2026-03-07 11:54:13 +00:00
246d836459 feat: redesign itinerary flow and add catppuccin mocha theme 2026-03-07 10:20:06 +00:00
0b514a99ea feat: redesign collection UI with WanderLog-inspired card style
- CollectionCard: hero image with gradient overlay, title/date on
  image in white, glass pill status badges, compact stats footer,
  removes 'Open Details' button (entire card is clickable)
- collections page: clean white bg, underline tabs, 'New Collection'
  button in header, responsive grid starts at md breakpoint
- Fix empty dropdown for viewonly type, remove debug console.log,
  add aria-label to card container
2026-03-06 15:51:19 +00:00
04fb1dfb40 fix: replace native date inputs with custom DateInput/DateTimeInput components
Native <input type='date'> and <input type='datetime-local'> render
their display format (mm/dd/yyyy vs dd/mm/yyyy, 12h vs 24h) based on
browser/OS locale, ignoring HTML lang attributes in Firefox and
inconsistently in Chrome. The previous lang=en-GB fix was unreliable.

Create DateInput.svelte and DateTimeInput.svelte components that show
dd/mm/yyyy (and DD/MM/YYYY HH:MM for datetime) by formatting the ISO
value in JS, while delegating the actual picker to a hidden native
input triggered via showPicker(). Supported in Chrome 99+, Firefox
101+, Safari 16+ (covers all modern browsers).

Updated 8 component files across CollectionModal, ChecklistModal,
NoteModal, ImmichSelect, CollectionMap, TransportationDetails,
LodgingDetails, and LocationVisits.
2026-03-06 15:14:02 +00:00
52299c1ff2 fix: set lang=en-GB on html root to force dd/mm/yyyy and 24h inputs
The previous fix updated JavaScript date formatting functions to use
en-GB locale, but native <input type="date"> and <input type="datetime-local">
elements render their placeholder/display format based on the HTML
document's lang attribute, not JavaScript. Changing lang="en" to
lang="en-GB" on the root <html> element fixes all 15+ date/time
inputs across the app in one place.
2026-03-06 14:50:50 +00:00
370a50dcb2 chore: add missing project scaffolding 2026-03-06 14:34:16 +00:00
ed5ba58866 remove megamemory from repo 2026-03-06 14:27:30 +00:00
d32fcb6fed chore: complete rebranding from seanmorley15 to Alex-Wiesner/voyage
Replace all seanmorley15/Voyage repo URLs, ghcr.io/seanmorley15 container
image references, seanmorley.com/sponsor and buymeacoffee links with
the new repo (github.com/Alex-Wiesner/voyage) and new GHCR images
(ghcr.io/alex-wiesner/voyage-*). Attribution to original AdventureLog
author Sean Morley is preserved.
2026-03-06 14:25:16 +00:00
c57df72610 test: add geocoding lang parameter unit tests
8 standalone tests covering Accept-Language header in Nominatim
requests and languageCode field in Google Places payload, for both
explicit lang values (en, de, fr) and the default fallback (en).
2026-03-06 14:16:10 +00:00
f55b0ea230 fix: enforce dd/mm/yyyy, 24h time, and locale-aware location search
- Replace all 'en-US' and undefined locales with 'en-GB' in date
  formatting across 15+ frontend files (dateUtils.ts, cards, routes,
  Luxon calls) to consistently output day-first dates and 24h times
- Set hour12: false in all Intl.DateTimeFormat and toLocaleDateString
  calls that previously used 12h format
- Pass user's svelte-i18n locale as &lang= query param from
  LocationSearchMap and LocationQuickStart to the reverse-geocode API
- Extract lang param in reverse_geocode_view and forward to both
  search_osm and search_google
- Add Accept-Language header to Nominatim requests so searches return
  results in the user's language (e.g. Prague not Praha)
- Add languageCode field to Google Places API payload for same effect
2026-03-06 13:50:27 +00:00
df8d1adf15 Rename AdventureLog to Voyage and add fork attribution
- Replace all AdventureLog references with Voyage across ~102 files
  (7 case variants: AdventureLog, adventurelog, Adventurelog, ADVENTURELOG,
  AdventUrelog, AdventureLOG, adventure-log, adventure_log)
- Rename brand, static, and documentation assets to use voyage naming
- Rename install_adventurelog.sh → install_voyage.sh
- Update README.md and voyage_overview.md to credit AdventureLog as
  the upstream project and Sean Morley as its original creator
2026-03-06 11:05:26 +00:00
Sean Morley
2b644d3afa Bug Fixes + Romanian Localization (#1034)
* Added translation using Weblate (Romanian)

* Translated using Weblate (Romanian)

Currently translated at 4.1% (45 of 1073 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ro/

* Fix Svelte dependencies

* Add Romanian language support by registering locale files

* Update appVersion to 'v0.12.0-main-022726'

---------

Co-authored-by: Hango Bogdan Ioan <hangobogdan@gmail.com>
2026-02-27 15:30:18 -05:00
Sean Morley
c6efdaa75b Version bump for v0.12.0 (#1024)
* Update version to v0.12.0 across documentation, configuration, and Docker files

* Collapse Troubleshooting and Guides sections in documentation config
2026-02-23 09:00:13 -05:00
Sean Morley
bec90fe2a5 Bug Fixes + Duplicate Support (#1016)
* Update README.md supporter list

* Fix: Multiple bug fixes and features bundle (#888, #991, #617, #984) (#1007)

* fix: resolve location creation failures, broken image uploads, and invalid URL handling

- Add missing addToast import in LocationDetails.svelte for proper error feedback
- Add objectId check and error response handling in ImageManagement.svelte to prevent ghost images
- Add Content-Type check in +page.server.ts image action to handle non-JSON backend responses
- Add client-side URL validation in LocationDetails.svelte (invalid URLs → null)
- Improve Django field error extraction for user-friendly toast messages
- Clean up empty description fields (whitespace → null)
- Update BUGFIX_DOCUMENTATION.md with detailed fix descriptions

* feat: bug fixes and new features bundle

Bug fixes:
- fix: resolve PATCH location with visits (#888)
- fix: Wikipedia/URL image upload via server-side proxy (#991)
- fix: private/public toggle race condition (#617)
- fix: location creation feedback (addToast import)
- fix: invalid URL handling for locations and collections
- fix: world map country highlighting (bg-*-200 -> bg-*-400)
- fix: clipboard API polyfill for HTTP contexts
- fix: MultipleObjectsReturned for duplicate images
- fix: SvelteKit proxy sessionid cookie forwarding

Features:
- feat: duplicate location button (list + detail view)
- feat: duplicate collection button
- feat: i18n translations for 19 languages
- feat: improved error handling and user feedback

Technical:
- Backend: fetch_from_url endpoint with SSRF protection
- Backend: validate_link() for collections
- Backend: file_permissions filter() instead of get()
- Frontend: copyToClipboard() helper function
- Frontend: clipboard polyfill via server-side injection

* chore: switch docker-compose from image to build

Use local source code builds instead of upstream :latest images
to preserve our custom patches and fixes.

* fix: lodging save errors, AI language support, and i18n improvements

- Fix Lodging save: add res.ok checks, error toasts, isSaving state (#984)
- Fix URL validation: silently set invalid URLs to null (Lodging, Transportation)
- Fix AI description language: pass user locale to Wikipedia API
- Fix missing i18n keys: Strava toggle buttons (show/hide)
- Add CHANGELOG.md
- Remove internal documentation from public tracking
- Update .gitignore for Cursor IDE and internal docs

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: update location duplication handling, improve UI feedback, and enhance localization support

---------

Co-authored-by: AdventureLog Bugfix <bugfix@adventurelog.local>
Co-authored-by: madmp87 <info@so-pa.de>
Co-authored-by: Mathias Ponnwitz <devuser@dockge-dev.fritz.box>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Sean Morley <mail@seanmorley.com>

* Enhance duplication functionality for collections and locations; update UI to reflect changes

* Potential fix for code scanning alert no. 49: Information exposure through an exception

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Update Django and Pillow versions in requirements.txt

* Fix error logging for image fetch timeout in ContentImageViewSet

* Update requirements.txt to include jaraco.context and wheel for security fixes

* Update app version and add security vulnerabilities to .trivyignore

* Update backend/server/adventures/views/collection_view.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update frontend/src/lib/types.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Reorder build and image directives in docker-compose.yml for clarity

* Refactor code structure for improved readability and maintainability

* Remove inline clipboard polyfill script injection from server hooks (#1019)

* Initial plan

* Remove inline clipboard polyfill script injection from hooks.server.ts

Co-authored-by: seanmorley15 <98704938+seanmorley15@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: seanmorley15 <98704938+seanmorley15@users.noreply.github.com>

* Fix unhandled promise rejections in copyToClipboard click handlers (#1018)

* Initial plan

* Fix: make copyToClipboard handlers async with try/catch error toast

Co-authored-by: seanmorley15 <98704938+seanmorley15@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: seanmorley15 <98704938+seanmorley15@users.noreply.github.com>

* Harden `fetch_from_url` image proxy: require auth, rate-limit, and strengthen SSRF protections (#1017)

* Initial plan

* Harden fetch_from_url: require auth, rate-limit, block non-standard ports, check all IPs, re-validate redirects

Co-authored-by: seanmorley15 <98704938+seanmorley15@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: seanmorley15 <98704938+seanmorley15@users.noreply.github.com>

* Fix subregion filtering in world travel page to exclude null values

* Update package.json to use caret (^) for versioning in overrides

* fix: update package dependencies for compatibility and stability

- Added cookie dependency with version constraint <0.7.0
- Updated svelte dependency to allow versions <=5.51.4
- Updated @sveltejs/adapter-vercel dependency to allow versions <6.3.2

* Refactor code structure for improved readability and maintainability

---------

Co-authored-by: madmp87 <79420509+madmp87@users.noreply.github.com>
Co-authored-by: AdventureLog Bugfix <bugfix@adventurelog.local>
Co-authored-by: madmp87 <info@so-pa.de>
Co-authored-by: Mathias Ponnwitz <devuser@dockge-dev.fritz.box>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2026-02-20 20:49:24 -05:00
Sean Morley
c008f0c264 Update Synology NAS installation guide with Nginx error handling instructions (#972) 2026-01-19 08:23:46 -05:00
Sean Morley
12d84d93f2 Misc. Changes & Documentation (#970)
* Update copyright year in email invitation template to 2026

* Squashed commit of the following:

commit 9da60a634cc7064c052c9560070d7e7a6fe33d6d
Author: fantastron27 <fantastron27@gmail.com>
Date:   Thu Jan 15 12:52:06 2026 +0100

    Translated using Weblate (Slovak)

    Currently translated at 100.0% (1062 of 1062 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sk/

commit 82c1c00e8fe8c650e24b3b5bfdc328322147a04f
Author: bittin1ddc447d824349b2 <bittin@reimu.nl>
Date:   Wed Jan 14 06:46:29 2026 +0100

    Translated using Weblate (Swedish)

    Currently translated at 100.0% (1062 of 1062 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/

commit fcffb89576423a186a5e85fdb6db83c97c85b039
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Jan 13 17:28:04 2026 -0500

    Refactor code structure and remove redundant code blocks for improved readability and maintainability

commit da02d73eb510e71fd14c50d961e2135306466b96
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Jan 13 17:18:27 2026 -0500

    Squashed commit of the following:

    commit a993a15b93ebb7521ae2e5cc31596b98b29fcd6c
    Author: Alex <div@alexe.at>
    Date:   Mon Jan 12 20:44:47 2026 +0100

        Translated using Weblate (German)

        Currently translated at 100.0% (1048 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

    commit fdc455d9424fbb0f6b72179d9eb1340411700773
    Author: Ettore Atalan <atalanttore@googlemail.com>
    Date:   Sat Jan 10 23:24:23 2026 +0100

        Translated using Weblate (German)

        Currently translated at 100.0% (1048 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

    commit 5942129c55e89dd999a13d4df9c40e6e3189355c
    Author: Orhun <orhunavcu@gmail.com>
    Date:   Sun Jan 11 13:05:31 2026 +0100

        Translated using Weblate (Turkish)

        Currently translated at 100.0% (1048 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/tr/

    commit 8712e43d8ba4a7e7fe163fb454d6577187f9a375
    Author: Henrique Fonseca Veloso <henriquefv@tutamail.com>
    Date:   Fri Jan 9 22:53:11 2026 +0100

        Translated using Weblate (Portuguese (Brazil))

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/pt_BR/

    commit 18ee56653470413afe8d71ecd2b5028f6e4cf118
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:52:57 2026 +0100

        Translated using Weblate (Dutch)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/nl/

    commit 57783c544e583c035c8b57b5c10ca320f25f399e
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:52:14 2026 +0100

        Translated using Weblate (Arabic)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ar/

    commit fb09edfd85bc85234b1c1ba7dd499f2915093fff
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:52:26 2026 +0100

        Translated using Weblate (Spanish)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/es/

    commit 554a207d8e454a1f7ae826e2a40d389b94be5512
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:52:21 2026 +0100

        Translated using Weblate (German)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

    commit b70b9db27fb8607beefeb288185601c8f5eae28d
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:53:02 2026 +0100

        Translated using Weblate (Norwegian Bokmål)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/nb_NO/

    commit 3b467caa9007c553e4ae7de97f53b6e462161ea3
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:53:07 2026 +0100

        Translated using Weblate (Polish)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/pl/

    commit 30fbbfba3572c8f78ec7c7e1a231e363aca1ef10
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:53:17 2026 +0100

        Translated using Weblate (Russian)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ru/

    commit 8cecb492cfcac0a1f93ee8919f7b41d978d331ee
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:52:42 2026 +0100

        Translated using Weblate (Italian)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/it/

    commit f0d3d41029c89bfa83d5891ee7af70241f27b7be
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:52:38 2026 +0100

        Translated using Weblate (Hungarian)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/hu/

    commit 102e0f1912d010d38755a1713abb2a7f7564aafb
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:53:21 2026 +0100

        Translated using Weblate (Slovak)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sk/

    commit 428b8f18cf6195a96b55109e0221413d82415a2f
    Author: Максим Горпиніч <gorpinicmaksim0@gmail.com>
    Date:   Sat Jan 10 08:55:28 2026 +0100

        Translated using Weblate (Ukrainian)

        Currently translated at 100.0% (1048 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/uk/

    commit 1a71aaf279ecab26c0c1fede05025732e6dcfa5e
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:53:27 2026 +0100

        Translated using Weblate (Swedish)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/

    commit 36ec3701f3a1a904e7c42ac4ffbe6a050dc6d1ed
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:53:43 2026 +0100

        Translated using Weblate (Chinese (Simplified Han script))

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/zh_Hans/

    commit 65d8b74b340c877cad2028b7142c783a1b568d49
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:52:48 2026 +0100

        Translated using Weblate (Japanese)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ja/

    commit 4d11d1d31022583657e93aee70301a8ffcde1340
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:52:52 2026 +0100

        Translated using Weblate (Korean)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ko/

    commit bd1135bcb965ad73cf493771b15081cc97cf513a
    Author: Orhun <orhunavcu@gmail.com>
    Date:   Fri Jan 9 22:53:33 2026 +0100

        Translated using Weblate (Turkish)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/tr/

    commit 2c3d814119f4cf2dabd20933699f5b991f20f3e6
    Author: Anonymous <noreply@weblate.org>
    Date:   Fri Jan 9 22:52:32 2026 +0100

        Translated using Weblate (French)

        Currently translated at 99.9% (1047 of 1048 strings)

        Translation: AdventureLog/Web App
        Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/fr/

commit 5846e28c6f33230e2787fe727464f399907f67c8
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Jan 13 17:14:59 2026 -0500

    feat: Add export/import messages and user email verification prompts in multiple languages

commit 365e7412f9193b04ab4bcbd8512ad5ff6096a070
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Jan 13 15:18:46 2026 -0500

    fix: Remove trailing backslash from installation note in Unraid documentation

commit d1aca9659603513f6fa8c0681e68d98dba4ed693
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Jan 12 20:35:44 2026 -0500

    feat: Update email invitation template for improved styling and clarity

commit ce9406a7edf387bd85b4dec0459eda99ffa2b4b5
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 11 21:09:48 2026 -0500

    docs: Update "Invite a User" guide to include email configuration tip

commit 47d6ea4aa5a8f7094138b2a143fafc797b762034
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 11 21:08:46 2026 -0500

    feat: Add "Invite a User" guide and update navigation links

commit c2bbfdd40899b9d4300b6887b2e5fdeb668709c4
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 11 20:57:13 2026 -0500

    feat: Add Tailwind CSS and DaisyUI plugin for styling

commit c9c0739f2104fe2dba5034e45cb492194068a234
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 11 20:54:58 2026 -0500

    feat: Add Tailwind CSS and DaisyUI plugin for styling

commit 997a45581c0f273efa58557bbf95579ff820b0f8
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 11 20:49:36 2026 -0500

    feat: Integrate django-invitations for user invitation management and update settings

commit fda1d039fddb5770c8020a37cda1d71ec8a46fc5
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 11 13:01:00 2026 -0500

    fix: Refactor update method to handle is_public cascading for related items

commit bc8bc4b487d198e72fcbb74bbd644f12e180c06c
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 11 12:51:02 2026 -0500

    fix: Update Trivy security scan configuration and add .trivyignore for known false positives

commit ceb52efd9fdd61a08a0a6c8c1f6212e46b281b87
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 20:21:02 2026 -0500

    fix: Disable proxy settings in Google Maps API request to prevent connection issues

commit 58fc8069704dfadcb37be1102a7d95ec5e5d999d
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 20:12:14 2026 -0500

    fix: Update User-Agent header in Google Maps API requests for improved compatibility

commit 1a09e694d70ee3dbf1fa6373fe57d513a8a23559
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 20:05:26 2026 -0500

    feat: Add User-Agent header to Google Maps API requests and refine error messaging for access forbidden response

commit 513df78a5008393ffca96ed60626cbb139e9cb7f
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 20:00:07 2026 -0500

    fix: Enhance error messaging for Google Maps access forbidden response

commit c5f144e6018e2f6488e97c73b49dbef872cf6b7b
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 19:22:43 2026 -0500

    feat: Enhance error handling and messaging for Google Maps and OpenStreetMap geocoding functions

commit 90b0d564d538c4fc3ff2b1079c3e6e3df321107a
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 17:25:31 2026 -0500

    fix: Adjust styles to prevent horizontal scroll and enhance floating action button visibility

commit 5bd4c2cb5dad61f3469b92f151db4043c83dc1bd
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 16:07:06 2026 -0500

    feat: Add modals for creating locations and lodging from recommendations, enhance image import functionality

commit 2877a18d2789897d9f0a47e5551e8fb5995ad5a1
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 14:01:28 2026 -0500

    feat: Implement data restoration functionality with file import

    - Added a new action `restoreData` in `+page.server.ts` to handle file uploads for restoring collections.
    - Enhanced the UI in `+page.svelte` to include an import button and a modal for import progress.
    - Integrated file input handling to trigger form submission upon file selection.
    - Removed unused GSAP animations from the login, profile, and signup pages for cleaner code.

commit b920f17389433e9483e88fb35e700e929bfdf05b
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 11:54:53 2026 -0500

    Add new screenshots and update email verification message in locale file

commit 2c78586dc6033b11bdbeaf04aae274a57ed3c9da
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 10:58:06 2026 -0500

    Add "worldtravel" translations to multiple locale files

    - Added "worldtravel" key with translations for Spanish, French, Hungarian, Italian, Japanese, Korean, Dutch, Norwegian, Polish, Brazilian Portuguese, Russian, Slovak, Swedish, Turkish, Ukrainian, and Chinese.
    - Updated the navigation section in each locale file to include the new "worldtravel" entry.

commit facbaa40eff2783f13f2e0add803d36d10cd6ccf
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 10:50:17 2026 -0500

    fix: update package dependencies to resolve compatibility issues

commit fa5a279b09ff3fb325c893a02b1d562a255b4ab8
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 10:38:00 2026 -0500

    Refactor code structure for improved readability and maintainability

commit 984e7569a9502ce63ec7f61d6e3edbc8187c5c57
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 10:22:24 2026 -0500

    Refactor code structure for improved readability and maintainability

commit f8e8f9685427541cbf2528703a4dccc8ade940a7
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 10:20:23 2026 -0500

    chore: update dependencies in pnpm-lock.yaml to latest versions

commit b47f446d457b1e7d5ddd05aa8cb763e8c6b4452b
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 10 10:14:04 2026 -0500

    chore: update dependencies in frontend package.json and pnpm-lock.yaml

    - Updated @sveltejs/adapter-node from ^5.2.12 to ^5.4.0
    - Updated @sveltejs/adapter-vercel from ^5.7.0 to ^6.3.0
    - Updated tailwindcss from ^3.4.17 to ^3.4.19
    - Updated typescript from ^5.8.3 to ^5.9.3
    - Updated vite from ^5.4.19 to ^5.4.21

commit 6b8971cbcf65d16d19a2306d1215a7f34298f67c
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 9 16:53:47 2026 -0500

    fix: improve error messages for Overpass API responses

commit 5dfe22609e34a3732252608afbc1541157d90094
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 9 16:50:39 2026 -0500

    Localization: update localization files with new keys and values

commit 1718bea3164ff10f24bceed701778865b3ae21c3
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 9 16:30:51 2026 -0500

    feat: enhance localization for itinerary linking and transportation components

commit c229163c3f46a639e7f06c88d0ea1d76779d03e0
Author: Nick Petrushin <n.a.petrushin@gmail.com>
Date:   Fri Jan 9 21:55:56 2026 +0100

    Add dev compose for hot reload and update WSL dev container docs (#958)

commit 4b0001d249a662a6e65eb8bc54f57686d05dfd10
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 9 15:48:23 2026 -0500

    feat: enhance unscheduled items display with improved card interactions and accessibility

commit 49cf7f8f60cd910d459e94116c48735bb7530d02
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 9 14:32:14 2026 -0500

    feat: enhance periodic sync logging and improve airport mode handling in LocationSearchMap

commit f37d54652519f7b48908f0a39b4ecad447ab3786
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 9 13:15:30 2026 -0500

    feat: add airport and location search mode labels to localization file

commit f4bf0a38bd0349bae4cbf648ef24c10fcc2d33cc
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 9 13:10:27 2026 -0500

    feat: enhance LocationSearchMap and TransportationDetails components with initialization handling and airport mode logic

commit 12ff50ba1c968193ef340f586843fd4d85e2bc69
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 9 11:59:25 2026 -0500

    feat: refactor Dockerfile and supervisord configuration to remove cron and add periodic sync script

commit 50b5a95c49f62e561225fa0037ba2c5cadff3d44
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 9 10:31:50 2026 -0500

    feat: implement action menus and close event handling in card components

commit 1b1d801151d4350211a45d3ea7da787cfa026419
Author: Sean Morley <mail@seanmorley.com>
Date:   Thu Jan 8 20:00:43 2026 -0500

    Refactor itinerary management and UI components

    - Updated ItineraryViewSet to handle visit updates and creations more efficiently, preserving visit IDs when moving between days.
    - Enhanced ChecklistCard, LodgingCard, TransportationCard, and NoteCard to include a new "Change Day" option in the actions menu.
    - Improved user experience in CollectionItineraryPlanner by tracking specific itinerary items being moved and ensuring only the relevant entries are deleted.
    - Added new location sharing options in LodgingCard and TransportationCard for Apple Maps, Google Maps, and OpenStreetMap.
    - Updated translations in en.json for consistency and clarity.
    - Minor UI adjustments for better accessibility and usability across various components.

commit f315f85c58cda9dc0879fcf76254133081a71bdc
Author: Sean Morley <mail@seanmorley.com>
Date:   Wed Jan 7 15:24:06 2026 -0500

    feat: enhance internationalization support in CollectionMap and CollectionStats components

    - Added translation support for various labels and messages in CollectionMap.svelte and CollectionStats.svelte using svelte-i18n.
    - Updated English and Chinese locale files to include new translation keys for improved user experience.
    - Simplified the rendering of recommendation views in the collections page.

commit c53eb6b2fe5f0c3e2ff86631d5f859435cb828bb
Author: Nick Petrushin <n.a.petrushin@gmail.com>
Date:   Wed Jan 7 19:15:38 2026 +0100

    Add Dev Container + WSL install docs and link in install guide (#944) (#951)

commit 0c6a99744cae31904e8e571aa2f13667d202be4b
Author: Sean Morley <mail@seanmorley.com>
Date:   Wed Jan 7 13:14:20 2026 -0500

    feat: enhance CollectionItineraryPlanner and CollectionStats with dynamic links and transport type normalization

commit c2229e9672199a944196852f357d0bfc44481a58
Author: Sean Morley <mail@seanmorley.com>
Date:   Wed Jan 7 11:45:55 2026 -0500

    fix: update appVersion to v0.12.0-pre-dev-010726

commit 074729e14c4b7058025502d0337e3accafde28c1
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Jan 6 19:02:31 2026 -0500

    fix: specify full path for python3 in cron job and add shell and path variables

commit 2f9a3f20ca4f634612ce1f9d487ab664a7d91bfa
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Jan 6 16:24:56 2026 -0500

    feat: add functionality to change day and move items to trip-wide itinerary

    - Implemented changeDay function in ChecklistCard, LocationCard, LodgingCard, NoteCard, and TransportationCard components to allow users to change the scheduled day of items.
    - Added a button to move items to the global (trip-wide) itinerary in the aforementioned components, with appropriate dispatch events.
    - Enhanced CollectionItineraryPlanner to handle moving items to the global itinerary and added UI elements for unscheduled items.
    - Updated ItineraryDayPickModal to support the deletion of source visits when moving locations.
    - Added new translations for "Change Day" and "Move Trip Wide" in the English locale.

commit a46e42c54579353cc47321448b3d2e208505f480
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Jan 6 12:55:15 2026 -0500

    feat: enhance itinerary management by removing old items on date change for notes and checklists; normalize date handling in CollectionMap

commit e602639877e109c8c6105e98f58d410ada321fae
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Jan 6 12:06:50 2026 -0500

    feat: add CollectionStats component for detailed trip statistics

    - Implemented CollectionStats.svelte to display various statistics related to the collection, including distances, activities, and locations visited.
    - Enhanced CollectionMap.svelte to filter activities based on date range using new getActivityDate function.
    - Updated LocationSearchMap.svelte to handle airport mode for start and end locations.
    - Modified types.ts to include is_global property in CollectionItineraryItem for trip-wide items.
    - Updated +page.svelte to integrate the new stats view and manage view state accordingly.

commit 75b32d7c1de92bd4c5e69cc04a181fe5d78945d7
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Jan 5 16:58:05 2026 -0500

    feat: add dynamic lodging icons based on type in CollectionMap component

commit 5d59eec26162afe1024e5fd29c84c552c06f05dd
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Jan 5 16:39:18 2026 -0500

    feat: add collaborator serialization and display in collections

    - Implemented `_build_profile_pic_url` and `_serialize_collaborator` functions for user profile picture URLs and serialization.
    - Updated `CollectionSerializer` and `UltraSlimCollectionSerializer` to include collaborators in the serialized output.
    - Enhanced `CollectionViewSet` to prefetch shared_with users for optimized queries.
    - Modified frontend components to display collaborators in collection details, including profile pictures and initials.
    - Added new localization strings for collaborators.
    - Refactored map and location components to improve usability and functionality.
    - Updated app version to reflect new changes.

commit 24e27ae3b1798e5912bccf567c802eb9c9e5acfb
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Jan 5 14:34:00 2026 -0500

    Refactor collection page for improved localization and code clarity

    - Removed unused imports and consolidated cost category labels to be reactive.
    - Updated cost summary function to accept localized labels.
    - Enhanced localization for various UI elements, including buttons, headings, and statistics.
    - Improved user feedback messages for better clarity and consistency.
    - Ensured all relevant text is translatable using the i18n library.

commit a72d3002098c7605cc914f2a22600e073408cd43
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Jan 5 13:05:08 2026 -0500

    feat: implement cleanup of out-of-range itinerary items and notify users of potential impacts on itinerary when dates change

commit c47ffdfc381f46943dddbf3236612337de93f7c9
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Jan 5 12:36:54 2026 -0500

    feat: add CollectionItineraryDay model and related functionality for itinerary day metadata management

commit 398dc06571bd051362f07cc42b72360a4080ae09
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Jan 5 11:46:19 2026 -0500

    feat: add cron job for syncing visited regions and cities, enhance Docker and supervisord configurations

commit 1651e7dfa7ffb63332567d3eefcfab3f3bd98863
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 4 16:21:59 2026 -0500

    feat: enhance extractIsoCode function to handle cases without city information and update CollectionMap to bind user data

commit db89c4e2b7163ebe01f05e74983a373dafbf0058
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 4 15:32:29 2026 -0500

    feat: update extractIsoCode function to include additional ISO3166 levels for improved region matching

commit 8cff83262108736f2ec4f0c5f8e6b9b1d9526902
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 4 13:29:38 2026 -0500

    feat: enhance extractIsoCode function with normalization for locality matching

commit d30eb55ea4f6dcc4e5d076bc7c0ad8e3fdd8f268
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Jan 4 13:12:55 2026 -0500

    feat: enhance ISO code extraction and region matching logic in extractIsoCode function

commit 4de2b7ba2d59c91e269bf28d4cedcdb9d1c4d687
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 3 23:20:33 2026 -0500

    feat: enhance map functionality with search and zoom features

    - Updated availableViews in collection page to include map view based on lodging and transportation locations.
    - Added search functionality to the map page, allowing users to filter pins by name and category.
    - Implemented auto-zoom feature to adjust the map view based on filtered search results.
    - Introduced a search bar with a clear button for better user experience.

commit 0bf29b72b5634d5c5072ba5ea6c89f4ba7a5ad2f
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 3 22:22:09 2026 -0500

    feat: add Development Timeline link to overview and create timeline documentation

commit 2a9a205c97a17f627330d47b466d97119e36d5f0
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 3 16:22:48 2026 -0500

    feat: add price and currency fields to locations, lodging, and transportation components

    - Introduced price and price_currency fields in LocationModal, LodgingDetails, LodgingModal, TransportationDetails, and TransportationModal components.
    - Implemented MoneyInput and CurrencyDropdown components for handling monetary values and currency selection.
    - Updated data structures and types to accommodate new price and currency fields across various models.
    - Enhanced cost summary calculations in collections and routes to display total costs by currency.
    - Added user preference for default currency in settings, affecting new item forms.
    - Updated UI to display price information in relevant components, ensuring consistent formatting and user experience.

commit 84d176c028851ce1be4fe5b29372c2ce773e49e5
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Jan 3 14:48:53 2026 -0500

    feat: enhance LodgingCard and TransportationCard components with expandable details and improved layout

commit 6a4b965391b9045a0eb17c84a1383ab2cdbea857
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 17:44:29 2026 -0500

    chore: update .env.example to include account email verification configuration

commit 210973245fb9ac9331b2f6037f2583a12738308d
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 17:18:12 2026 -0500

    feat: enhance hero image handling in collection view by prioritizing primary image

commit fe1ed1d9a681b4847139ee782a717a560a993f15
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 16:39:53 2026 -0500

    Refactor calendar components and enhance event detail handling

    - Replaced direct calendar implementation with a reusable CalendarComponent in the calendar route.
    - Introduced EventDetailsModal for displaying event details, improving modularity and readability.
    - Added functionality to fetch event details asynchronously when an event is clicked.
    - Implemented ICS calendar download functionality with loading state management.
    - Enhanced collections page to support calendar view, integrating event handling and timezone management.
    - Improved lodging and transportation pages to display local time for stays and trips, including timezone badges.
    - Cleaned up unused code and comments for better maintainability.

commit 1b64f8db573d7bdd201c1c4c4e59c6675ab8bb83
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 13:21:46 2026 -0500

    feat: add primary image support to Collection model, serializers, and UI components

commit 00914f529665132ec2f8d2c28ea7df7195bdd378
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 12:55:20 2026 -0500

    feat: add travel duration and GPX distance calculation to Transportation model and UI

commit 0e65929599ab337104b320de7b7cfa773d49c0c6
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 12:00:46 2026 -0500

    feat: add details view for checklist and note cards with edit functionality

commit 8cc8c6677032d33962eb5e8b1ed6ee162af82157
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 11:49:20 2026 -0500

    feat: add initial visit date support in ChecklistModal and NoteModal, with UI suggestions for prefilled dates

commit d456a48f29657b6073d829cfb3651fd63e3751bd
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 11:32:42 2026 -0500

    fix: remove unnecessary cache decorator from globespin function

commit 9bef2a074ed8499d94d57538fb9dcc459b00fbed
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 11:30:46 2026 -0500

    fix: improve dropdown close behavior by handling multiple event types

commit 736f95213e2ed06a40d5efbc522e11dbc17b2676
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Jan 2 11:05:28 2026 -0500

    feat: enhance backup export functionality with itinerary items and export IDs

commit 121d55c3d732f3e0f7ebf56ba72512de3f983eda
Author: Sean Morley <mail@seanmorley.com>
Date:   Wed Dec 31 10:22:06 2025 -0500

    chore: update copyright year to 2026 in various files

commit 1b917db9979450b3883576eabc240fe416930149
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 30 14:17:20 2025 -0500

    feat: integrate CollectionMap component in collections page and update map titles in lodging and transportation pages

    - Replaced inline map implementation with CollectionMap component in collections/[id]/+page.svelte for better modularity.
    - Updated the map title in lodging/[id]/+page.svelte to reflect lodging context.
    - Updated the map title in transportations/[id]/+page.svelte to reflect transportation context.
    - Added functionality to collect and render GeoJSON data from transportation attachments in transportations/[id]/+page.svelte.

commit 0e51b37a89edd5266c7bc6d270741aca8f474a08
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 30 11:57:48 2025 -0500

    Enhance collection management with modal updates and item handling

commit 52712bfbbfa262778e3886e06af3a35e99813c0b
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Dec 28 17:25:59 2025 -0500

    Refactor code structure for improved readability and maintainability

commit 8a9d78715e85d87ddb020bde9805462f5c125381
Merge: 59bec174 a92029f3
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Dec 28 16:55:08 2025 -0500

    Merge branch 'development' of github.com:seanmorley15/AdventureLog into development

commit a92029f310f368abb8bc25666d3cee43c4d567cc
Author: Lars Lehmann <33843261+larsl-net@users.noreply.github.com>
Date:   Sun Dec 28 22:54:54 2025 +0100

    Make sure reverse geocoding uses correct key for cities (#938)

    * Reorder town and county checks in geocoding.py

    Fix detection if only town exists for a location but county is no city name

    * Use address keys only if city is found

commit 59bec1748318c0d7f422fb5ebb22da7d5fdababf
Author: Lars Lehmann <lars@lmail.eu>
Date:   Sun Dec 28 20:29:08 2025 +0100

    Use address keys only if city is found

commit f4faa4c336bb28f6c6609c459d99b7774efd2d04
Author: Lars Lehmann <33843261+larsl-net@users.noreply.github.com>
Date:   Sun Dec 28 18:57:15 2025 +0100

    Reorder town and county checks in geocoding.py

    Fix detection if only town exists for a location but county is no city name

commit 6f923f0181edd3d7698ea98bdecc7e8508b334d9
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Dec 27 16:21:44 2025 -0500

    feat: implement date validation for itinerary items and add day picker modal for scheduling

commit 65fcd94898db02eaffa3a0317f90fe225c8ffb03
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Dec 27 15:26:50 2025 -0500

    feat: add start_code and end_code fields to Transportation model and update related components

commit fd463b428b56cbee47bfb4921c4c9d42a0f944ad
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Dec 26 19:03:33 2025 -0500

    feat: add Transportation modal component and related routes

    - Implemented TransportationModal component for creating and editing transportation entries.
    - Added server-side loading for transportation details in the new route [id]/+page.server.ts.
    - Created a new Svelte page for displaying transportation details with image and attachment handling.
    - Integrated modal for editing transportation in the transportation details page.
    - Updated lodging routes to include a modal for editing lodging entries.
    - Removed unused delete action from lodging server-side logic.

commit b660f4f0429e657af28fc2e2135ae9068445e4b4
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Dec 26 13:21:03 2025 -0500

    feat: implement lodging detail page with server-side loading and image modal functionality

    - Added a new server-side load function to fetch lodging details by ID.
    - Created a new Svelte component for the lodging detail page, including image carousel and map integration.
    - Implemented a modal for displaying images with navigation.
    - Enhanced URL handling in the locations page to only read parameters.

commit c8cedcd9dbbbf7dfbdcc9715864832da244abc5c
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Dec 26 11:01:25 2025 -0500

    feat: enhance lodging management with date validation and update messages

commit e3e05b5ba3a01df4caa1df344d7640df2f038b10
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 23 16:57:33 2025 -0500

    fix: update contentType in ImageManagement component to 'lodging' for correct media handling

commit b521e54d9eae32a944899a5c70d6a6110de38db3
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 23 16:54:22 2025 -0500

    feat: add LodgingMedia and LodgingModal components for managing lodging details and media attachments

    feat: implement LocationSearchMap component for interactive location searching and mapping functionality

commit 9919f0c15f7716da222d5522a984f43fb5a9b97a
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 23 10:22:58 2025 -0500

    Component folder structure changes

commit 2db1f7de0e8b350e358905e25579219707b81a15
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Dec 22 21:40:23 2025 -0500

    feat: add status and days until start fields to collections with filtering options

commit d5ca8f9c8e6556398987c8bd32076d0a63deb388
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Dec 22 21:12:03 2025 -0500

    feat: add map center and zoom state management with URL synchronization

commit 4198b9e39f0e675779b4ef701558be95a1104abb
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Dec 22 21:03:49 2025 -0500

    feat: add progress tracker for folder views to display visited and planned locations

commit c970615294969f22ca5f2c50de94fad9fda53712
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Dec 22 18:22:18 2025 -0500

    feat: enhance map interaction for touch devices with custom popup handling

commit e95f738638a0aa564886937365f9c36d42c29f80
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Dec 22 15:17:20 2025 -0500

    feat: add FullMap component for enhanced map functionality with clustering support

    - Introduced FullMap.svelte to handle map rendering, clustering, and marker management.
    - Updated map page to utilize FullMap component, replacing direct MapLibre usage.
    - Implemented clustering options and marker properties handling in FullMap.
    - Added utility functions for resolving theme colors and managing marker states.
    - Enhanced user experience with hover popups and improved loading states for location details.
    - Updated app version to v0.12.0-pre-dev-122225.

commit 6753c840f8dfbb2a698a741ebdb4fbe64fc986f4
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Dec 22 13:56:39 2025 -0500

    feat: enhance itinerary management with deduplication and initial visit date handling

commit 09f8cd4a8c13db5ae486a50860aa7fbd6e6fe9e4
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Dec 22 11:54:34 2025 -0500

    feat: add itinerary removal functionality to various cards and update UI components

    - Implemented `removeFromItinerary` function in `LodgingCard`, `NoteCard`, and `TransportationCard` to allow users to remove items from their itinerary.
    - Replaced the trash icon with a calendar remove icon in `LocationCard`, `LodgingCard`, `NoteCard`, and `TransportationCard` for better visual representation.
    - Updated the dropdown menus in `LodgingCard`, `NoteCard`, and `TransportationCard` to include the new remove from itinerary option.
    - Enhanced `CollectionItineraryPlanner` to pass itinerary items to the respective cards.
    - Removed `PointSelectionModal.svelte` as it is no longer needed.
    - Refactored `LocationMedia.svelte` to integrate `ImageManagement` component and clean up unused code related to image handling.

commit ace2a45cc924fff0594f92497539f876073e16eb
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Dec 20 18:02:24 2025 -0500

    feat: add canModify prop to collection components for user permission handling

commit b721b240db2e062f7c5c380dba75a948bcfc6684
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Dec 20 12:10:52 2025 -0500

    fix: update appVersion and improve button accessibility in collection views

commit cda9bc619732ad9223920b31fb10f3c475de77ee
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Dec 20 12:01:52 2025 -0500

    feat: add CollectionRecommendationView component for displaying location recommendations

    - Implemented CollectionRecommendationView.svelte to handle location recommendations based on user input and selected categories.
    - Added Recommendation and RecommendationResponse types to types.ts for better type safety and structure.
    - Updated collections/[id]/+page.svelte to include a new view for recommendations, allowing users to switch between different views seamlessly.

commit 7ee503cea3e185dd30b12561a49fd541b18adc3e
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Dec 20 10:43:00 2025 -0500

    Refactor code structure for improved readability and maintainability

commit 3ecdbb6462d9b48cc6c4f85b9dc1b55133bda5cd
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Dec 19 15:12:40 2025 -0500

    feat(wikipedia): implement image selection from Wikipedia with enhanced results display

commit c446f8957216e87f6b7a38525b5f8c97d0989541
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Dec 19 14:54:46 2025 -0500

    fix: update appVersion to correct pre-dev version

commit efff6cbd97e6fe894c991821069116d013ff42e6
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Dec 19 13:14:11 2025 -0500

    feat(collection): enhance collection sharing logic and improve data handling on invite acceptance

commit 01950598b20c85bcc8e57203d3aece745947df9e
Author: Sean Morley <mail@seanmorley.com>
Date:   Fri Dec 19 12:43:50 2025 -0500

    feat(itinerary): implement auto-generate functionality for itinerary items based on dated records

commit b3e4799b74446113cc919e7455f167b3ed59e960
Author: Sean Morley <mail@seanmorley.com>
Date:   Wed Dec 17 13:39:41 2025 -0500

    feat(itinerary): add itinerary management features and link modal

    - Introduced ItineraryViewSet for managing itinerary items with create and reorder functionalities.
    - Added itinerary linking capabilities in CollectionModal and CollectionItineraryPlanner components.
    - Implemented new ItineraryLinkModal for linking existing items to specific dates.
    - Enhanced the frontend with new modals for creating locations, lodging, transportation, notes, and checklists.
    - Updated the backend to handle itinerary item creation and reordering with appropriate permissions.
    - Improved data handling for unscheduled items and their association with the itinerary.
    - Added new dependencies to the frontend for enhanced functionality.

commit 8890dd70b85efa90964410ebffc4c007bd4b3842
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 16 17:30:00 2025 -0500

    feat: add compact display option to LocationCard and enhance lodging filtering in CollectionItineraryPlanner

commit 71ab14da5284dab9f9d713ced8856c38284e02f6
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 16 16:50:59 2025 -0500

    feat: add overnight lodging indicator and functionality to CollectionItineraryPlanner

commit 8ea98795a9a442346bc2016223c9035c98278871
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 16 12:32:51 2025 -0500

    feat: implement itinerary planning feature with CollectionItineraryPlanner component and related updates

commit c6f728a47b9a904448c3f0992b4fa5208358b477
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 16 11:19:39 2025 -0500

    fix: update appVersion to v0.12.0-pre-dev-121625

commit 682dc1abe8b084012ef62ecd297de826c3cbf958
Author: Sean Morley <mail@seanmorley.com>
Date:   Tue Dec 16 11:19:05 2025 -0500

    fix: update LocationCard props and enhance restore data functionality

    - Changed the user prop to null in LocationCard component on the dashboard page.
    - Added isRestoring state to manage loading state during data restoration in settings.
    - Updated the restore button to show a loading spinner when a restore operation is in progress.

commit eaac14a6f575324cc774624ab78a1096ed11992b
Author: Sean Morley <mail@seanmorley.com>
Date:   Mon Dec 15 10:01:06 2025 -0500

    feat: implement social signup controls and update documentation for new environment variables

commit 0a9a6b8b3284d7f07eb654cb083453da4b4b0134
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Dec 14 17:01:41 2025 -0500

    fix: update appVersion to v0.11.0-main-121425 and enhance socialProviders handling in settings page

commit 2fbdc9ccea90879f6a4d5df66f09fde42d5d97e1
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Dec 14 16:51:19 2025 -0500

    Fixes #511

commit 1eff5fd82bd05e418942380f8ce6fd5457aa96a3
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Dec 14 16:32:33 2025 -0500

    feat: add Advanced Configuration documentation with optional environment variables

commit c176beeada19925756d291a90a2b7edce507cc7d
Author: Sean Morley <mail@seanmorley.com>
Date:   Sun Dec 14 16:28:12 2025 -0500

    fix: handle email verification required case during signup

    Updated the signup action to return a specific message when the backend responds with a 401 status, indicating that the signup succeeded but email verification is required. This allows the frontend to display the appropriate message using an i18n key.

commit bdb2d5418832c6d6dde2715689913067e9ed3e05
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Dec 13 11:04:04 2025 -0500

    Update COUNTRY_REGION_JSON_VERSION to v3.0 and modify state ID generation to use ISO2 code

commit c96b13ea8d5c3b8cb56ff9090c98a030fcaaa4f1
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Dec 13 10:59:55 2025 -0500

    Add ClusterMap integration for regions and cities with fit-to-bounds functionality

commit 725fec30ebff028a3c81447ad53c9a5ec67bfe9a
Author: Sean Morley <mail@seanmorley.com>
Date:   Sat Dec 13 10:41:37 2025 -0500

    Fixes [REQUEST] Email-based auto-linking for OIDC
    Fixes #921

* Add new itinerary feature and highlight community milestone of 1 million Docker image downloads

* Add to the list of contributors in README.md
2026-01-17 08:30:11 -05:00
Sean Morley
c39ff2449e [v0.12.0 pre] Planning & Itinerary Overhaul, Recommendation Engine, OIDC Enhancements, and More (#931)
* Fixes [REQUEST] Email-based auto-linking for OIDC
Fixes #921

* Add ClusterMap integration for regions and cities with fit-to-bounds functionality

* Update COUNTRY_REGION_JSON_VERSION to v3.0 and modify state ID generation to use ISO2 code

* fix: handle email verification required case during signup

Updated the signup action to return a specific message when the backend responds with a 401 status, indicating that the signup succeeded but email verification is required. This allows the frontend to display the appropriate message using an i18n key.

* feat: add Advanced Configuration documentation with optional environment variables

* Fixes #511

* fix: update appVersion to v0.11.0-main-121425 and enhance socialProviders handling in settings page

* feat: implement social signup controls and update documentation for new environment variables

* fix: update LocationCard props and enhance restore data functionality

- Changed the user prop to null in LocationCard component on the dashboard page.
- Added isRestoring state to manage loading state during data restoration in settings.
- Updated the restore button to show a loading spinner when a restore operation is in progress.

* fix: update appVersion to v0.12.0-pre-dev-121625

* feat: implement itinerary planning feature with CollectionItineraryPlanner component and related updates

* feat: add overnight lodging indicator and functionality to CollectionItineraryPlanner

* feat: add compact display option to LocationCard and enhance lodging filtering in CollectionItineraryPlanner

* feat(itinerary): add itinerary management features and link modal

- Introduced ItineraryViewSet for managing itinerary items with create and reorder functionalities.
- Added itinerary linking capabilities in CollectionModal and CollectionItineraryPlanner components.
- Implemented new ItineraryLinkModal for linking existing items to specific dates.
- Enhanced the frontend with new modals for creating locations, lodging, transportation, notes, and checklists.
- Updated the backend to handle itinerary item creation and reordering with appropriate permissions.
- Improved data handling for unscheduled items and their association with the itinerary.
- Added new dependencies to the frontend for enhanced functionality.

* feat(itinerary): implement auto-generate functionality for itinerary items based on dated records

* feat(collection): enhance collection sharing logic and improve data handling on invite acceptance

* fix: update appVersion to correct pre-dev version

* feat(wikipedia): implement image selection from Wikipedia with enhanced results display

* Refactor code structure for improved readability and maintainability

* feat: add CollectionRecommendationView component for displaying location recommendations

- Implemented CollectionRecommendationView.svelte to handle location recommendations based on user input and selected categories.
- Added Recommendation and RecommendationResponse types to types.ts for better type safety and structure.
- Updated collections/[id]/+page.svelte to include a new view for recommendations, allowing users to switch between different views seamlessly.

* fix: update appVersion and improve button accessibility in collection views

* feat: add canModify prop to collection components for user permission handling

* feat: add itinerary removal functionality to various cards and update UI components

- Implemented `removeFromItinerary` function in `LodgingCard`, `NoteCard`, and `TransportationCard` to allow users to remove items from their itinerary.
- Replaced the trash icon with a calendar remove icon in `LocationCard`, `LodgingCard`, `NoteCard`, and `TransportationCard` for better visual representation.
- Updated the dropdown menus in `LodgingCard`, `NoteCard`, and `TransportationCard` to include the new remove from itinerary option.
- Enhanced `CollectionItineraryPlanner` to pass itinerary items to the respective cards.
- Removed `PointSelectionModal.svelte` as it is no longer needed.
- Refactored `LocationMedia.svelte` to integrate `ImageManagement` component and clean up unused code related to image handling.

* feat: enhance itinerary management with deduplication and initial visit date handling

* feat: add FullMap component for enhanced map functionality with clustering support

- Introduced FullMap.svelte to handle map rendering, clustering, and marker management.
- Updated map page to utilize FullMap component, replacing direct MapLibre usage.
- Implemented clustering options and marker properties handling in FullMap.
- Added utility functions for resolving theme colors and managing marker states.
- Enhanced user experience with hover popups and improved loading states for location details.
- Updated app version to v0.12.0-pre-dev-122225.

* feat: enhance map interaction for touch devices with custom popup handling

* feat: add progress tracker for folder views to display visited and planned locations

* feat: add map center and zoom state management with URL synchronization

* feat: add status and days until start fields to collections with filtering options

* Component folder structure changes

* feat: add LodgingMedia and LodgingModal components for managing lodging details and media attachments

feat: implement LocationSearchMap component for interactive location searching and mapping functionality

* fix: update contentType in ImageManagement component to 'lodging' for correct media handling

* feat: enhance lodging management with date validation and update messages

* feat: implement lodging detail page with server-side loading and image modal functionality

- Added a new server-side load function to fetch lodging details by ID.
- Created a new Svelte component for the lodging detail page, including image carousel and map integration.
- Implemented a modal for displaying images with navigation.
- Enhanced URL handling in the locations page to only read parameters.

* feat: add Transportation modal component and related routes

- Implemented TransportationModal component for creating and editing transportation entries.
- Added server-side loading for transportation details in the new route [id]/+page.server.ts.
- Created a new Svelte page for displaying transportation details with image and attachment handling.
- Integrated modal for editing transportation in the transportation details page.
- Updated lodging routes to include a modal for editing lodging entries.
- Removed unused delete action from lodging server-side logic.

* feat: add start_code and end_code fields to Transportation model and update related components

* feat: implement date validation for itinerary items and add day picker modal for scheduling

* Reorder town and county checks in geocoding.py

Fix detection if only town exists for a location but county is no city name

* Use address keys only if city is found

* Make sure reverse geocoding uses correct key for cities (#938)

* Reorder town and county checks in geocoding.py

Fix detection if only town exists for a location but county is no city name

* Use address keys only if city is found

* Refactor code structure for improved readability and maintainability

* Enhance collection management with modal updates and item handling

* feat: integrate CollectionMap component in collections page and update map titles in lodging and transportation pages

- Replaced inline map implementation with CollectionMap component in collections/[id]/+page.svelte for better modularity.
- Updated the map title in lodging/[id]/+page.svelte to reflect lodging context.
- Updated the map title in transportations/[id]/+page.svelte to reflect transportation context.
- Added functionality to collect and render GeoJSON data from transportation attachments in transportations/[id]/+page.svelte.

* chore: update copyright year to 2026 in various files

* feat: enhance backup export functionality with itinerary items and export IDs

* fix: improve dropdown close behavior by handling multiple event types

* fix: remove unnecessary cache decorator from globespin function

* feat: add initial visit date support in ChecklistModal and NoteModal, with UI suggestions for prefilled dates

* feat: add details view for checklist and note cards with edit functionality

* feat: add travel duration and GPX distance calculation to Transportation model and UI

* feat: add primary image support to Collection model, serializers, and UI components

* Refactor calendar components and enhance event detail handling

- Replaced direct calendar implementation with a reusable CalendarComponent in the calendar route.
- Introduced EventDetailsModal for displaying event details, improving modularity and readability.
- Added functionality to fetch event details asynchronously when an event is clicked.
- Implemented ICS calendar download functionality with loading state management.
- Enhanced collections page to support calendar view, integrating event handling and timezone management.
- Improved lodging and transportation pages to display local time for stays and trips, including timezone badges.
- Cleaned up unused code and comments for better maintainability.

* feat: enhance hero image handling in collection view by prioritizing primary image

* chore: update .env.example to include account email verification configuration

* feat: enhance LodgingCard and TransportationCard components with expandable details and improved layout

* feat: add price and currency fields to locations, lodging, and transportation components

- Introduced price and price_currency fields in LocationModal, LodgingDetails, LodgingModal, TransportationDetails, and TransportationModal components.
- Implemented MoneyInput and CurrencyDropdown components for handling monetary values and currency selection.
- Updated data structures and types to accommodate new price and currency fields across various models.
- Enhanced cost summary calculations in collections and routes to display total costs by currency.
- Added user preference for default currency in settings, affecting new item forms.
- Updated UI to display price information in relevant components, ensuring consistent formatting and user experience.

* feat: add Development Timeline link to overview and create timeline documentation

* feat: enhance map functionality with search and zoom features

- Updated availableViews in collection page to include map view based on lodging and transportation locations.
- Added search functionality to the map page, allowing users to filter pins by name and category.
- Implemented auto-zoom feature to adjust the map view based on filtered search results.
- Introduced a search bar with a clear button for better user experience.

* feat: enhance ISO code extraction and region matching logic in extractIsoCode function

* feat: enhance extractIsoCode function with normalization for locality matching

* feat: update extractIsoCode function to include additional ISO3166 levels for improved region matching

* feat: enhance extractIsoCode function to handle cases without city information and update CollectionMap to bind user data

* feat: add cron job for syncing visited regions and cities, enhance Docker and supervisord configurations

* feat: add CollectionItineraryDay model and related functionality for itinerary day metadata management

* feat: implement cleanup of out-of-range itinerary items and notify users of potential impacts on itinerary when dates change

* Refactor collection page for improved localization and code clarity

- Removed unused imports and consolidated cost category labels to be reactive.
- Updated cost summary function to accept localized labels.
- Enhanced localization for various UI elements, including buttons, headings, and statistics.
- Improved user feedback messages for better clarity and consistency.
- Ensured all relevant text is translatable using the i18n library.

* feat: add collaborator serialization and display in collections

- Implemented `_build_profile_pic_url` and `_serialize_collaborator` functions for user profile picture URLs and serialization.
- Updated `CollectionSerializer` and `UltraSlimCollectionSerializer` to include collaborators in the serialized output.
- Enhanced `CollectionViewSet` to prefetch shared_with users for optimized queries.
- Modified frontend components to display collaborators in collection details, including profile pictures and initials.
- Added new localization strings for collaborators.
- Refactored map and location components to improve usability and functionality.
- Updated app version to reflect new changes.

* feat: add dynamic lodging icons based on type in CollectionMap component

* feat: add CollectionStats component for detailed trip statistics

- Implemented CollectionStats.svelte to display various statistics related to the collection, including distances, activities, and locations visited.
- Enhanced CollectionMap.svelte to filter activities based on date range using new getActivityDate function.
- Updated LocationSearchMap.svelte to handle airport mode for start and end locations.
- Modified types.ts to include is_global property in CollectionItineraryItem for trip-wide items.
- Updated +page.svelte to integrate the new stats view and manage view state accordingly.

* feat: enhance itinerary management by removing old items on date change for notes and checklists; normalize date handling in CollectionMap

* feat: add functionality to change day and move items to trip-wide itinerary

- Implemented changeDay function in ChecklistCard, LocationCard, LodgingCard, NoteCard, and TransportationCard components to allow users to change the scheduled day of items.
- Added a button to move items to the global (trip-wide) itinerary in the aforementioned components, with appropriate dispatch events.
- Enhanced CollectionItineraryPlanner to handle moving items to the global itinerary and added UI elements for unscheduled items.
- Updated ItineraryDayPickModal to support the deletion of source visits when moving locations.
- Added new translations for "Change Day" and "Move Trip Wide" in the English locale.

* fix: specify full path for python3 in cron job and add shell and path variables

* fix: update appVersion to v0.12.0-pre-dev-010726

* feat: enhance CollectionItineraryPlanner and CollectionStats with dynamic links and transport type normalization

* Add Dev Container + WSL install docs and link in install guide (#944) (#951)

* feat: enhance internationalization support in CollectionMap and CollectionStats components

- Added translation support for various labels and messages in CollectionMap.svelte and CollectionStats.svelte using svelte-i18n.
- Updated English and Chinese locale files to include new translation keys for improved user experience.
- Simplified the rendering of recommendation views in the collections page.

* Refactor itinerary management and UI components

- Updated ItineraryViewSet to handle visit updates and creations more efficiently, preserving visit IDs when moving between days.
- Enhanced ChecklistCard, LodgingCard, TransportationCard, and NoteCard to include a new "Change Day" option in the actions menu.
- Improved user experience in CollectionItineraryPlanner by tracking specific itinerary items being moved and ensuring only the relevant entries are deleted.
- Added new location sharing options in LodgingCard and TransportationCard for Apple Maps, Google Maps, and OpenStreetMap.
- Updated translations in en.json for consistency and clarity.
- Minor UI adjustments for better accessibility and usability across various components.

* feat: implement action menus and close event handling in card components

* feat: refactor Dockerfile and supervisord configuration to remove cron and add periodic sync script

* feat: enhance LocationSearchMap and TransportationDetails components with initialization handling and airport mode logic

* feat: add airport and location search mode labels to localization file

* feat: enhance periodic sync logging and improve airport mode handling in LocationSearchMap

* feat: enhance unscheduled items display with improved card interactions and accessibility

* Add dev compose for hot reload and update WSL dev container docs (#958)

* feat: enhance localization for itinerary linking and transportation components

* Localization: update localization files with new keys and values

* fix: improve error messages for Overpass API responses

* chore: update dependencies in frontend package.json and pnpm-lock.yaml

- Updated @sveltejs/adapter-node from ^5.2.12 to ^5.4.0
- Updated @sveltejs/adapter-vercel from ^5.7.0 to ^6.3.0
- Updated tailwindcss from ^3.4.17 to ^3.4.19
- Updated typescript from ^5.8.3 to ^5.9.3
- Updated vite from ^5.4.19 to ^5.4.21

* chore: update dependencies in pnpm-lock.yaml to latest versions

* Refactor code structure for improved readability and maintainability

* Refactor code structure for improved readability and maintainability

* fix: update package dependencies to resolve compatibility issues

* Add "worldtravel" translations to multiple locale files

- Added "worldtravel" key with translations for Spanish, French, Hungarian, Italian, Japanese, Korean, Dutch, Norwegian, Polish, Brazilian Portuguese, Russian, Slovak, Swedish, Turkish, Ukrainian, and Chinese.
- Updated the navigation section in each locale file to include the new "worldtravel" entry.

* Add new screenshots and update email verification message in locale file

* feat: Implement data restoration functionality with file import

- Added a new action `restoreData` in `+page.server.ts` to handle file uploads for restoring collections.
- Enhanced the UI in `+page.svelte` to include an import button and a modal for import progress.
- Integrated file input handling to trigger form submission upon file selection.
- Removed unused GSAP animations from the login, profile, and signup pages for cleaner code.

* feat: Add modals for creating locations and lodging from recommendations, enhance image import functionality

* fix: Adjust styles to prevent horizontal scroll and enhance floating action button visibility

* feat: Enhance error handling and messaging for Google Maps and OpenStreetMap geocoding functions

* fix: Enhance error messaging for Google Maps access forbidden response

* feat: Add User-Agent header to Google Maps API requests and refine error messaging for access forbidden response

* fix: Update User-Agent header in Google Maps API requests for improved compatibility

* fix: Disable proxy settings in Google Maps API request to prevent connection issues

* fix: Update Trivy security scan configuration and add .trivyignore for known false positives

* fix: Refactor update method to handle is_public cascading for related items

* feat: Integrate django-invitations for user invitation management and update settings

* feat: Add Tailwind CSS and DaisyUI plugin for styling

* feat: Add Tailwind CSS and DaisyUI plugin for styling

* feat: Add "Invite a User" guide and update navigation links

* docs: Update "Invite a User" guide to include email configuration tip

* feat: Update email invitation template for improved styling and clarity

* fix: Remove trailing backslash from installation note in Unraid documentation

* feat: Add export/import messages and user email verification prompts in multiple languages

* Squashed commit of the following:

commit a993a15b93ebb7521ae2e5cc31596b98b29fcd6c
Author: Alex <div@alexe.at>
Date:   Mon Jan 12 20:44:47 2026 +0100

    Translated using Weblate (German)

    Currently translated at 100.0% (1048 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

commit fdc455d9424fbb0f6b72179d9eb1340411700773
Author: Ettore Atalan <atalanttore@googlemail.com>
Date:   Sat Jan 10 23:24:23 2026 +0100

    Translated using Weblate (German)

    Currently translated at 100.0% (1048 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

commit 5942129c55e89dd999a13d4df9c40e6e3189355c
Author: Orhun <orhunavcu@gmail.com>
Date:   Sun Jan 11 13:05:31 2026 +0100

    Translated using Weblate (Turkish)

    Currently translated at 100.0% (1048 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/tr/

commit 8712e43d8ba4a7e7fe163fb454d6577187f9a375
Author: Henrique Fonseca Veloso <henriquefv@tutamail.com>
Date:   Fri Jan 9 22:53:11 2026 +0100

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/pt_BR/

commit 18ee56653470413afe8d71ecd2b5028f6e4cf118
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:52:57 2026 +0100

    Translated using Weblate (Dutch)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/nl/

commit 57783c544e583c035c8b57b5c10ca320f25f399e
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:52:14 2026 +0100

    Translated using Weblate (Arabic)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ar/

commit fb09edfd85bc85234b1c1ba7dd499f2915093fff
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:52:26 2026 +0100

    Translated using Weblate (Spanish)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/es/

commit 554a207d8e454a1f7ae826e2a40d389b94be5512
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:52:21 2026 +0100

    Translated using Weblate (German)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

commit b70b9db27fb8607beefeb288185601c8f5eae28d
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:53:02 2026 +0100

    Translated using Weblate (Norwegian Bokmål)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/nb_NO/

commit 3b467caa9007c553e4ae7de97f53b6e462161ea3
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:53:07 2026 +0100

    Translated using Weblate (Polish)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/pl/

commit 30fbbfba3572c8f78ec7c7e1a231e363aca1ef10
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:53:17 2026 +0100

    Translated using Weblate (Russian)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ru/

commit 8cecb492cfcac0a1f93ee8919f7b41d978d331ee
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:52:42 2026 +0100

    Translated using Weblate (Italian)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/it/

commit f0d3d41029c89bfa83d5891ee7af70241f27b7be
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:52:38 2026 +0100

    Translated using Weblate (Hungarian)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/hu/

commit 102e0f1912d010d38755a1713abb2a7f7564aafb
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:53:21 2026 +0100

    Translated using Weblate (Slovak)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sk/

commit 428b8f18cf6195a96b55109e0221413d82415a2f
Author: Максим Горпиніч <gorpinicmaksim0@gmail.com>
Date:   Sat Jan 10 08:55:28 2026 +0100

    Translated using Weblate (Ukrainian)

    Currently translated at 100.0% (1048 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/uk/

commit 1a71aaf279ecab26c0c1fede05025732e6dcfa5e
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:53:27 2026 +0100

    Translated using Weblate (Swedish)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/

commit 36ec3701f3a1a904e7c42ac4ffbe6a050dc6d1ed
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:53:43 2026 +0100

    Translated using Weblate (Chinese (Simplified Han script))

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/zh_Hans/

commit 65d8b74b340c877cad2028b7142c783a1b568d49
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:52:48 2026 +0100

    Translated using Weblate (Japanese)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ja/

commit 4d11d1d31022583657e93aee70301a8ffcde1340
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:52:52 2026 +0100

    Translated using Weblate (Korean)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ko/

commit bd1135bcb965ad73cf493771b15081cc97cf513a
Author: Orhun <orhunavcu@gmail.com>
Date:   Fri Jan 9 22:53:33 2026 +0100

    Translated using Weblate (Turkish)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/tr/

commit 2c3d814119f4cf2dabd20933699f5b991f20f3e6
Author: Anonymous <noreply@weblate.org>
Date:   Fri Jan 9 22:52:32 2026 +0100

    Translated using Weblate (French)

    Currently translated at 99.9% (1047 of 1048 strings)

    Translation: AdventureLog/Web App
    Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/fr/

* Refactor code structure and remove redundant code blocks for improved readability and maintainability

* fix: Correct appVersion to match the latest pre-release version

* fix: Add missing vulnerability reference for jaraco.context in .trivyignore

---------

Co-authored-by: Lars Lehmann <33843261+larsl-net@users.noreply.github.com>
Co-authored-by: Lars Lehmann <lars@lmail.eu>
Co-authored-by: Nick Petrushin <n.a.petrushin@gmail.com>
2026-01-14 10:22:14 -05:00
Sean Morley
d954ac057d Misc. Bug fixes and Translation Improvments (#926)
* Fixes [BUG] Editing a location removes it from all the collections
Fixes #893

* Add new translations for Chinese and Ukrainian locales

- Updated zh.json to include new keys: "about_country", "about_region", "show_less", and "show_more".
- Registered Ukrainian locale in +layout.svelte and added it to the locales array.

* Update translation for 'back' in Dutch locale (#917)

---------

Co-authored-by: Sille Van Landschoot <979071+sillevl@users.noreply.github.com>
2025-12-10 14:53:48 -05:00
Sean Morley
037b45fc17 World Travel Improvements (#925)
* Security Patch Django 5.2.8

* Fix Menus on Safari Browser

* Enhance touch support and event handling for emoji picker and dropdown

* Add touch and pointer event handling to category selection for better mobile support

* Add PWA support for iOS/Safari with touch icons

* Refactor event listener for dropdown to use non-capturing 'click' for improved compatibility on Safari

* Enhance country and region description fetching from Wikipedia

- Refactor `generate_description_view.py` to improve candidate page selection and description retrieval.
- Update `CategoryDropdown.svelte` to simplify emoji selection handling and improve dropdown behavior.
- Add new translation keys in `en.json` for UI elements related to country descriptions.
- Modify `+page.svelte` and `+page.server.ts` in world travel routes to fetch and display country and region descriptions.
- Implement a toggle for showing full descriptions in the UI.

* Update Unraid installation documentation with improved variable formatting and additional resources

* Implement cache invalidation for visited regions and cities to ensure updated visit lists

* Add ClusterMap component for enhanced geographical data visualization
2025-12-07 11:46:44 -05:00
Sean Morley
5d799ceacc Security Patch Django 5.2.8 (#909) 2025-11-06 12:02:01 -05:00