Skip to content

v0.13.1 "Cadillac" - #1300

Draft
seanmorley15 wants to merge 128 commits into
mainfrom
development
Draft

seanmorley15 wants to merge 128 commits into
mainfrom
development

Conversation

@seanmorley15

@seanmorley15 seanmorley15 commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

Promote development to main for the v0.13.1 release (v0.13.0 Acadia → v0.13.1 Cadillac).

The frontend moves to Svelte 5, DaisyUI 5, and Tailwind CSS 4. Locations gain duplicate detection, visit editing from cards, and safer edit state so location modals do not loop. Collections export and import more metadata (dates, lodging, transportation), and PDF export splits long notes so they paginate instead of failing. Maps pick up a CARTO basemap API key, a render guard, and GeoJSON sanitization. Quick Add can create a location category inline.

Users can store a date format preference. The Django upload proxy forwards request bodies as bytes so binary uploads are not corrupted. Community docs add a Code of Conduct, security policy, contribution checks, and an Easypanel install guide, plus a large Weblate translation update.

Fixes #633
Fixes #883
Fixes #833
Fixes #1027
Fixes #1038
Fixes #1042
Fixes #1112
Fixes #1168
Fixes #1229
Fixes #1249
Fixes #1252
Fixes #1258
Fixes #1263
Fixes #1266
Fixes #1285

orhunavcu and others added 30 commits August 10, 2026 04:30
Currently translated at 100.0% (1397 of 1397 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/tr/
Currently translated at 92.6% (1295 of 1397 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/pl/
- Enhanced Arabic, Catalan, Czech, German, English, Spanish, and Hungarian locale files with new and updated translations.
- Improved overall translation consistency and accuracy across the application.
- Ensured all strings are up-to-date with the latest content changes.
- Implemented `shouldFlipDropdownUp` utility to determine if dropdowns should open upward based on available viewport space.
- Updated `ChecklistCard`, `LocationCard`, `LodgingCard`, `NoteCard`, and `TransportationCard` to utilize the new utility for improved dropdown positioning.
- Adjusted dropdown content styling to ensure proper overflow handling and maintain usability across different screen sizes.
- Added multi-day indicator to `LodgingCard` for better itinerary representation.
Currently translated at 100.0% (1398 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/
- Introduced new constants to manage PDF paragraph limits and card splitting behavior, ensuring better layout handling during PDF generation.
- Implemented `_iter_text_chunks` to split long text into manageable sections for improved pagination in PDF exports.
- Updated existing functions to utilize the new text chunking logic, enhancing the handling of notes and descriptions across various collection items.
- Added tests to verify that long notes are correctly split across pages, preventing layout errors during PDF generation.
* Enhance billing and subscription management features

- Added `stripe_customer_id` to the Subscription model and updated related serializers and types.
- Improved localization for billing-related text in the UI, including dynamic translations for various subscription statuses and alerts.
- Enhanced the BillingBanner and Navbar components to utilize localized strings for better user experience.
- Updated the subscription page to display media usage details and improved the overall layout and functionality.
- Refactored logic to handle subscription states and media usage more effectively, ensuring accurate display of user information.

* Implement password policy features and validation

- Added password policy configuration with minimum length and validation options in the settings.
- Introduced a new PasswordPolicyView API endpoint to retrieve password policy settings.
- Updated user registration and password reset flows to enforce password length requirements.
- Enhanced frontend components to display password requirements and validation feedback during signup and password reset.
- Added tests for password policy enforcement and validation logic.
- Updated documentation to reflect new password policy environment variables and requirements.

* Enhance user authentication by allowing login with email or username

- Added ACCOUNT_AUTHENTICATION_METHOD setting to support both username and email for user login.
- Refactored NoPasswordAuthBackend to include a method for retrieving users by either username or email.
- Implemented tests to verify login functionality using both username and email.
- Updated frontend components to reflect changes in the login form, allowing users to enter either username or email.

* Add legal consent management for user signup

- Introduced legal consent fields in the CustomUser model to store acceptance of terms of service and privacy policy.
- Added a new SignupLegalLinksView API endpoint to provide configured URLs for terms of service and privacy policy.
- Updated the signup form to require acceptance of terms when legal links are configured.
- Enhanced the admin interface to display legal consent information for users.
- Implemented tests to verify legal links functionality and consent acceptance during signup.
- Updated frontend components to handle legal consent requirements in the signup process.

* Implement account deletion feature with associated data cleanup

- Added a new API endpoint for account deletion, allowing users to permanently delete their accounts and associated data.
- Introduced a DeleteAccountSerializer to validate deletion requests, requiring confirmation and optional password re-authentication.
- Implemented a service to handle the deletion of user-related data, including adventures, media, and Stripe billing information.
- Enhanced the user interface with settings components for account deletion, including confirmation prompts and warnings about data loss.
- Added tests to ensure the account deletion process works correctly and handles various edge cases, including Stripe billing cancellation.
- Updated frontend components to support the new account deletion functionality and provide user feedback during the process.

* Add StripeWebhookEvent model and integrate webhook handling

- Introduced the StripeWebhookEvent model to store incoming Stripe webhook events, including event ID, type, and processing timestamp.
- Updated the admin interface to manage StripeWebhookEvent records.
- Implemented webhook handling logic in views to process various Stripe events, ensuring idempotency and proper subscription updates.
- Added tests to verify webhook handling, including duplicate event rejection and unhandled event recording.
- Created a migration for the new StripeWebhookEvent model.

* Update environment configurations and enhance user invitation features

- Added new environment variables for database connection management and session handling in `.env.example` and `.env.advanced.example`.
- Introduced `AcceptInviteView` and `InviteSignupStatusView` to manage user invitations, allowing invited users to sign up with a provided invite key.
- Implemented invitation validation logic to check for expired or already accepted invites.
- Enhanced user signup process to require the email address associated with the invitation.
- Removed outdated HTML templates related to user authentication and email verification forms.
- Updated serializers and middleware to support new invitation features and improve session management.
- Added tests to ensure the integrity of the invitation system and user signup process.
- Updated `external_cache.py` to sanitize cache keys, handle invalid cache keys with logging, and improve key generation logic.
- Introduced `google_description.py` to fetch place descriptions from Google Maps, including scoring and payload extraction.
- Added tests for cache key generation and Google description fetching to ensure functionality and error handling.
- Updated `generate_description_view.py` to support fetching descriptions from Google Maps based on user input and API key validation.
- Updated `CategoryModal.svelte` to improve input styling with DaisyUI classes for better visual consistency.
- Added new localization strings for map controls in `en.json` to enhance user experience.
- Refined layout and styling in `dashboard/+page.svelte` for improved responsiveness and accessibility.
- Implemented sidebar functionality in `map/+page.svelte`, including toggle controls and responsive design adjustments.
Currently translated at 99.9% (1397 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sq/
- Introduced a `renderGuard` utility to prevent rendering issues in MapLibre by managing the redraw task queue.
- Updated `FullMap.svelte` to utilize the new `guardMapRenderQueue` for improved map stability during resize events.
- Enhanced `DangerZoneSettingsPanel.svelte` to block account deletion for staff users, providing appropriate warnings and confirmation prompts.
- Updated localization strings in `en.json` to reflect new account deletion restrictions for staff accounts.
- Refactored `SettingsNav.svelte` to ensure the danger zone settings are always visible in the navigation.
Currently translated at 100.0% (1398 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/
Currently translated at 42.2% (591 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/lb/
Currently translated at 100.0% (1398 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/zh_Hans/
Currently translated at 50.8% (711 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/lb/
Currently translated at 100.0% (1398 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sq/
Currently translated at 55.6% (778 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/lb/
- Added `first_usable_lat_lon` and `parse_lon_lat` functions to improve handling of geographic coordinates, ensuring proper fallback for missing or null values.
- Updated `Region` model to utilize the new geo utilities for resolving latitude and longitude, enhancing accuracy for regions without explicit coordinates.
- Modified `RegionSerializer` and `VisitedRegionSerializer` to include latitude and longitude derived from the new utility functions, improving data representation.
- Enhanced tests for serializers to verify fallback behavior to country centroids when region coordinates are missing or invalid.
- Updated frontend types to allow null values for latitude and longitude, ensuring compatibility with the new data handling logic.
…iew logic

- Introduced a new test suite for quick adding locations, validating category creation from client-generated IDs, names, and existing categories.
- Enhanced the `LocationViewSet` to handle category IDs more robustly, including error handling for unknown IDs and improved validation.
- Updated the frontend `CategoryDropdown` component to manage category creation state and display error messages effectively.
- Refined the `PlaceQuickStart` component to ensure proper category assignment during quick adds, improving user experience and data integrity.
Currently translated at 100.0% (1398 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/pt_BR/
Currently translated at 11.0% (155 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/gsw/
Currently translated at 27.1% (380 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/gsw/
Currently translated at 35.7% (500 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/gsw/
Currently translated at 42.6% (596 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/gsw/
Currently translated at 42.7% (598 of 1398 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/gsw/
Garciasergio and others added 16 commits September 26, 2026 20:37
Currently translated at 92.5% (1484 of 1603 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/es/
Currently translated at 100.0% (1603 of 1603 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/fr/
Currently translated at 100.0% (1603 of 1603 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/nl/
Currently translated at 43.5% (698 of 1603 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/gsw/
Currently translated at 100.0% (1603 of 1603 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/
Currently translated at 92.8% (1488 of 1603 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/es/
…s.svelte for improved state management. Introduced untrack and $derived to prevent reactive loops during initialization.
Currently translated at 100.0% (1620 of 1620 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/pt/
Currently translated at 100.0% (1620 of 1620 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/
Currently translated at 100.0% (1620 of 1620 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/
Currently translated at 100.0% (1620 of 1620 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/fr/
Currently translated at 43.3% (702 of 1620 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/gsw/
The locale reformat on development made Weblate's rebase conflict; keep that formatting and add the Portuguese, German, French, and Alemannic strings.
Currently translated at 100.0% (1620 of 1620 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/nl/
…es and issue templates

- Introduced a new CODE_OF_CONDUCT.md to establish community standards and expectations.
- Added SECURITY.md to outline the process for reporting vulnerabilities.
- Updated CONTRIBUTING.md to reference the new Code of Conduct and clarify contribution workflows.
- Enhanced issue templates for bug reports, feature requests, and documentation to improve clarity and usability.
- Implemented a GitHub Actions workflow to enforce contribution policies and manage issue labeling.
… management in LocationModal and +page.svelte. Introduced locationDraft for improved handling of location edits and prevent reactive loops.
@vercel

vercel Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
adventurelog Ready Ready Preview Oct 5, 2026 2:59am UTC

Comment thread backend/server/users/invitation_views.py Fixed
Comment thread backend/server/users/invitation_views.py Fixed
Comment thread backend/server/users/views.py Fixed
@seanmorley15 seanmorley15 changed the title v0.13.1 "Schoodic" v0.13.1 "Cadillac" Oct 2, 2026
- Improved the AcceptInviteView to validate invite keys and ensure safe redirects to the frontend signup page.
- Added a new method to handle redirects more securely, dropping unsafe invite keys.
- Updated the DeleteAccountView to provide a clearer error message when account deletion fails due to billing cleanup issues, enhancing user feedback.
- Added a test case to verify the new behavior for unsafe invite keys in the signup redirect.
- Updated the GitHub Actions workflow for smoke tests to use a custom Docker Compose override file, ensuring the correct image is used and improving error handling.
- Introduced a new utility function, createEmptyLocation, to standardize the creation of empty location objects across various components, enhancing code maintainability.
- Replaced instances of inline empty location creation with the new utility function in multiple Svelte components and routes, improving consistency and reducing duplication.
- Updated backend test commands to run the Django test suite directly, improving clarity and consistency.
- Introduced a new test settings module to isolate test configurations and prevent unintended side effects during testing.
- Modified the CustomUser model to allow nullable email fields, enhancing flexibility for user creation.
- Added comprehensive tests for user signup, legal links, and password policies to ensure robust user management.
- Removed outdated test files and improved existing tests for lodging and transportation permissions.
- Created an empty test initialization file to set up the testing framework for the backend.
- Updated Romanian, Russian, Slovak, Albanian, Swedish, Tamil, and Turkish localization files with new translations and corrections, enhancing the user experience across multiple languages.
…mprove date formatting functions

- Removed debug print statements from the permissions check for Visit and CollectionItineraryItem objects to clean up the code.
- Updated CSS to ensure proper height and styling for input fields, including specific adjustments for date and time fields.
- Enhanced date formatting functions to support user preferences for 12-hour and 24-hour time formats, improving the display of time in the application.
- Refactored date input components to integrate new formatting logic and improve user experience with time selection.

This branch was successfully deployed

1 active deployment
Preview — 375fb358 Deployed Oct 5, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet