Skip to content

Release: Last Action column and Edit dialog fixes#783

Closed
ismaeldosil wants to merge 13 commits intomasterfrom
staging
Closed

Release: Last Action column and Edit dialog fixes#783
ismaeldosil wants to merge 13 commits intomasterfrom
staging

Conversation

@ismaeldosil
Copy link
Collaborator

@ismaeldosil ismaeldosil commented Jan 27, 2026

Summary

  • Add Last Action column showing most recent user activity (Observation, Training, Conference Plan, Action Plan, Email)
  • Display format: "Action Type - Date" (e.g., "Observation - 1/27/26, 3:45 PM")
  • Implement edit dialog in UsersPage for All Users tab
  • Add archive confirmation dialog
  • Optimized batch queries (5 queries instead of ~3000)

PRs included

Test plan

  • Tested in staging

- AllUsersPage.tsx / AllUsersTable.tsx - New admin page to view all users in the system with a sortable, filterable table
- App.tsx / BurgerMenu.tsx - Added routing and navigation menu entry for the new "All Users" page
- Firebase.tsx - New method fetchAllUsers() to retrieve all users from Firestore
- Types.tsx - Extended User interface with optional fields (email, school, archived, lastLogin) for reuse across components
- xlsxGenerator.ts - Added user export functionality using centralized Types.User
- seed-full.js / seed-local.js / seed-local.sh - Scripts to populate local emulators with test data
- .gitignore - Exclude internal project files
- README.md - Documentation for local development setup
- cypress/all-users.ts - E2E tests for the All Users feature
- functions/package-lock.json - Updated Node engine (10→20)
- yarn.lock - Dependency updates
fix: restore yarn.lock to fix CI parsing error
AllUsers page UI improvements
LeaderBoard All Users improvements
Add Leaderboard 'All users' loading state
fix(all-users): read legacy programId formats
fix(all-users): handle program names in programs array
- Add getUsersLastAction() method with optimized batch queries
- Query 5 collections in parallel (observations, knowledgeChecks,
  conferencePlans, actionPlans, emails)
- Build Map<userId, lastDate> in memory for O(1) lookups
- Add lastAction to User interface and getAllUsers() result
- Add sortable "Last Action" column to AllUsersTable
- Include Last Action in CSV export

Performance: 5 queries total instead of 2,995 (599 users × 5 collections)

Closes CHALK-090
Closes CHALK-091
Closes CHALK-092
feat(all-users): add Last Action column showing most recent activity
- Display action type (Observation, Training, Conference Plan, etc.) alongside date
- Add lastActionType field to User interface
- Update CSV export with Action Type column
- Fix potential undefined email issue in Edit dialog

Closes CHALK-090
feat(all-users): show action type in Last Action column
- Add edit dialog to UsersPage for All Users tab
- Change Last Action format to "Action - Date" (action first)
- Add archive confirmation dialog
- Fix handleAllUserClick which was only logging

Closes CHALK-090
fix(all-users): implement edit dialog and fix action format
@ismaeldosil
Copy link
Collaborator Author

Recreating without package-lock noise

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.

1 participant