• Mahmoud Aglan's avatar
    fix(attendance): stop the roster moving under the coach's finger · 7af211fc
    Mahmoud Aglan authored
    Taking attendance re-sorted the list by status on every render, so the
    moment a coach marked someone the row jumped somewhere else and everyone
    below it shifted. Coaches lost their place, could not tell who was already
    handled, and recorded the same player several times.
    
    The roster is now ordered by name with the record id as a tie-break —
    never by anything the coach can change from this screen — so the list
    holds still. Marking a player takes them out of the working list entirely
    and into a collapsed "تم تسجيلهم" section, grouped by status with counts,
    where the decision can be reviewed or changed. A confirmation toast names
    the player and the status that was saved, and a progress card shows how
    many are left.
    
    Also here:
    - markAs/markPresent/saveRecordNote now resolve the record within this
      session instead of by bare id, and reject statuses outside the four the
      screen offers
    - service calls are wrapped in try/catch, so a blocked medical certificate
      shows an Arabic message instead of an error page
    - the polymorphic subject relation is eager-loaded with morphWith (was an
      N+1 on every player row)
    - one responsive card list replaces the duplicated mobile/desktop markup;
      targets are ≥36px, the progress bar carries progressbar semantics and
      the toast is an aria-live region
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    7af211fc
Name
Last commit
Last update
..
activities Loading commit data...
admin Loading commit data...
assignments Loading commit data...
attendance Loading commit data...
audit Loading commit data...
auth Loading commit data...
branches Loading commit data...
cash-sessions Loading commit data...
components Loading commit data...
dashboard Loading commit data...
documents Loading commit data...
enrollments Loading commit data...
evaluations Loading commit data...
events Loading commit data...
facilities Loading commit data...
financial Loading commit data...
groups Loading commit data...
guardian Loading commit data...
hr Loading commit data...
inventory Loading commit data...
invoices Loading commit data...
messaging Loading commit data...
notifications Loading commit data...
parent Loading commit data...
participants Loading commit data...
people Loading commit data...
pos Loading commit data...
pricing Loading commit data...
profile Loading commit data...
programs Loading commit data...
public Loading commit data...
receptionist Loading commit data...
reports Loading commit data...
roles Loading commit data...
schedule Loading commit data...
settings Loading commit data...
trainer Loading commit data...
training Loading commit data...
users Loading commit data...
wallets Loading commit data...
website Loading commit data...
whatsapp Loading commit data...
wizards Loading commit data...
branch-switcher.blade.php Loading commit data...
dashboard.blade.php Loading commit data...
global-search.blade.php Loading commit data...