From 3332f68bb54867d6ed29bea39bbf9688c2a966b3 Mon Sep 17 00:00:00 2001 From: Amy Chen Date: Tue, 16 Jun 2026 14:55:17 -0700 Subject: [PATCH 1/6] updating colors in weekly report. updated debug_weekly_report to preview --- src/sentry/tasks/summaries/weekly_reports.py | 54 +++++++++-- .../templates/sentry/emails/reports/body.html | 91 +++++++++++++------ .../web/frontend/debug/debug_weekly_report.py | 85 ++++++++++++++++- tests/sentry/tasks/test_weekly_reports.py | 51 ++++++++++- 4 files changed, 240 insertions(+), 41 deletions(-) diff --git a/src/sentry/tasks/summaries/weekly_reports.py b/src/sentry/tasks/summaries/weekly_reports.py index 1010439b8a7709..52f888eeaf7939 100644 --- a/src/sentry/tasks/summaries/weekly_reports.py +++ b/src/sentry/tasks/summaries/weekly_reports.py @@ -459,20 +459,20 @@ def record_delivery(self) -> bool: return is_duplicate_detected -project_breakdown_colors = ["#422C6E", "#895289", "#D6567F", "#F38150", "#F2B713"] +project_breakdown_colors = ["#7553FF", "#7C2282", "#F0369A", "#FF9838", "#FFD00E"] total_color = """ linear-gradient( -45deg, - #ccc 25%, + #A29FAA 25%, transparent 25%, transparent 50%, - #ccc 50%, - #ccc 75%, + #A29FAA 50%, + #A29FAA 75%, transparent 75%, transparent ); """ -other_color = "#f2f0fa" +other_color = "#DAD9DE" group_status_to_color = { GroupHistoryStatus.UNRESOLVED: "#FAD473", GroupHistoryStatus.RESOLVED: "#8ACBBC", @@ -525,7 +525,35 @@ def get_group_status_badge(group: Group) -> tuple[str, str, str]: return ("Regressed", "rgba(108, 95, 199, 0.08)", "rgba(108, 95, 199, 0.5)") if group.substatus == GroupSubStatus.ESCALATING: return ("Escalating", "rgba(245, 84, 89, 0.09)", "rgba(245, 84, 89, 0.5)") - return ("Ongoing", "rgba(219, 214, 225, 1)", "rgba(219, 214, 225, 1)") + return ("Ongoing", "#DAD9DE", "#DAD9DE") + + +def get_group_display(group: Group) -> dict[str, str]: + metadata = group.get_event_metadata() + event_type = group.get_event_type() + custom_title = metadata.get("title") + + if event_type == "error": + title = ( + custom_title + if custom_title and custom_title != "" + else metadata.get("type") or metadata.get("function") or "" + ) + message = metadata.get("value") + elif event_type in ("transaction", "generic"): + title = custom_title or group.title + message = metadata.get("value") + elif event_type == "csp": + title = custom_title or metadata.get("directive") or "" + message = metadata.get("message") + else: + title = custom_title or group.title + message = group.culprit + + return { + "title": title, + "message": message or group.message or "", + } def get_local_dates(ctx: OrganizationReportContext, user_id: int) -> tuple[datetime, datetime]: @@ -681,6 +709,7 @@ def key_errors(): def all_key_errors(): for project_ctx in user_projects: for group, count in project_ctx.key_errors_by_group: + display = get_group_display(group) ( substatus, substatus_color, @@ -690,6 +719,8 @@ def all_key_errors(): yield { "count": count, "group": group, + "title": display["title"], + "message": display["message"], "status": "Unresolved", "status_color": (group_status_to_color[GroupHistoryStatus.NEW]), "group_substatus": substatus, @@ -723,9 +754,17 @@ def key_performance_issues(): def all_key_performance_issues(): for project_ctx in user_projects: for group, group_history, count in project_ctx.key_performance_issues: + display = get_group_display(group) + ( + substatus, + substatus_color, + substatus_border_color, + ) = get_group_status_badge(group) yield { "count": count, "group": group, + "title": display["title"], + "message": display["message"], "status": ( group_history.get_status_display() if group_history else "Unresolved" ), @@ -734,6 +773,9 @@ def all_key_performance_issues(): if group_history else group_status_to_color[GroupHistoryStatus.NEW] ), + "group_substatus": substatus, + "group_substatus_color": substatus_color, + "group_substatus_border_color": substatus_border_color, } return heapq.nlargest(3, all_key_performance_issues(), lambda d: d["count"]) diff --git a/src/sentry/templates/sentry/emails/reports/body.html b/src/sentry/templates/sentry/emails/reports/body.html index 513e8052f803ec..8507bbbc140c4b 100644 --- a/src/sentry/templates/sentry/emails/reports/body.html +++ b/src/sentry/templates/sentry/emails/reports/body.html @@ -3,11 +3,38 @@ {% load sentry_helpers %} {% load sentry_assets %} +{% block bodyclass %}weekly-report{% endblock %} + {% block head %} {{ block.super }}