Commit d2162963 authored by Mahmoud Aglan's avatar Mahmoud Aglan

fix(sports): redesign assessment wizard — programs as expandable list with...

fix(sports): redesign assessment wizard — programs as expandable list with inline groups & centered modal

- Programs display as vertical list items with chevron toggle
- Clicking a program expands its groups panel directly beneath it
- Group creation opens a centered modal popup instead of inline section
- Fixed GroupQuickCreateApiController to return full group data (fees, coach, discipline)
- Groups render with progress bars and proper fee display after creation
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent e695c32c
...@@ -57,17 +57,35 @@ class GroupQuickCreateApiController extends Controller ...@@ -57,17 +57,35 @@ class GroupQuickCreateApiController extends Controller
'created_by' => $employee ? (int) $employee->id : null, 'created_by' => $employee ? (int) $employee->id : null,
]); ]);
$fullGroup = $db->selectOne(
"SELECT g.id, g.name_ar, g.code, g.current_count, g.max_capacity, g.is_full,
p.id as program_id, p.name_ar as program_name,
p.monthly_fee_member, p.monthly_fee_nonmember,
d.id as discipline_id, d.name_ar as discipline_name,
c.full_name_ar as coach_name
FROM sa_groups g
LEFT JOIN sa_programs p ON p.id = g.program_id
LEFT JOIN sa_disciplines d ON d.id = p.discipline_id
LEFT JOIN sa_coaches c ON c.id = g.coach_id
WHERE g.id = ?",
[$groupId]
);
return $this->json([ return $this->json([
'success' => true, 'success' => true,
'group' => [ 'group' => $fullGroup ?: [
'id' => $groupId, 'id' => $groupId,
'name_ar' => $nameAr, 'name_ar' => $nameAr,
'code' => $code, 'code' => $code,
'program_id' => $programId, 'program_id' => $programId,
'program_name' => $program['name_ar'], 'program_name' => $program['name_ar'],
'discipline_name' => $program['discipline_name'] ?? '', 'discipline_name' => $program['discipline_name'] ?? '',
'monthly_fee_member' => $program['monthly_fee_member'] ?? '0',
'monthly_fee_nonmember'=> $program['monthly_fee_nonmember'] ?? '0',
'coach_name' => null,
'max_capacity' => (int) ($program['max_capacity'] ?? 20), 'max_capacity' => (int) ($program['max_capacity'] ?? 20),
'current_count' => 0, 'current_count' => 0,
'is_full' => 0,
], ],
]); ]);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment