1. 08 Aug, 2026 9 commits
  2. 06 Aug, 2026 4 commits
  3. 05 Aug, 2026 2 commits
    • Mahmoud Aglan's avatar
      fix(sports): UX bugs from real-user testing · de0b8968
      Mahmoud Aglan authored
      - Institution validation redirects back to /create instead of /index
      - Add sport_type field to discipline create/edit forms (was in model but missing from views)
      - Add schedule copy + time shift UI panels to daily schedule page
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      de0b8968
    • Mahmoud Aglan's avatar
      feat(sports): implement full sports module enhancement (Phases 0-10) · b6b61bdb
      Mahmoud Aglan authored
      - Phase 0: Schema — training attendance, makeup sessions, institutions tables + sport_type on disciplines
      - Phase 1: Player lifecycle — pause/resume months, medical grace enforcement with auto-suspend cron
      - Phase 2: Medical grace integration — grace deadline on enrollment, extend grace endpoint
      - Phase 3: Training attendance — group-session-based system (separate from booking-based sa_attendance)
      - Phase 4: Make-up sessions — create from absence, schedule, complete, auto-expire cron
      - Phase 5: Institution management — full CRUD with booking linkage and contract tracking
      - Phase 6: Subscription renewal — medical verification flag on auto-generated subscriptions
      - Phase 7: Treasury auto-sync — already existed via SaEventListenerService (verified)
      - Phase 8: Recreational differentiation — sport_type enum on disciplines (training/recreational)
      - Phase 9: Dashboard — added medical grace expiry + makeup session alerts
      - Phase 10: Schedule copy — copy between groups, shift times, program-wide schedule propagation
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      b6b61bdb
  4. 28 Jul, 2026 21 commits
  5. 27 Jul, 2026 4 commits
    • Fares's avatar
      feat(sa): extend facility grid system to all facility types · 26eb4204
      Fares authored
      The zone grid was previously restricted to pool-type facilities only.
      Now any facility can have a grid configured (rows × cols, max 25 each)
      via the create/edit forms. Facilities with grid dimensions get the
      visual grid manager; those without keep the unit-based mirror view.
      
      Changes:
      - Remove facility_type='pool' filter from PoolGridService::getFacility
      - MirrorController routes by grid dimensions instead of facility type
      - Facility create/edit forms now include grid rows/cols fields
      - FacilityController store/update save grid dimensions
      - Facility model fillable updated with grid columns
      - Grid size limit increased from 20 to 25
      - Facility show page adds "الشبكة" button when grid is configured
      - MirrorStateService and SlotAvailabilityService check grid dims
        instead of facility_type for zone booking cross-checks
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      26eb4204
    • Fares's avatar
      fix(sa): improve group player search with status info and treasury button · 858cd3f6
      Fares authored
      - Player search now shows type (member/non-member), medical status, and
        serial number in dropdown results for accurate identification
      - Group player table adds columns for player type and medical status
      - Pending payment players now show a "الخزينة" button linking to cashier
      - Enrollment form stays visible when group is full (uses force-enroll)
      - SearchableSelect prioritizes label field for richer display text
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      858cd3f6
    • Fares's avatar
      fix(swimming): show accurate member/non-member pricing on assignment page · 8d0f495b
      Fares authored
      Display both fee tiers on each group card with the applicable one highlighted
      based on the player's registration type, preventing pricing confusion.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      8d0f495b
    • Fares's avatar
      feat(swimming): add discipline dropdown filter to player assignment page · 2b19960d
      Fares authored
      The assignment page now shows a dropdown to select which sport's programs/groups
      to display. Defaults to Swimming but allows switching to any active discipline.
      Groups are filtered by the selected discipline and show their program names.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      2b19960d