Champion Portal Development Sub-Phase 3.11
Status: ✅ COMPLETE
Completed: January 2025
Estimated Effort: 1-2 days Focus: Redesign dashboard to showcase Google News-style content sectionsPrerequisites: Phase 3.10 complete (News/Events/Discussions index pages)
Related Documents:
Dashboard Changes:
_discussion_card_compact)_news_card_compact)small_thumbnail: true option for right-column compact cards_event_row partial)show_community: true)Community Show Page Updates:
_event_row) + Members card_discussion_card_compact and _news_card_compact partials as dashboardmax-w-7xl instead of max-w-5xl)Community Index Page (“Community Select”) Redesign:
@invited_community for invitation displayLayout & Styling Fixes:
max-w-7xl) across all community pagesPartial Enhancements:
_discussion_card_compact.html.erb: Added small_thumbnail option_news_card_compact.html.erb: Added small_thumbnail option_event_row.html.erb: Added show_community option for community pillsEvents Index Page Redesign:
_event_list_card.html.erb partial with:
index_past.html.erb (unified into main index with toggle)| File | Change |
|---|---|
app/views/cp/dashboard/show.html.erb |
Major restructure with Google News layouts |
app/views/cp/communities/show.html.erb |
Restructured to match dashboard, width aligned to max-w-7xl |
app/views/cp/communities/index.html.erb |
Complete redesign as “Community Select” page |
app/views/cp/events/index.html.erb |
Complete rewrite with filter bar and chronological list |
app/views/cp/events/_event_list_card.html.erb |
NEW - Full-width horizontal event card for index |
app/views/cp/events/index_past.html.erb |
DELETED - Unified into main index with toggle |
app/controllers/cp/dashboard_controller.rb |
Updated loading methods |
app/controllers/cp/communities_controller.rb |
Updated limits, added load_invited_community_context to index |
app/controllers/cp/events_controller.rb |
Simplified index action with filter support |
app/views/cp/shared/_discussion_card_compact.html.erb |
Added small_thumbnail option |
app/views/cp/shared/_news_card_compact.html.erb |
Added small_thumbnail option |
app/views/cp/shared/_event_row.html.erb |
Added show_community option |
app/views/shared/_champion_footer.html.erb |
Fixed footer visibility with gradient overlay |
test/controllers/cp/communities_controller_test.rb |
Updated tests for new index page structure |
Phase 3.11 redesigns the Champion Portal dashboard to leverage the new Google News-style content layouts from Phase 3.10. The dashboard becomes a unified hub showing featured content from discussions, news, and events.
Key Changes:
| Question | Decision |
|---|---|
| Discussions layout | 1 featured + 3 compact cards (same as discussions/index top section) |
| No communities fallback | Pull from national board (Phase 3.6) |
| News layout | 1 featured + 3 compact cards (same as news/index top section) |
| News source | Pull from everything (champion’s communities + global posts) |
| Quick Actions styling | Larger icon buttons |
| Events count | Show 3 OR all within next 2 weeks (whichever is more) |
| Events styling | Date badge on left (blue gradient), no thumbnail, no description |
| Communities + Leadership | Combined card with CL indicator; Leadership Dashboard button if CL for 1+ communities |
| Communities “View All” | Links to existing cp_communities_path |
| “From Belmont Community” | Replaced by “Latest News” with real posts |
| “Community Snapshot” vs “My District” | Same concept (keeping existing) |
| Question | Decision |
|---|---|
| My Communities section | Simple grid layout (option A) |
| Filter dropdown | Remove “Joined” filter since My Communities shows joined ones (option B) |
| Back link | Remove it (option A) |
| No communities state | Show warm, inviting informational box about communities (option B) |
┌─────────────────────────────────────────────────────────────────┐
│ 1. NEXT STEPS (if needed) - keep as is │
├─────────────────────────────────────────────────────────────────┤
│ 2. SUGGESTED COMMUNITIES (if needed) - keep as is │
├─────────────────────────────────────────────────────────────────┤
│ 3. FROM YOUR COMMUNITIES │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 💬 Discussions View all → │ │
│ │ ┌─────────────────┬─────────────────────────────────────┐ │ │
│ │ │ FEATURED CARD │ Compact Card 1 │ │ │
│ │ │ (large, image │─────────────────────────────────────│ │ │
│ │ │ on top) │ Compact Card 2 │ │ │
│ │ │ │─────────────────────────────────────│ │ │
│ │ │ │ Compact Card 3 │ │ │
│ │ └─────────────────┴─────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 📰 Latest News View all → │ │
│ │ ┌─────────────────┬─────────────────────────────────────┐ │ │
│ │ │ FEATURED CARD │ Compact Card 1 │ │ │
│ │ │ (large, image │─────────────────────────────────────│ │ │
│ │ │ on top) │ Compact Card 2 │ │ │
│ │ │ │─────────────────────────────────────│ │ │
│ │ │ │ Compact Card 3 │ │ │
│ │ └─────────────────┴─────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ 4. QUICK ACTIONS - larger icon buttons │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│ 1. MY DISTRICT CARD - keep as is │
├─────────────────────────────────────────┤
│ 2. UPCOMING EVENTS View all│
│ ┌───────────────────────────────────┐ │
│ │ [DATE] Event Title │ │
│ │ [BADGE] Venue Name │ │
│ │ [mm/dd] Community pill(s) │ │
│ └───────────────────────────────────┘ │
│ (repeat for each event) │
├─────────────────────────────────────────┤
│ 3. YOUR COMMUNITIES Manage → View all│
│ ┌───────────────────────────────────┐ │
│ │ ⭐ Nashville, TN (CL indicator) │ │
│ │ ○ Belmont MOB │ │
│ │ ○ College of Music │ │
│ └───────────────────────────────────┘ │
│ [Leadership Dashboard] (if CL) │
├─────────────────────────────────────────┤
│ 4. MESSAGES - keep as is │
├─────────────────────────────────────────┤
│ 5. YOUR PROFILE - keep as is │
└─────────────────────────────────────────┘
Data Source:
Layout:
_discussion_card_compact.html.erb partial with featured: true/falsecp_discussions_pathEmpty State:
Data Source:
Layout:
_news_card_compact.html.erb partial with featured: true/falsecp_news_index_pathEmpty State:
Data Source:
Layout:
┌────────────────────────────────────────┐
│ ┌─────┐ Event Title │
│ │ MON │ Location / Virtual │
│ │ 15 │ Community pill(s) │
│ └─────┘ │
└────────────────────────────────────────┘
Empty State:
Combines:
Layout:
┌─────────────────────────────────────────┐
│ Your Communities Manage → │
│ View all →│
├─────────────────────────────────────────┤
│ ⭐ Nashville, TN → 1 1 │
│ ○ Belmont MOB → │
│ ○ College of Music → 2 │
├─────────────────────────────────────────┤
│ [Leadership Dashboard] (if CL for 1+) │
└─────────────────────────────────────────┘
cp_communities_pathRedesign: Larger icon buttons (cards instead of pills)
┌─────────────────────────────────────────────────────────────────┐
│ QUICK ACTIONS │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐│
│ │ ✏️ │ │ 🔍 │ │ 👥 │ │ ❓ │ │ ⚙️ ││
│ │ Edit │ │ Find │ │ Invite │ │ Help │ │Settings ││
│ │ Profile │ │ Alumni │ │ Friends │ │ │ │ ││
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └─────────┘│
└─────────────────────────────────────────────────────────────────┘
Update DashboardController#show to load:
# Discussions (for featured section)
@featured_discussions = load_featured_discussions(4) # 1 featured + 3 compact
# News (for featured section)
@featured_news = load_featured_news(4) # 1 featured + 3 compact
# Events (2 weeks or min 3)
@dashboard_events = load_dashboard_events
# Communities with CL status
@my_communities_with_cl_status = load_communities_with_cl_status
app/views/cp/dashboard/show.html.erb:
show_community: true)app/controllers/cp/dashboard_controller.rb:
load_featured_discussions methodload_featured_news methodload_dashboard_events method (2 weeks logic)app/views/cp/shared/_event_row.html.erb partial for simplified event displayapp/views/cp/communities/show.html.erb to match dashboard pattern:
_event_row) + Members cardmax-w-7xl)app/controllers/cp/communities_controller.rb:
load_invited_community_context call to index actionapp/views/cp/communities/index.html.erb as “Community Select” page:
_discussion_card_compact: Add small_thumbnail option_news_card_compact: Add small_thumbnail option_event_row: Add show_community option| File | Changes |
|---|---|
app/controllers/cp/dashboard_controller.rb |
Added featured discussions/news loading, 2-week events logic |
app/views/cp/dashboard/show.html.erb |
Major restructure with Google News layouts for left column, event rows for right |
app/views/cp/shared/_event_row.html.erb |
Simplified event row with date badge, show_community option |
app/views/cp/shared/_discussion_card_compact.html.erb |
Added small_thumbnail option |
app/views/cp/shared/_news_card_compact.html.erb |
Added small_thumbnail option |
app/views/cp/communities/show.html.erb |
Restructured to match dashboard pattern, width aligned |
app/views/cp/communities/index.html.erb |
Complete redesign as “Community Select” page |
app/controllers/cp/communities_controller.rb |
Updated limits, added load_invited_community_context to index |
app/views/shared/_champion_footer.html.erb |
Fixed footer visibility with gradient overlay |
test/controllers/cp/communities_controller_test.rb |
Updated tests for new index page structure |