- Updated seed filtering logic in SeedsController to use new FILTER_PARAMS.
- Enhanced seed-field layout in _seeds.scss for better responsiveness.
- Introduced SeedFiltersHelper for managing filter parameters and paths.
- Revised views to utilize new helper methods for clearer filter management.
- Updated specs to reflect changes in filter logic and UI adjustments.
- Introduced a new JavaScript module for crop job season management, including functions to describe planting days and update warnings based on selected dates.
- Updated the CropJobTemplate model to include methods for determining if a date is within the season for a given latitude.
- Enhanced the AddCropJobs service to support planting dates and adjust job due dates accordingly.
- Created a new view for displaying season warnings when adding crop jobs, allowing users to confirm adding jobs outside the specified season.
- Updated the job modal to prompt users for planting dates and display relevant warnings.
- Added tests for the new functionality, ensuring correct behavior for seasonal warnings and job creation based on planting dates.
- Update AddCropJobs service to support planting selection for job creation.
- Modify CropJobsController to handle planting parameter during job addition.
- Improve job templates view to display plantings and allow adding jobs to specific plantings.
- Add relevant translations for new UI elements.
- Extend specs to cover new planting functionality and ensure correct behavior.
Ensure inline edits on the seed show page redirect back to the
relevant section (#facts or #notes) after saving.
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
- Modify the create action in OpeningsController to use a localized notice for stall opening.
- Adjust the show action in StallsController to reflect the new opening logic.
- Enhance tests to verify the new flash message and UI behavior when the stall is opened.
- Implement Atproto::ClientConfig for managing OAuth client configuration.
- Create Atproto::Http module for handling HTTP requests with SSRF protection.
- Develop Atproto::Identity class to resolve handles to DIDs and validate DID documents.
- Introduce Atproto::Jws for generating and signing JWTs for OAuth.
- Create Atproto::OauthClient to manage the OAuth authorization flow with Bluesky.
- Add OmniAuth strategy for Bluesky sign-in, allowing users to authenticate using their Bluesky handle.
- Update views to include Bluesky sign-in options and handle connections.
- Modify routes to expose OAuth client metadata.
- Allow members to sign in without an email address when using Bluesky.
- Add tests for Bluesky authorization and sign-in processes.
* Refactor weather handling for plantings to support historical data and improve accuracy of weather readings
* Update weather pending messages to clarify data collection delay across multiple languages
* Refactor weather updater tests to improve accuracy of weather reading counts and remove redundant perennial test cases
* Correct the still loading messaging
* Add user behaviour detection service for spam scoring
Implement UserBehaviourDetectionService to evaluate members for spam indicators:
- Check email confirmation status
- Inspect bio, posts, and comments for spam-related keywords (such as "Sports Betting")
- Display spam score on admin member screens with badges and tooltips
Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>
* Calculate and persist spam_score on member updates
- Add `spam_score` integer column to members table with migration and schema update
- Add `update_spam_score!` method to Member model
- Call `update_spam_score!` on successful member updates in RegistrationsController#update and MembersController#finish_signup
- Use persisted member `spam_score` in Admin::MembersHelper#spam_score_badge
Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>
* Renumber migration to resolve duplicate version conflict
- Renumber migration from 20261031020000 to 20261031060000
- Update db/schema.rb version to 2026_10_31_060000
Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>
---------
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
- Implement weather_figures method to format weather data for display.
- Update planting reminder email view to utilize new weather_figures method.
- Add tests for weather_figures method to ensure accurate output.
- Modify ReminderEvent model to group events by week in UTC for consistency.
- Update the growstuff rake tasks to log ReminderEvent when planting and harvest reminders are sent.
- Create a factory for ReminderEvent to facilitate testing.
- Implement model specs for ReminderEvent, including validations and weekly counts.
- Add request specs for Admin::ReminderStatsController to verify reminder statistics.
- Enhance unsubscribe specs to ensure ReminderEvent is logged correctly on unsubscriptions.
- Update task specs for growstuff to verify ReminderEvent counts for sent reminders.