Conversation
Bumps the bundler group with 2 updates in the / directory: [rack](https://github.com/rack/rack) and [uri](https://github.com/ruby/uri). Updates `rack` from 3.1.10 to 3.1.12 - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md) - [Commits](rack/rack@v3.1.10...v3.1.12) Updates `uri` from 0.13.1 to 0.13.2 - [Release notes](https://github.com/ruby/uri/releases) - [Commits](ruby/uri@v0.13.1...v0.13.2) --- updated-dependencies: - dependency-name: rack dependency-type: indirect dependency-group: bundler - dependency-name: uri dependency-type: indirect dependency-group: bundler ... Signed-off-by: dependabot[bot] <support@github.com>
…4ee4e Bump the bundler group across 1 directory with 2 updates
Remove unnecessary div wrapper in contest instance judging results template for cleaner markup
Streamline the HTML structure of the contest instance judges management view by: - Removing unnecessary nested divs - Simplifying layout and spacing - Maintaining existing visual hierarchy and information display
Enhance Container model with: - New contact_email attribute - Presence validation for contact email - Email format validation using URI::MailTo::EMAIL_REGEXP - Updated strong parameters in ContainersController to permit contact_email
Update the Container form to include: - New contact_email input field - Helpful hint explaining the purpose of the contact email - Maintain existing required fields for name and department
Add database columns to support email tracking and contact details: - `emails_sent_count` to JudgingRounds for tracking email communications - `contact_email` to Containers for storing additional contact information
Set up inline queue adapter for Active Job in development environment to ensure immediate email delivery and improve testing workflow with letter_opener_web
Implement comprehensive email notification system for contest entries: - Create ResultsMailer with entry_evaluation_notification method - Add HTML and plain text email templates - Support dynamic content including entry details, rankings, and judge comments - Implement flexible contact email fallback mechanism - Style email templates with responsive design and clear visual hierarchy
Introduce an alias method to match view expectations and improve code readability by providing a more intuitive method name for checking round completion status
Extend contest instance routes with a custom member route to support sending round results, enabling more granular control over result communication processes
Add functionality to send evaluation results emails for a specific judging round: - Implement send_round_results method in ContestInstancesController - Add authorization check for managing contest instances - Validate round completion before sending emails - Support both immediate and background email delivery based on environment - Track and increment emails sent count for the judging round - Provide user-friendly redirect with success notification
Update the judging results partial to: - Add card styling for each judging round - Include email send button with tooltip and contact email display - Show email sent count badge for tracking round communications - Maintain existing functionality for displaying entry rankings and comments
…Policy Extend ContestInstancePolicy with a new authorization method `send_round_results?` to support access control for sending contest round evaluation results, maintaining consistent permission checks with existing methods
Update test factories and model specs for Containers and JudgingRounds to reflect new database columns: - Add contact_email to Container factory and spec - Add emails_sent_count to JudgingRound factory and spec
Update the judging results partial to leverage Stimulus for confirmation dialog: - Replace inline `confirm` attribute with Stimulus `confirm` controller - Use `confirm_message_value` to dynamically set confirmation text - Maintain existing email send button functionality and styling
…round results Refactor the authorization method in the send_round_results action to use the new `send_round_results?` method, ensuring consistent permission checks in line with the updated ContestInstancePolicy.
- Add commented configuration for forcing SSL in the test environment. - Set ActiveJob to run synchronously in the test environment for immediate job execution during tests.
- Introduce comprehensive RSpec tests for the send_round_results action in ContestInstancesController, covering valid and invalid scenarios, including email sending and authorization checks. - Create a new ResultsMailer spec to validate the entry_evaluation_notification method, ensuring correct email content and headers. - Update container factory to include contact_email and enhance container and judging round specs to reflect new functionality. - Add system tests for judging results email interactions, verifying UI behavior and email sending functionality.
…fications - Change the environment check from `development?` to `local?` in the email notification logic within the `send_round_results` action, ensuring proper email delivery behavior in local development settings.
…ents - Update ResultsMailer to structure external comments with associated judge names for clarity in email notifications. - Modify entry_evaluation_notification views to display judge names alongside their feedback in both HTML and text formats, improving the recipient's understanding of the feedback context.
- Introduce email_preferences method to handle user preferences for email notifications related to judging rounds. - Implement checks for valid judging round and its completion status before proceeding with email preferences. - Update judging round attributes based on user input for average ranking and advancement status. - Ensure proper redirection with alert messages for invalid scenarios.
… model - Introduce new boolean attributes `include_advancement_status` and `include_average_ranking` to the JudgingRound model, defaulting to false. - These attributes will facilitate user preferences for judging round configurations related to advancement and ranking calculations.
- Replace button_to with link_to for the email preferences action in the judging results partial. - Remove unnecessary method and data attributes, simplifying the button's functionality while maintaining the disabled state based on round completion.
- Create a new view for email preferences in contest instances, allowing users to select options for including average ranking and advancement status in evaluation result emails. - Implement form with checkboxes for user preferences and a confirmation dialog for sending emails, enhancing user experience and control over email content.
…nces for average ranking and advancement status - Modify the entry_evaluation_notification view to conditionally display average ranking and advancement status based on the new attributes `include_average_ranking` and `include_advancement_status` from the JudgingRound model. - Enhance messaging for finalists and non-finalists to provide clearer communication regarding advancement in the judging process.
…vancement status - Modify the entry_evaluation_notification view to include conditional rendering for advancement status based on the `include_advancement_status` attribute from the JudgingRound model. - Ensure that the messaging for selected and non-selected entries is displayed only when the user preferences allow it, enhancing clarity in communication regarding entry outcomes.
- Introduce a new route for the email_preferences action within contest instances, allowing users to access their email notification settings related to judging rounds. - This addition enhances the routing structure, facilitating better user interaction with email preferences in the application.
- Introduce two new boolean columns, `include_average_ranking` and `include_advancement_status`, to the JudgingRounds table via a migration. - These columns will allow users to specify their preferences for including average ranking and advancement status in evaluation result emails, enhancing user control over email content.
…roller - Implement RSpec tests for the email_preferences action, ensuring proper rendering of the email preferences template and correct assignment of the judging round. - Add tests for handling non-existent and incomplete judging rounds, verifying appropriate redirection and alert messages. - Enhance the send_round_results action tests to check for updates to email preferences based on user input, ensuring preferences are preserved when not provided. - Introduce system tests for the email preferences form, confirming the presence of checkboxes and the correct display of email content options based on user selections.
- Require the Capistrano::Sidekiq plugin and install it for managing Sidekiq processes. - Add Capistrano::Sidekiq::Systemd plugin to facilitate systemd service management for Sidekiq, enhancing deployment capabilities.
- Include the Sidekiq gem for background processing capabilities. - Add Capistrano-Sidekiq gem to facilitate deployment and management of Sidekiq processes, enhancing the deployment workflow.
- Create a new Procfile to define the web server (Puma) and background worker (Sidekiq) processes. - This setup enhances the application's deployment and background job processing capabilities.
- Simplify the email delivery logic in the `send_round_results` method by removing the environment check for local delivery. - All entries will now use `deliver_later` for sending evaluation notifications, ensuring consistent background processing across environments.
- Introduce a new route for the Sidekiq Web UI, accessible only to users with the `axis_mundi?` role. - This addition enhances monitoring and management of background jobs within the application.
- Create a new `sidekiq.yml` file to define concurrency and queue settings for different environments (development, test, staging, production). - This configuration enhances the management of background jobs by specifying queue priorities and retry limits, optimizing job processing across environments.
- Create a new `sidekiq.service.erb` file to define the systemd service configuration for Sidekiq. - This template specifies the service's execution parameters, environment settings, and logging, enhancing the deployment and management of Sidekiq processes.
- Change Active Job queue adapter to Sidekiq and set queue name prefix to 'lsa_evaluate_production'. - This update enhances background job processing in the production environment, aligning with recent Sidekiq integrations.
- Change Active Job queue adapter to Sidekiq, aligning with the production environment setup. - This update improves background job processing in the staging environment, ensuring consistency across environments.
- Create a new initializer file for Sidekiq to configure Redis connection and set Sidekiq as the ActiveJob queue adapter. - This setup enhances background job processing by establishing a consistent configuration for Sidekiq across all environments.
- Introduce a new Rake task namespace for Redis, including tasks to check for Redis installation and install Redis if not present. - Hook the Redis check into the deployment flow to ensure Redis is available before proceeding with deployment. - This addition enhances the deployment process by automating Redis setup and verification.
- Add `capistrano-sidekiq` gem for improved integration of Sidekiq with Capistrano deployment. - Update `sidekiq` gem to version 7.3.9, ensuring compatibility with the latest features and fixes. - This update enhances background job management and deployment processes within the application.
- Replace :max_retries with :default_worker_options in sidekiq.yml to align with Sidekiq 7.x standards. - Set retry options for development, test, staging, and production environments, ensuring consistent background job behavior across all environments. - This change enhances the configuration by utilizing the latest Sidekiq features for managing job retries.
- Replace the deprecated max_retries middleware with default_worker_options for setting global retry limits. - Provide comments for potential custom retry logic using middleware, enhancing clarity for future modifications. - This change ensures compatibility with Sidekiq 7.x and simplifies the configuration for background job retries.
- Upgrade Sidekiq gem to version 7.3 for improved performance and features. - Update connection_pool gem to version 2.5.0 and logger gem to version 1.6.6 for compatibility and enhancements. - Upgrade redis-client gem to version 0.24.0 to ensure optimal Redis integration.
- Update sidekiq.yml to replace deprecated default_worker_options with global :retry settings for all environments. - This change aligns with Sidekiq 7.3.x standards, simplifying the configuration for job retries and ensuring consistent behavior across development, test, staging, and production environments.
- Modify the Sidekiq initializer to set the global retry option directly using the options hash, aligning with Sidekiq 7.3.x standards. - Remove deprecated default_worker_options comments for clarity and maintainability. - This change simplifies the configuration for job retries, ensuring consistent behavior across all environments.
- Update sidekiq.yml to include default configuration comments and environment-specific settings for concurrency and retry options. - Modify sidekiq.rb to clarify that the retry option is now set in the sidekiq.yml file, enhancing the overall configuration structure. - These changes ensure a more organized and understandable Sidekiq setup across different environments.
…ation - Update the default_url_options for Action Mailer to correctly reference the host variable, ensuring proper email delivery in the staging environment. - This change enhances clarity and correctness in the configuration, aligning with Rails conventions.
- Update sidekiq.yml to include new queues for lsa_evaluate in both default and mailers categories, ensuring proper job processing for the LSA evaluation tasks. - This change enhances the Sidekiq configuration by accommodating specific job requirements for the application environment.
Bumps the bundler group with 1 update in the / directory: [nokogiri](https://github.com/sparklemotion/nokogiri). Updates `nokogiri` from 1.18.3 to 1.18.4 - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](sparklemotion/nokogiri@v1.18.3...v1.18.4) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect dependency-group: bundler ... Signed-off-by: dependabot[bot] <support@github.com>
- Modify the encrypted credentials file to update sensitive information, ensuring secure access to application secrets. - This change improves the overall security posture of the application by keeping sensitive data up-to-date and properly managed.
- Include detailed steps for setting up SendGrid for email delivery in the production environment. - Document the necessary environment variables and the requirement for Sidekiq to process emails asynchronously. - This addition enhances the README by providing clear guidance for email configuration, improving the onboarding experience for new developers.
- Add RSpec/MultipleMemoizedHelpers rule to limit the number of memoized helpers to 12, promoting better test organization and readability. - This change enhances the code quality checks by enforcing stricter guidelines for RSpec tests, ensuring maintainable and efficient test code.
- Implement SendGrid settings in production.rb to enable email delivery via SMTP. - Configure necessary SMTP settings including user credentials, domain, and port. - Set default URL options for Action Mailer to ensure proper link generation in emails. - This change enhances email functionality and aligns with best practices for production environments.
…idekiq - Introduce a new initializer for ActionMailer to enable asynchronous email delivery using Sidekiq. - Implement delivery logging and notification callbacks to enhance email tracking. - This change improves email handling efficiency and aligns with best practices for background job processing.
…d1bf2 Bump nokogiri from 1.18.3 to 1.18.4 in the bundler group across 1 directory
- Add `ssl_options` to `production.rb` to disable the HSTS header while maintaining SSL enforcement. - This change allows for HSTS management via the nginx configuration, enhancing flexibility in server settings.
- Introduce TestMailer class with a method to send a test email. - Create HTML view for the test email, including a subject and timestamp. - This addition facilitates email authentication verification and testing within the application.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds Mailer functionality and other minor fixes