Skip to content

Fix and restructure email configuration and improve email settings UI in event settings#3384

Open
Rachit7168 wants to merge 29 commits intofossasia:devfrom
Rachit7168:fix-email-conf-ui
Open

Fix and restructure email configuration and improve email settings UI in event settings#3384
Rachit7168 wants to merge 29 commits intofossasia:devfrom
Rachit7168:fix-email-conf-ui

Conversation

@Rachit7168
Copy link
Copy Markdown
Contributor

@Rachit7168 Rachit7168 commented Apr 24, 2026

Fixes: #3366


Overview

This PR fixes and restructures email configuration and improves UI clarity in event settings.


Case C: Improve UI behavior and clarity

C.Improve.UI.behavior.and.clarity.mp4

Case B: Improve Email settings functionality

B.Improve.Email.settings.functionality.mp4

Case A: Move and fix sender email configuration

A.Move.and.fix.sender.email.configuration.mp4

Changes Made

A. Sender Email Configuration

  • Removed Sender address from General tab
  • Added Sender email in Email settings tab
  • Added Reply-to address field

B. Email Functionality Improvements

  • Moved SMTP save/test into Email settings
  • Removed duplicate actions from other tabs
  • Added Send test email to custom address

C. UI Improvements

  • Conditional rendering based on "Use custom email"
  • Only selected vendor (SMTP/SendGrid) is shown
  • Standardized labels:
    • Use Custom EmailUse custom email
    • Sendgrid TokenSendgrid token

Expected Behavior

  • Clean and context-based UI
  • Proper email configuration flow
  • Verified sender usage
  • Easy testing of email setup

Acceptance Criteria

  • Sender address removed from General tab
  • Sender email added to Email settings
  • Reply-to field added
  • Only selected vendor form visible
  • Conditional UI rendering works
  • SMTP actions consolidated
  • Test email feature works
  • Labels standardized

Copilot AI review requested due to automatic review settings April 24, 2026 14:40
@sourcery-ai
Copy link
Copy Markdown
Contributor

sourcery-ai Bot commented Apr 24, 2026

Reviewer's Guide

Refactors how email backends are tested and restructures the event email settings UI and forms so that custom email, provider-specific fields (SendGrid vs SMTP), test email behavior, and reply-to handling are clearer, more consistent with global settings, and validated correctly.

Sequence diagram for testing custom email configuration from event settings

sequenceDiagram
    actor Organizer
    participant Browser
    participant EventEmailSettingsView as EventEmailSettingsView
    participant MailSettingsForm as MailSettingsForm
    participant Event
    participant MailBackend as MailBackend

    Organizer->>Browser: Submit email settings form (test=1, optional test_email)
    Browser->>EventEmailSettingsView: POST /control/event/.../mail

    EventEmailSettingsView->>MailSettingsForm: Instantiate with POST data
    MailSettingsForm-->>EventEmailSettingsView: is_valid(), cleaned_data

    alt Form valid and test requested
        EventEmailSettingsView->>Event: get_mail_backend(force_custom=True, timeout=10)
        Event-->>EventEmailSettingsView: MailBackend instance

        alt test_email provided
            EventEmailSettingsView->>EventEmailSettingsView: Parse test_email into to_addrs list
        else no test_email provided
            EventEmailSettingsView->>EventEmailSettingsView: Set to_addrs = None
        end

        alt Backend supports test
            EventEmailSettingsView->>MailBackend: test(from_addr=event.settings.mail_from, to_addrs=to_addrs)
            MailBackend-->>EventEmailSettingsView: Success or exception
        else Backend missing test
            EventEmailSettingsView->>EventEmailSettingsView: Raise AttributeError
        end

        alt Exception raised
            EventEmailSettingsView->>Browser: Redirect with warning message
        else No exception
            EventEmailSettingsView->>Browser: Redirect with success message
        end
    else Form invalid or no test requested
        EventEmailSettingsView-->>Browser: Re-render form with errors or normal save
    end

    note over MailBackend: For SendGridEmail, CustomSMTPBackend, FileSavedEmailBackend
    note over MailBackend: test(from_addr, to_addrs) sends real test message
Loading

Updated class diagram for email backends, mail service, and event mail settings form

