Skip to content

Feat/ses enrollment email templates#259

Draft
nthriveni-sonata-ship-it wants to merge 5 commits into
edx:release-ulmofrom
nthriveni-sonata-ship-it:feat/ses-enrollment-email-templates
Draft

Feat/ses enrollment email templates#259
nthriveni-sonata-ship-it wants to merge 5 commits into
edx:release-ulmofrom
nthriveni-sonata-ship-it:feat/ses-enrollment-email-templates

Conversation

@nthriveni-sonata-ship-it
Copy link
Copy Markdown
Member

Context

Course enrollment emails are currently sent via Braze Canvas, where:

  • Email templates (HTML, layout, styling) are managed in Braze
  • The backend only sends canvas_entry_properties
  • Django templates are not part of the active rendering flow

What this PR contains

This PR introduces draft Django email templates for course enrollment:

  • English and Spanish templates

  • Header and footer partials

  • Supporting static assets added under:

    lms/static/images/enrollment_email/
    
  • Initial backend scaffolding in tasks.py to support future SES rendering

These templates are designed to replicate the current Braze email design and behavior.


Important — Review-Only PR

This PR is not intended to be merged.

It is shared strictly for:

  • Template structure review
  • Visual/design parity validation with Braze
  • Early feedback before implementation

There are no functional changes and no impact on the current email flow.
Braze remains the only active rendering mechanism.


Backend Notes (Scope Clarification)

  • tasks.py includes preparatory changes only
  • A helper for building image URLs has been introduced
  • SES-related logic is present but commented out and inactive

These changes are incomplete by design and not wired into any execution path.
tasks.py is not part of the review scope for this PR.


Why templates are in edx-platform (and not edx-themes)

These templates are intentionally added to edx-platform for this review.

Reason:

  • They are not part of runtime rendering
  • They are not integrated into the email sending flow
  • They are still under iteration and validation

Adding them to edx-themes at this stage would:

  • Imply they are active or production-ready
  • Create confusion about whether Braze or Django is responsible for rendering
  • Introduce inactive templates into the theming layer

Intentional placement

Placing them in edx-platform:

  • Clearly scopes them as draft, under-review artifacts
  • Avoids premature coupling with theming
  • Aligns with their current status as non-executed code

What comes next

After review and alignment:

  • Templates will be refined based on feedback

  • SES-based rendering will be implemented

  • The flow will be gated via a waffle flag:

    • ON → Django/SES templates
    • OFF → Braze Canvas
  • Once templates are part of the active rendering flow, theming considerations (including edx-themes) can be revisited


Testing

Templates have been validated locally for:

  • Structure
  • Layout
  • Conditional rendering

No runtime behavior changes are introduced.


Summary

This PR serves as a design and structure review checkpoint:

  • No impact on production behavior
  • No changes to the current Braze flow
  • Templates are intentionally kept in edx-platform as non-active, review-only artifacts

@nthriveni-sonata-ship-it nthriveni-sonata-ship-it force-pushed the feat/ses-enrollment-email-templates branch from 7c24e49 to 3c10a22 Compare May 15, 2026 08:04
@nthriveni-sonata-ship-it nthriveni-sonata-ship-it force-pushed the feat/ses-enrollment-email-templates branch from 3c10a22 to d51c9dd Compare May 15, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant