fix score submission, and class progress
This commit is contained in:
@@ -383,13 +383,18 @@ class ClassProgressController extends BaseController
|
||||
}
|
||||
}
|
||||
|
||||
$sundayOptions = $this->buildSundayOptions();
|
||||
if (!in_array($row['week_start'], $sundayOptions, true)) {
|
||||
array_unshift($sundayOptions, $row['week_start']);
|
||||
}
|
||||
|
||||
return view('teacher/class_progress_submit', [
|
||||
'subjectSections' => self::SUBJECT_SECTIONS,
|
||||
'subjectCurriculum' => $subjectCurriculum,
|
||||
'classSectionId' => $row['class_section_id'],
|
||||
'classSectionName' => $classSectionName,
|
||||
'classId' => $classId,
|
||||
'sundayOptions' => [$row['week_start']],
|
||||
'sundayOptions' => $sundayOptions,
|
||||
'defaultWeekStart' => $row['week_start'],
|
||||
'existingWeekEnd' => $row['week_end'],
|
||||
'existingReports' => $subjectReports,
|
||||
@@ -458,6 +463,32 @@ class ClassProgressController extends BaseController
|
||||
return redirect()->back()->withInput()->with('error', 'No class assignment found for this report.');
|
||||
}
|
||||
|
||||
$confirmOverwrite = (bool) $this->request->getPost('confirm_overwrite');
|
||||
if ($weekStart && $weekStart !== (string) ($row['week_start'] ?? '')) {
|
||||
$conflicts = $this->reportModel
|
||||
->select('id')
|
||||
->where('class_section_id', $classSectionId)
|
||||
->where('week_start', $weekStart)
|
||||
->where('teacher_id', $teacherId)
|
||||
->findAll();
|
||||
if (! $confirmOverwrite && ! empty($conflicts)) {
|
||||
return redirect()->back()
|
||||
->withInput()
|
||||
->with('warning', 'A progress report already exists for this week, are you sure you want to override it?')
|
||||
->with('confirm_overwrite', true);
|
||||
}
|
||||
if ($confirmOverwrite && ! empty($conflicts)) {
|
||||
$conflictIds = array_values(array_filter(array_map(
|
||||
static fn (array $row): int => (int) ($row['id'] ?? 0),
|
||||
$conflicts
|
||||
)));
|
||||
if (! empty($conflictIds)) {
|
||||
$this->attachmentModel->whereIn('report_id', $conflictIds)->delete();
|
||||
$this->reportModel->whereIn('id', $conflictIds)->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$weeklyReports = $this->reportModel
|
||||
->select('class_progress_reports.*')
|
||||
->whereIn('teacher_id', $allowedTeacherIds)
|
||||
|
||||
Reference in New Issue
Block a user