classDiagram
    class SendGridEmail {
        - api_key
        + __init__(api_key)
        + test(from_addr, to_addrs)
    }

    class CustomSMTPBackend {
        + test(from_addr, to_addrs)
        + send_messages(email_messages)
    }

    class FileSavedEmailBackend {
        - _fname
        + send_messages(email_messages)
        + test(from_addr, to_addrs)
        + _get_filename()
    }

    class MailSettingsForm {
        + mail_prefix
        + mail_from
        + mail_reply_to
        + mail_from_name
        + smtp_use_custom
        + email_vendor
        + send_grid_api_key
        + smtp_host
        + smtp_port
        + smtp_username
        + smtp_password
        + smtp_use_tls
        + smtp_use_ssl
        + test_email
        + clean()
    }

    class EventSettings {
        + mail_from
        + mail_reply_to
        + mail_bcc
        + get_mail_backend(force_custom, timeout)
    }

    class MailService {
        + mail(event, auto_email, headers, event_reply_to)
    }

    EventSettings --> SendGridEmail : configures
    EventSettings --> CustomSMTPBackend : configures
    EventSettings --> FileSavedEmailBackend : configures

    MailSettingsForm --> EventSettings : saves_to

    MailService --> EventSettings : reads_settings

    MailService ..> SendGridEmail : uses_backend
    MailService ..> CustomSMTPBackend : uses_backend
    MailService ..> FileSavedEmailBackend : uses_backend

    note for MailService "If EventSettings.mail_reply_to is set and no Reply-To header exists, it is applied for non auto_email messages before using event_reply_to"
Loading

File-Level Changes

Change Details Files
Unify and extend email backend test functionality to send real test messages with optional custom recipients.
  • Update SendGridEmail.test to accept an optional recipient list, normalize to a list, change the static test address to a dynamic list, and improve the HTML content message.
  • Refactor CustomSMTPBackend.test from low-level SMTP handshake checks to sending a real EmailMessage to one or more recipients with clearer body text.
  • Add a test method to FileSavedEmailBackend that composes and writes a test EmailMessage using the backend’s send_messages implementation.
app/eventyay/base/email.py
Restructure event-level email settings UI so custom email configuration is gated behind the toggle and vendor-specific options are conditionally displayed.
  • Move mail_from and provider-specific fields (SendGrid API key and SMTP config) inside a container that is only shown when smtp_use_custom is enabled.
  • Split provider-specific inputs into separate conditional blocks keyed off the email vendor radio buttons for SendGrid vs SMTP.
  • Add a test_email field and inline 'Save and test custom SMTP connection' button inside the custom-email section, and relocate the standalone test button out of the global form footer.
  • Expose mail_reply_to in the email settings fieldset and remove it from the general settings fieldset grouping.
app/eventyay/control/templates/pretixcontrol/event/mail.html
app/eventyay/control/forms/event.py
Align global email configuration form with vendor-specific conditional display behavior and more consistent labeling.
  • Change SendGrid token label to use sentence-case and add data-display-dependency so it only shows for the SendGrid vendor option.
  • Add data-display-dependency attributes to SMTP host, port, username, password, and TLS/SSL inputs so they are only visible when SMTP is selected.
  • Standardize placeholders and checkbox widgets for TLS/SSL with the new conditional display behavior.
app/eventyay/control/forms/global_settings.py
Introduce event-level reply-to configuration and ensure it is used in outgoing mail when present.
  • Add mail_reply_to default setting with appropriate form and serializer configuration, label, and help text.
  • Include mail_reply_to in MailSettingsForm auto_fields so it becomes configurable in event settings.
  • Update mail sending logic to prefer the event’s mail_reply_to setting as the Reply-To header when not already set, and only fall back to event-specific reply-to behavior when auto_email is false and no header is set.
app/eventyay/base/configurations/default_setting.py
app/eventyay/control/forms/event.py
app/eventyay/base/services/mail.py
Validate that custom sender addresses are only used when custom email is enabled and support user-configurable recipients for test emails.
  • Add a test_email field with validation for comma-separated email lists and help text describing how to use it.
  • In the event mail settings view, parse test_email into a recipient list and pass it to the backend.test call, handling backends without a test method gracefully.
  • Add a MailSettingsForm.clean override that blocks custom mail_from values when smtp_use_custom is disabled and surfaces a clear validation error.
app/eventyay/control/forms/event.py
app/eventyay/control/views/event.py

Assessment against linked issues

Issue Objective Addressed Explanation
#3366 Restructure sender email configuration by removing the sender address from the General tab, adding it under Email settings with appropriate constraints, and introducing a functional reply-to address field.
#3366 Improve email settings functionality by consolidating SMTP save/test actions into the Email settings tab and allowing test emails to be sent to custom addresses.
#3366 Improve email settings UI behavior and clarity so that configuration is only shown when 'Use custom email' is enabled, only the selected vendor’s form is visible, and labels are updated to consistent casing.

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@Rachit7168
Copy link
Copy Markdown
Contributor Author

@mariobehling ,
Case C: Improve UI behavior and clarity(Also, I added the same. When selecting email vendor, show only the selected one in admin as well: Let me know if you want it to be removed)

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • The use of hard-coded vendor index selectors like #id_email_vendor_0 / #id_email_vendor_1 is brittle; consider deriving these selectors from the field’s choices or using data attributes that don’t depend on positional indices.
  • The data-display-dependency pattern is now duplicated between the global settings form and the event mail template; consider centralizing this behavior (e.g., via a helper or shared JS/HTML snippet) to keep the logic consistent and reduce future maintenance.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The use of hard-coded vendor index selectors like `#id_email_vendor_0` / `#id_email_vendor_1` is brittle; consider deriving these selectors from the field’s `choices` or using data attributes that don’t depend on positional indices.
- The `data-display-dependency` pattern is now duplicated between the global settings form and the event mail template; consider centralizing this behavior (e.g., via a helper or shared JS/HTML snippet) to keep the logic consistent and reduce future maintenance.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@Rachit7168 Rachit7168 marked this pull request as draft April 24, 2026 14:42
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the organiser and global email settings UIs to be more context-driven by conditionally showing email vendor configuration only when relevant (custom email enabled and chosen vendor).

Changes:

  • Hide email vendor configuration until “Use custom email” is enabled, and show only the selected vendor’s fields (SendGrid vs SMTP) in event email settings.
  • Add data-display-dependency attributes to global email settings fields to toggle visibility based on selected vendor.
  • Normalize label casing (“Use custom email”, “Sendgrid token”).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
app/eventyay/control/templates/pretixcontrol/event/mail.html Wraps vendor fields in data-display-dependency containers to conditionally display relevant email config fields.
app/eventyay/control/forms/global_settings.py Adds vendor-based data-display-dependency widget attrs and updates SendGrid label casing.
app/eventyay/control/forms/event.py Updates email settings field labels for consistency.

Comment thread app/eventyay/control/templates/pretixcontrol/event/mail.html Outdated
Comment thread app/eventyay/control/templates/pretixcontrol/event/mail.html
Comment thread app/eventyay/control/templates/pretixcontrol/event/mail.html
Copilot AI review requested due to automatic review settings April 24, 2026 17:39
@Rachit7168 Rachit7168 marked this pull request as ready for review April 24, 2026 17:40
Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • The test button label and surrounding copy in mail.html still refer specifically to "custom SMTP connection" even though SendGrid is now also supported; consider updating the text to reflect that it tests the currently selected custom email provider.
  • The MailSettingsForm.clean() logic hard-codes settings.MAIL_FROM as the only allowed non-custom sender; if there are other global fallbacks (e.g., instance-level overrides), you may want to reuse the same resolution logic as the actual mail backend instead of comparing against a single setting.
  • The test methods for SendGridEmail, CustomSMTPBackend, and FileSavedEmailBackend each reimplement nearly identical to_addrs normalization and test-message construction; consider extracting a small helper to avoid duplication and keep behavior consistent across backends.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The `test` button label and surrounding copy in `mail.html` still refer specifically to "custom SMTP connection" even though SendGrid is now also supported; consider updating the text to reflect that it tests the currently selected custom email provider.
- The `MailSettingsForm.clean()` logic hard-codes `settings.MAIL_FROM` as the only allowed non-custom sender; if there are other global fallbacks (e.g., instance-level overrides), you may want to reuse the same resolution logic as the actual mail backend instead of comparing against a single setting.
- The `test` methods for `SendGridEmail`, `CustomSMTPBackend`, and `FileSavedEmailBackend` each reimplement nearly identical `to_addrs` normalization and test-message construction; consider extracting a small helper to avoid duplication and keep behavior consistent across backends.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures event email configuration to better match provider requirements and improves the event email settings UI by conditionally showing provider-specific fields, adding Reply-To support, and enabling test emails to custom recipients.

