# CC Soccer D11 - Current TODO List

**Last Updated:** January 4, 2026

---

## **COMPLETED (Recent)**

1. ✅ User ID banner (dev mode - shows user ID and role)
2. ✅ Season entity fields (visibility flags + league inheritance)
3. ✅ Game status admin form (menu + form + credits + tracking)
4. ✅ Credits service implementation (CreditManagerService)
5. ✅ Override admin UI (create/list/manage interface)
6. ✅ Content pages (home, teams, schedule, my-schedule, my-teams, jerseys)
7. ✅ Menus (75% complete - functional, polish later)
8. ✅ Masquerade (contrib module + custom block)

---

## **IN PROGRESS**

### **Andrew's Work**
- **Schedule Cancellation Overlay** - Display cancellation reason on schedule grid with styling

---

## **IMMEDIATE (This Week)**

### **1. Mobile Testing**
- Test registration flow on phone
- Test group management on phone
- Test schedule display on phone
- Test admin interfaces on tablet
- Priority: ~50% of users are mobile

### **2. End-to-End Testing**
- Complete registration → payment flow
- Group formation → team assignment
- Schedule generation → display
- Credits issuance → application
- Override grant → registration

### **3. Performance Testing**
- Roster builder with 200+ players
- Schedule builder with 20+ teams
- Notification queue with bulk sends
- Database query optimization

---

## **NEXT SPRINT (Next 2 Weeks)**

### **4. Menu UX Polish (25% Remaining)**
- Refine Board Member menu items
- Refine Slofriendly menu items
- Organize Player menu structure
- Clean up Admin menu
- Test with each role

### **5. Tournament Deposits Management Page**
- Build admin UI for managing tournament deposits
- Implement tournament filter dropdown
- Display captain contact info and refund status
- Integrate Commerce API for refund capability
- Add comments field for tracking partial refunds
- Test refund workflow end-to-end

---

## **MIGRATION PREP (January-February)**

### **6. Board Decision - CRITICAL**
- User pruning cutoff: 2-year vs 3-year vs 5-year
- Impact: 1,000 vs 1,500 vs 2,200 users migrated
- Recommendation: 3-year cutoff (balanced approach)
- Schedule meeting with Board

### **7. Write Migration Scripts**
- User migration (Drupal Migrate API configuration)
- Credits migration (custom script)
- Payment methods migration (Commerce tools)
- Pre-migration cleanup queries
- Field mapping validation

### **8. Test Migration**
- Dry run with 50 test users
- Verify password hashes work
- Verify credits transfer correctly
- Verify payment methods preserved
- Test login after migration

---

## **REPORTS & MANAGEMENT PAGES (Backlog - After Testing Complete)**

### **COMPLETED**

#### **Jersey Report** ✅
- Pattern: MySQL view + Custom Filter Plugin
- Menu: Admin → CC Soccer → Reports → Jersey Report
- Permission: "view reports" (Board Member + Admin)
- Export: CSV via JavaScript

#### **City Payment Report** ✅
- Pattern: Form-based PDF Generation
- Menu: Admin → CC Soccer → Reports → City Payment Report
- Permission: "administer ccsoccer" (Admin only)
- Output: Multi-page PDF (calculations + roster + schedule)
- Excludes rainouts from revenue calculation

### **IN PROGRESS**

#### **Tournament Deposits Management Page** (Priority 1)
- **Type:** Admin management UI (not just report)
- **Purpose:** Query deposits, manage refunds, track captain info
- **Features:**
  - Tournament filter (dropdown single-select)
  - Display: Tournament, team, captain, contact info, refund status
  - Comments field (for partial refunds or notes)
  - **Refund capability:** Issue refunds directly to deposit line item via Commerce API
- **Menu:** Admin → CC Soccer → Tournament Deposits
- **Permission:** "administer ccsoccer" OR new permission for Slofriendly
- **Note:** Caleb implements UI, then integrate cancellation workflow

### **PLANNED**

#### **Insurance Report** (Priority 2)
- Player roster for insurance coverage
- Fields: Name, DOB, contact, emergency contact, active seasons
- Export: PDF + CSV

#### **All Players View Refactor** (Priority 3)
- **Type:** View optimization
- **Current Issue:** Existing view is slow with large dataset
- **Solution:** Convert to MySQL view pattern (like Jersey Report)
- **Owner:** Andrew
- **Note:** Andrew must find/update all site links pointing to current view

---

## **BEFORE FEBRUARY DEADLINE**

### **9. Deployment Prep**
- Remove dev banner
- Configure production payment gateway
- Configure production email (SMTP)
- Configure production SMS (Clickatell live)
- Backup strategy
- Security review
- Performance check

### **10. User Acceptance Testing**
- Board members test all workflows
- Register for test season
- Form groups
- View schedules
- Test admin functions

---

## **FUTURE / NICE TO HAVE**

- Tournament bracket generation
- Free agent system (approach TBD)
- Additional reports (payment tracking, waitlist analytics)
- Bulk notification improvements
- Mobile app considerations

---

## **BLOCKERS**

### **Critical:**
- 🔴 **User Pruning Decision** - Board approval needed for migration

### **None Technical:**
- All features working
- Clean integration between Caleb/Andrew work
- No architectural issues

---

## **NOTES**

### **Testing Priority:**
Since ~50% of users access via mobile, mobile testing is critical before launch.

### **Migration Timeline:**
- January: Complete D11 development + testing
- February: Write migration scripts
- March-April: Test migration
- July: Dry run
- Early August: Execute migration
- Mid-August: New season starts

### **Reports:**
Can be added incrementally after launch. Not blocking MVP.

---

**End of TODO List**

See PROJECT_STATUS.md for detailed feature status.  
See SESSION_HANDOFF.md for recent session notes.  
See MIGRATION_STRATEGY.md for migration details.
