Fix email template variable syntax - use Jinja2 double braces

Issue: Email body showed {campaign_name} instead of actual values
Cause: HTML templates used {variable} (Python format) but rendered with Jinja2
Fix: Changed all HTML template variables to {{ variable }} (Jinja2 syntax)

Templates Fixed:
- a1_to_a2_complete: {{ campaign_name }}, {{ campaign_id }}, {{ campaign_number }}, {{ asset_count }}
- a2_to_a3_complete: {{ campaign_name }}, {{ campaign_id }}, {{ asset_count }}
- upload_failed: {{ filename }}, {{ tracking_id }}, {{ error }}
- a1_to_a2_partial: {{ campaign_name }}, {{ campaign_id }}, {{ total_assets }}, {{ successful }}, {{ failed }}

Note: Subject lines use {variable} (Python .format()) which is correct
      HTML bodies use {{ variable }} (Jinja2) which is now correct

Email notifications will now display all values properly!

🤖 Generated with Claude Code
This commit is contained in:
DJP 2025-10-30 18:54:27 -04:00
parent e95988e2bc
commit 30ffdb519e
2 changed files with 13 additions and 13 deletions

View file

@ -53,9 +53,9 @@ class Notifier:
'subject': "✅ Master Assets Downloaded - Campaign {campaign_name}",
'html': """
<h2>Master Assets Downloaded Successfully</h2>
<p><strong>Campaign:</strong> {campaign_name} ({campaign_id})</p>
<p><strong>Campaign Number:</strong> {campaign_number}</p>
<p><strong>Assets Downloaded:</strong> {asset_count}</p>
<p><strong>Campaign:</strong> {{ campaign_name }} ({{ campaign_id }})</p>
<p><strong>Campaign Number:</strong> {{ campaign_number }}</p>
<p><strong>Assets Downloaded:</strong> {{ asset_count }}</p>
<p><strong>Status Updated:</strong> A1 A2</p>
<hr>
<p>All assets have been downloaded and uploaded to Box with tracking IDs.</p>
@ -65,9 +65,9 @@ class Notifier:
'subject': "✅ Localized Assets Uploaded - Campaign {campaign_name}",
'html': """
<h2>Localized Assets Uploaded Successfully</h2>
<p><strong>Campaign:</strong> {campaign_name}</p>
<p><strong>Campaign ID:</strong> {campaign_id}</p>
<p><strong>Assets Uploaded:</strong> {asset_count}</p>
<p><strong>Campaign:</strong> {{ campaign_name }}</p>
<p><strong>Campaign ID:</strong> {{ campaign_id }}</p>
<p><strong>Assets Uploaded:</strong> {{ asset_count }}</p>
<p><strong>Status Updated:</strong> A2 A3</p>
<hr>
<p>All localized assets have been uploaded to DAM.</p>
@ -77,9 +77,9 @@ class Notifier:
'subject': "❌ Upload Failed - {filename}",
'html': """
<h2 style="color: red;">Upload Failed</h2>
<p><strong>Filename:</strong> {filename}</p>
<p><strong>Tracking ID:</strong> {tracking_id}</p>
<p><strong>Error:</strong> {error}</p>
<p><strong>Filename:</strong> {{ filename }}</p>
<p><strong>Tracking ID:</strong> {{ tracking_id }}</p>
<p><strong>Error:</strong> {{ error }}</p>
<hr>
<p>Please investigate the error.</p>
"""
@ -88,10 +88,10 @@ class Notifier:
'subject': "⚠️ Partial Download - Campaign {campaign_name}",
'html': """
<h2 style="color: orange;">Campaign Partially Processed</h2>
<p><strong>Campaign:</strong> {campaign_name} ({campaign_id})</p>
<p><strong>Total Assets:</strong> {total_assets}</p>
<p><strong>Successful:</strong> {successful}</p>
<p><strong>Failed:</strong> {failed}</p>
<p><strong>Campaign:</strong> {{ campaign_name }} ({{ campaign_id }})</p>
<p><strong>Total Assets:</strong> {{ total_assets }}</p>
<p><strong>Successful:</strong> {{ successful }}</p>
<p><strong>Failed:</strong> {{ failed }}</p>
<hr>
<p style="color: red;"><strong>Status NOT updated.</strong> Campaign remains at A1.</p>
<p>Please review failed assets and retry.</p>