Skip to content

feat(dashboards): event deep-dive drawer + pacing chart - #1175

Draft
mrautela365 wants to merge 4 commits into
feat/LFXV2-2768-needs-attentionfrom
feat/LFXV2-2768-event-deepdive
Draft

feat(dashboards): event deep-dive drawer + pacing chart#1175
mrautela365 wants to merge 4 commits into
feat/LFXV2-2768-needs-attentionfrom
feat/LFXV2-2768-event-deepdive

Conversation

@mrautela365

Copy link
Copy Markdown
Contributor

Summary

Expands the per-event drawer into a comprehensive event deep-dive and focuses the overview on the LF Events story:

  • Deep-dive drawer: venue/city/country + status header, registration pacing rating with how-far-behind, registration & sponsorship revenue vs goal, sponsorship-by-tier, prior-year comparison, and a marketing-channel breakdown ("where registrations come from") from EVENT_REGISTRATION_ATTRIBUTION.
  • Registration-pacing chart (Current / Last-year / Predicted over days-to-event, via lfx-chart), wired to MARKETING_EVENT_REGISTRATION_PREDICTIONS[_DRILLDOWN]. Those tables are not materialized yet, so getEventPacing degrades gracefully to a placeholder + PCC link and the chart activates automatically once they land.
  • LFX UI standards: rebuilt the drawer with lfx-card / lfx-tag / lfx-button to match the ED drawer pattern.
  • Focus the overview: removed the general performance-summary KPI cards and marketing-attribution table so the page is purely the LF Events story.

PR 6/6 of the LF Events dashboard stack (LFXV2-2768). Base: feat/LFXV2-2768-geo-reach (PR). Review/merge PRs 1–5 first.

Pacing prediction models pending (data-team PR under review); everything else validated live. Typecheck + lint pass.

LFXV2-2768

Add a geographic reach panel showing event registrations by country,
sourced from ANALYTICS.PLATINUM_LFX_ONE.MARKETING_EVENT_REGISTRATION_COUNTRY
(YTD). Renders the top countries as ranked share bars with ISO code, a
title-cased name, registration count, and share of total, plus a headline
count of countries reached.

LFXV2-2768

Signed-off-by: Misha Rautela <mrautela@linuxfoundation.org>
Turn the per-event drawer into a comprehensive event story: venue/city/
country and status in the header, registration pacing rating with how-far-
behind, registration and sponsorship revenue vs goal, sponsorship by tier,
prior-year comparison, and a marketing-channel breakdown (where
registrations come from) sourced from EVENT_REGISTRATION_ATTRIBUTION.

The daily pacing-prediction curve is not yet in self-serve-readable tables
(it lives in PCC's prediction service), so the drawer shows a pace rating
plus a PCC deep-link today; the pacing block is wired to light up once the
MARKETING_EVENT_REGISTRATION_PREDICTIONS models land.

LFXV2-2768

Signed-off-by: Misha Rautela <mrautela@linuxfoundation.org>
Rebuild the event deep-dive drawer to match the ED drawer pattern: use the
lfx-card, lfx-tag, and lfx-button wrapper components, a lfx-button close in
the header, the standard type scale (text-lg header, text-2xl headline
stats, text-sm labels) and gap-6 section rhythm, replacing the previous
raw-div, small-type layout.

LFXV2-2768

Signed-off-by: Misha Rautela <mrautela@linuxfoundation.org>
Build the registration-pacing line chart in the event deep-dive drawer
(current-year, last-year, and predicted lines over days-to-event, using
lfx-chart) sourced from the MARKETING_EVENT_REGISTRATION_PREDICTIONS[_
DRILLDOWN] models. Those tables are not materialized yet, so getEventPacing
degrades gracefully to an unavailable state (placeholder + PCC link) and
the chart lights up automatically once they land.

Also focus the overview tab on the LF Events story: remove the general
performance-summary KPI cards and the marketing-attribution table, leaving
needs-attention, events summary, event roster (+drawer), and geo reach.

LFXV2-2768

Signed-off-by: Misha Rautela <mrautela@linuxfoundation.org>
Copilot AI review requested due to automatic review settings July 23, 2026 03:55
@mrautela365
mrautela365 requested a review from a team as a code owner July 23, 2026 03:55
@cursor

cursor Bot commented Jul 23, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Adds new Snowflake queries and a larger API payload for event detail; pacing queries are wrapped in try/catch but overview KPI removal is a visible product change.

Overview
Turns the roster event detail drawer into a full deep-dive: richer header (location, status), headline KPI cards, registration pacing with pace tag and goal gap, optional current / last year / predicted line chart when prediction tables exist, revenue breakdown, tier list, and marketing channel session bars. Drawer chrome moves to lfx-card, lfx-tag, lfx-button, and lfx-chart, with a PCC fallback when pacing data is missing.

getEventDetail now returns location, status, registration revenue goals, prior-year flags, channel attribution from EVENT_REGISTRATION_ATTRIBUTION, and pacing from MARKETING_EVENT_REGISTRATION_PREDICTIONS (+ drilldown) via getEventPacing, which fails open to an empty pacing block if tables are absent.

The Marketing Impact overview tab drops the performance-summary sparkline KPI grid and marketing attribution section so the tab is only the LF Events sections (attention, summary, roster, geo).

Reviewed by Cursor Bugbot for commit e81d8ea. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 35ae7206-d2e2-40a7-8a13-f7cff665e011

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/LFXV2-2768-event-deepdive

Comment @coderabbitai help to get the list of available commands.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e81d8ea. Configure here.

title: { display: true, text: 'Days to event', color: lfxColors.gray[400], font: { size: 10 } },
grid: { display: false },
ticks: { color: lfxColors.gray[500], font: { size: 10 }, maxTicksLimit: 8 },
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pacing chart X-axis inverted

Medium Severity

The registration pacing line chart sets reverse: true on the x-axis while drilldown points are ordered by DAYS_TO_EVENT DESC. Chart.js draws the first category on the right when reversed, so day 0 (event day) lands on the left instead of the right as intended and unlike PCC.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit e81d8ea. Configure here.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Expands the Marketing Impact event drawer into an event deep-dive and narrows the overview to LF Events reporting.

Changes:

  • Adds event attribution, revenue, venue, and pacing data contracts and queries.
  • Rebuilds the drawer with LFX components and a registration-pacing chart.
  • Removes general KPI and attribution sections from the overview.

Reviewed changes

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

Show a summary per file
File Description
packages/shared/src/interfaces/dashboard-metric.interface.ts Adds event deep-dive and pacing contracts.
apps/lfx-one/src/server/services/project.service.ts Queries and maps expanded event analytics.
apps/lfx-one/src/app/modules/dashboards/marketing-impact/components/overview-tab/overview-tab.component.ts Simplifies overview logic to event sections.
apps/lfx-one/src/app/modules/dashboards/marketing-impact/components/overview-tab/overview-tab.component.html Removes KPI and attribution UI.
apps/lfx-one/src/app/modules/dashboards/marketing-impact/components/event-detail-drawer/event-detail-drawer.component.ts Adds pacing calculations and chart configuration.
apps/lfx-one/src/app/modules/dashboards/marketing-impact/components/event-detail-drawer/event-detail-drawer.component.html Implements the expanded event drawer UI.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +69 to +70
// Days to event count DOWN to zero; reverse so the event (0) sits on the right.
reverse: true,
Comment on lines +7424 to +7425
const head = headResult.rows?.[0];
if (!head) return unavailable;
</div>
}
<div class="flex flex-col">
<span class="text-xl font-semibold text-violet-600">{{ num(d.pacing.predictedAvg ?? 0) }}</span>
Comment on lines +5121 to +5122
channels,
pacing: await this.getEventPacing(eventId),
Base automatically changed from feat/LFXV2-2768-geo-reach to feat/LFXV2-2768-needs-attention July 23, 2026 14:04
@mrautela365
mrautela365 marked this pull request as draft August 3, 2026 21:02
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.

2 participants