Skip to content

feat: Add Buzz workspace dashboard with charts and cards - #313

Merged
harshtandiya merged 2 commits into
developfrom
claude/frappe-dashboard-export-5xbs78
Aug 3, 2026
Merged

feat: Add Buzz workspace dashboard with charts and cards#313
harshtandiya merged 2 commits into
developfrom
claude/frappe-dashboard-export-5xbs78

Conversation

@harshtandiya

@harshtandiyaharshtandiya commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator
image

Summary

Populate the Buzz workspace with dashboard components including charts, number cards, and quick action shortcuts to provide users with an overview of events and quick access to common actions.

Key Changes

  • Workspace Configuration (buzz.json):

    • Added "Events by Category" chart to the charts array
    • Populated content with structured dashboard layout including:
      • Quick Actions header with shortcuts for creating Meetups, Conferences, and Events
      • Overview section with Active Events and Total Events number cards
      • Events by Category chart visualization
    • Added number cards configuration for Active Events and Total Events
    • Added shortcuts configuration for quick event creation with pre-filled category filters
  • New Dashboard Chart (events_by_category.json):

    • Created "Events by Category" dashboard chart
    • Configured as a Group By chart counting events by category field
    • Set to display as a Donut chart type
    • Made public and marked as standard
  • New Number Cards:

    • Active Events (active_events.json): Displays count of published events with end_date >= today, colored green (#29CD42)
    • Total Events (total_events.json): Displays total count of all events with percentage stats, colored blue (#449CF0)

Implementation Details

  • All dashboard components reference the Buzz Event document type as their data source
  • Number cards use appropriate filters: Active Events filters by published status and future end dates, while Total Events shows all events
  • Shortcuts are configured with direct URLs for Meetups and Conferences (pre-filtered by category) and a DocType link for generic Event creation
  • All components are marked as public and standard for workspace visibility

https://claude.ai/code/session_01437BfuRXkj3k8JsQXMr3YJ

The Buzz workspace shipped empty ("content": "[]") even though hooks.py
points the apps screen at /app/buzz, so every site installing buzz landed
on a blank page.
Add two standard Number Cards (Total Events, Active Events) and a
standard "Events by Category" Group By chart under the Events module.
Being standard + module-scoped, they are picked up by sync_dashboards()
on both install_app and bench migrate, so any site that installs buzz
gets them without extra hooks or fixtures.
Wire them into the workspace along with three shortcuts: two URL
shortcuts that prefill the category on the new-event form, and a plain
New Event shortcut. Shortcuts cannot carry route options, so prefilling
has to go through the URL form.
Active Events uses dynamic_filters_json for the end_date comparison so
the cutoff is evaluated at render time rather than frozen at authoring
time.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01437BfuRXkj3k8JsQXMr3YJ

@greptile-appsgreptile-appsBot 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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@harshtandiyaharshtandiya changed the title Add Buzz workspace dashboard with charts and cardsfeat: Add Buzz workspace dashboard with charts and cardsJul 31, 2026
The "Events by Category" donut rendered an unreadable legend. frappe-charts
lays legend items out at a fixed x = LEGEND_ITEM_WIDTH * count (150px slots,
BaseChart.js renderLegend) but never clips the label text to its slot, and
frappe core passes truncateLegends: 0, so longer category names ran straight
over their neighbours and the last item spilled past the card.
Switch the chart to Bar. Axis charts carry their labels on the x-axis instead
of a legend row, so the overlap cannot happen, and the bars stay readable when
one category dominates the counts — which a donut does not.
number_of_groups was 0, which the widget reads as "unset" and falls back to
max_slices: 6 for Pie/Donut, bucketing real categories into "Rest". Bar falls
back to 9, but set it explicitly so the value does not depend on the chart type.
Also add New Zoom Meeting and New Zoom Webinar quick actions. There is no
"Zoom Webinar" category — Webinars and Zoom Meeting are the two Zoom-backed
ones, paired in the free_event depends_on and behind create_webinar_on_zoom /
create_meeting_on_zoom — so the webinar shortcut targets Webinars.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@greptile-appsgreptile-appsBot 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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@harshtandiyaharshtandiya added the backport main backport to main branch label Aug 3, 2026
@harshtandiya
harshtandiya merged commit fbc6315 into developAug 3, 2026
7 checks passed
@harshtandiya
harshtandiya deleted the claude/frappe-dashboard-export-5xbs78 branch August 3, 2026 06:27
@github-actions

Copy link
Copy Markdown
Contributor

Successfully created backport PR for main:

harshtandiya added a commit that referenced this pull request Aug 3, 2026
feat: Add Buzz workspace dashboard with charts and cards (#313)
* feat(events): populate Buzz workspace with cards, chart and shortcuts
The Buzz workspace shipped empty ("content": "[]") even though hooks.py
points the apps screen at /app/buzz, so every site installing buzz landed
on a blank page.
Add two standard Number Cards (Total Events, Active Events) and a
standard "Events by Category" Group By chart under the Events module.
Being standard + module-scoped, they are picked up by sync_dashboards()
on both install_app and bench migrate, so any site that installs buzz
gets them without extra hooks or fixtures.
Wire them into the workspace along with three shortcuts: two URL
shortcuts that prefill the category on the new-event form, and a plain
New Event shortcut. Shortcuts cannot carry route options, so prefilling
has to go through the URL form.
Active Events uses dynamic_filters_json for the end_date comparison so
the cutoff is evaluated at render time rather than frozen at authoring
time.
Claude-Session: https://claude.ai/code/session_01437BfuRXkj3k8JsQXMr3YJ
* fix(events): make the category chart readable and add Zoom shortcuts
The "Events by Category" donut rendered an unreadable legend. frappe-charts
lays legend items out at a fixed x = LEGEND_ITEM_WIDTH * count (150px slots,
BaseChart.js renderLegend) but never clips the label text to its slot, and
frappe core passes truncateLegends: 0, so longer category names ran straight
over their neighbours and the last item spilled past the card.
Switch the chart to Bar. Axis charts carry their labels on the x-axis instead
of a legend row, so the overlap cannot happen, and the bars stay readable when
one category dominates the counts — which a donut does not.
number_of_groups was 0, which the widget reads as "unset" and falls back to
max_slices: 6 for Pie/Donut, bucketing real categories into "Rest". Bar falls
back to 9, but set it explicitly so the value does not depend on the chart type.
Also add New Zoom Meeting and New Zoom Webinar quick actions. There is no
"Zoom Webinar" category — Webinars and Zoom Meeting are the two Zoom-backed
ones, paired in the free_event depends_on and behind create_webinar_on_zoom /
create_meeting_on_zoom — so the webinar shortcut targets Webinars.
---------
(cherry picked from commit fbc6315)
Co-authored-by: Harsh Tandiya <harsh.tandiya@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
@NagariaHussain

Copy link
Copy Markdown
Contributor

@harshtandiya please add screenshots for all UI related PRs!

@harshtandiya

Copy link
Copy Markdown
CollaboratorAuthor

@NagariaHussain added

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

Labels

backport mainbackport to main branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@harshtandiya@NagariaHussain@claude