Changes:

  • Move “Sender address” (mail_from) out of the General section and group custom email/provider fields under the “Use custom email” toggle.
  • Add mail_reply_to setting and apply it as the outgoing email Reply-To header.
  • Extend backend “test” functionality to optionally send test emails to user-specified addresses.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
app/eventyay/control/views/event.py Extends email backend test invocation to accept optional recipient list and adds backend capability check.
app/eventyay/control/templates/pretixcontrol/event/mail.html Restructures email settings UI to conditionally display vendor-specific sections and adds test-email input.
app/eventyay/control/forms/global_settings.py Updates SendGrid label casing and adds display-dependency attributes to vendor-specific global email fields.
app/eventyay/control/forms/event.py Adds mail_reply_to to auto settings fields, introduces test_email, and attempts to add validation around custom sender usage.
app/eventyay/base/services/mail.py Introduces mail_reply_to into Reply-To header handling.
app/eventyay/base/email.py Updates backend .test() methods to accept optional recipients and sends an actual test message.
app/eventyay/base/configurations/default_setting.py Adds the new mail_reply_to default/field definition.
Comments suppressed due to low confidence (2)

app/eventyay/control/views/event.py:825

  • The new AttributeError path and multi-vendor testing mean errors/success messages can be unrelated to SMTP (e.g. SendGrid selected, or backend doesn’t support test). Right now everything is reported as “contacting the SMTP server”, and AttributeError is caught and shown as an SMTP error. Consider handling AttributeError separately with a vendor-agnostic message, and avoid hasattr by calling backend.test(...) and catching AttributeError explicitly.
                    if hasattr(backend, 'test'):
                        backend.test(self.request.event.settings.mail_from, to_addrs=to_addrs)
                    else:
                        raise AttributeError(_('The active email backend does not support connection testing.'))
                except Exception as e:
                    messages.warning(
                        self.request,
                        _('An error occurred while contacting the SMTP server: %s') % str(e),
                    )

app/eventyay/base/services/mail.py:197

  • This change makes event.settings.mail_reply_to override any event_reply_to passed into mail(). That breaks per-email Reply-To overrides (e.g. the sendmail plugin passes event_reply_to=self.reply_to). The precedence should usually be: explicit event_reply_to (for manual emails) > event default mail_reply_to > other fallbacks, while still applying the event default to auto-emails when no explicit reply-to is provided.
            if event.settings.mail_reply_to and not headers.get('Reply-To'):
                headers['Reply-To'] = event.settings.mail_reply_to
            elif not auto_email:
                if (
                    event_reply_to
                    and not headers.get('Reply-To')
                ):
                    headers['Reply-To'] = event_reply_to

Comment thread app/eventyay/base/services/mail.py Outdated
Comment thread app/eventyay/control/templates/pretixcontrol/event/mail.html Outdated
Comment thread app/eventyay/control/forms/event.py
Comment thread app/eventyay/control/forms/event.py
Comment thread app/eventyay/control/templates/pretixcontrol/event/mail.html Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures how event-level email configuration is presented and enforced, adding a dedicated Reply-To setting and improving the “custom email” UI so organizers only see provider-relevant fields.

Changes:

  • Moves “Sender address” out of the General section and into the custom email configuration area; adds mail_reply_to.
  • Adds “send test email to …” support and extends email backends’ test() to accept recipients.
  • Adds conditional UI display for SendGrid vs SMTP fields and standardizes labels (“Use custom email”, “Sendgrid token”).

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
app/eventyay/control/views/event.py Adds parsing for test-email recipients and guards backend test support.
app/eventyay/control/templates/pretixcontrol/event/mail.html Reorganizes form layout; conditionally shows vendor-specific fields and moves test button.
app/eventyay/control/forms/global_settings.py Standardizes labels and adds display dependencies for vendor-specific global email fields.
app/eventyay/control/forms/event.py Adds mail_reply_to, test_email, validation around custom sender, and prevents persisting test_email.
app/eventyay/base/services/mail.py Sets Reply-To header from new mail_reply_to setting with precedence handling.
app/eventyay/base/email.py Extends SendGrid/SMTP/file backends’ test() to send a test email (optionally to custom recipients).
app/eventyay/base/configurations/default_setting.py Adds new mail_reply_to setting to defaults/config schema.
Comments suppressed due to low confidence (1)

app/eventyay/control/views/event.py:825

  • The exception handling here is now used for SendGrid/file backends and for the explicit AttributeError, but the warning message still says “contacting the SMTP server” and formats the exception with str(e). Please make the message backend-agnostic (e.g. “testing email settings”) and pass the exception object directly to interpolation instead of str().
                        raise AttributeError(_('The active email backend does not support connection testing.'))
                except Exception as e:
                    messages.warning(
                        self.request,
                        _('An error occurred while contacting the SMTP server: %s') % str(e),
                    )

Comment thread app/eventyay/control/views/event.py Outdated
Comment thread app/eventyay/control/templates/pretixcontrol/event/mail.html
Comment thread app/eventyay/control/forms/event.py Outdated
Comment thread app/eventyay/base/email.py
Comment thread app/eventyay/base/services/mail.py Outdated
Comment thread app/eventyay/control/views/event.py Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures event email configuration to better reflect provider requirements and improves the event email settings UI by conditionally showing provider-specific fields, adding a Reply-To setting, and enabling test emails to custom recipients.

Changes:

  • Add mail_reply_to event setting and apply it with correct precedence when sending event emails.
  • Restructure the event “E-mail settings” UI to hide provider-specific fields unless “Use custom email” and the selected vendor are active, and add a “Send test email to” field.
  • Update SendGrid/SMTP test methods to send a test email (optionally to user-specified recipients) and add coverage for Reply-To precedence.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
app/tests/tickets/base/test_mail.py Adds tests for Reply-To precedence; adjusts existing placeholder test.
app/eventyay/control/views/event.py Extends “test” flow to accept comma-separated recipients for test emails.
app/eventyay/control/templates/pretixcontrol/event/mail.html Moves sender address into Email settings and adds conditional UI + test email controls.
app/eventyay/control/forms/global_settings.py Updates labels and adds vendor-dependent UI attributes for global email settings.
app/eventyay/control/forms/event.py Adds mail_reply_to and test_email, adjusts validation and settings persistence behavior.
app/eventyay/base/services/mail.py Ensures mail_reply_to takes precedence unless an explicit Reply-To header is provided.
app/eventyay/base/email.py Updates backend test() methods to send test emails and supports custom recipients.
app/eventyay/base/configurations/default_setting.py Registers new mail_reply_to setting.

Comment thread app/eventyay/control/views/event.py Outdated
Comment thread app/eventyay/control/templates/pretixcontrol/event/mail.html
Comment thread app/eventyay/control/forms/event.py Outdated
Comment thread app/eventyay/base/email.py
Comment thread app/tests/tickets/base/test_mail.py
Comment thread app/eventyay/control/templates/pretixcontrol/event/mail.html
Copilot AI review requested due to automatic review settings April 25, 2026 08:40
Copilot AI review requested due to automatic review settings May 5, 2026 12:31
Copy link
Copy Markdown
Member

@Sak1012 Sak1012 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image

Please move "Reply-To" to the general tab above the BCC field and rename the "Email Settings" tab to "Advanced Settings". The rest of the changes looks good.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Comment thread app/eventyay/control/templates/pretixcontrol/event/mail.html
Comment thread app/eventyay/control/views/event.py Outdated
Comment thread app/eventyay/base/email.py
Comment thread app/eventyay/control/forms/event.py
Copilot AI review requested due to automatic review settings May 5, 2026 13:46
@Rachit7168
Copy link
Copy Markdown
Contributor Author

image

@Rachit7168
Copy link
Copy Markdown
Contributor Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 20603f1a7a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread app/eventyay/control/forms/event.py
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment thread app/eventyay/control/forms/event.py
Comment thread app/eventyay/control/views/event.py Outdated
Comment thread app/eventyay/control/views/event.py Outdated
…nostics

- Preserve SMTP/SendGrid settings when switching vendors or disabling custom email in MailSettingsForm
- Improve exception handling and logging in test-email flow to match global settings
- Remove redundant hasattr check for email backend test capability
@Rachit7168 Rachit7168 requested a review from Sak1012 May 5, 2026 14:25
@Rachit7168
Copy link
Copy Markdown
Contributor Author

Please move "Reply-To" to the general tab above the BCC field and rename the "Email Settings" tab to "Advanced Settings". The rest of the changes looks good.

Thanks for the feedback. Resolved

Copilot AI review requested due to automatic review settings May 6, 2026 13:04
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI review requested due to automatic review settings May 7, 2026 14:33
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI review requested due to automatic review settings May 9, 2026 08:23
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

Fix and restructure email configuration and improve email settings UI in event settings

5 participants