fix logs issues

This commit is contained in:
root
2026-04-18 11:44:02 -04:00
parent 5fc4d8be30
commit 35988e9ce1
10 changed files with 73 additions and 51 deletions
+29 -15
View File
@@ -182,7 +182,7 @@ class ExamDraftController extends BaseController
}
$classSectionId = (int) ($this->request->getPost('class_section_id') ?? session()->get('class_section_id') ?? 0);
$examType = trim((string) $this->request->getPost('exam_type'));
$examType = $this->normalizeExamType($this->request->getPost('exam_type'));
$authorComment = trim((string) $this->request->getPost('author_comment'));
if ($classSectionId <= 0) {
@@ -226,7 +226,11 @@ class ExamDraftController extends BaseController
->orderBy('version', 'DESC')
->first();
$title = $examType ?: 'Exam Draft';
if ($examType === '') {
return redirect()->back()->withInput()->with('error', 'Select an exam type before submitting.');
}
$title = $examType;
if ($saveAsDraft) {
if ($teacherFile === null && (empty($existingDraft) || empty($this->draftTeacherFile($existingDraft)))) {
@@ -235,7 +239,7 @@ class ExamDraftController extends BaseController
if (!empty($existingDraft) && strtolower((string) ($existingDraft['status'] ?? '')) === 'draft') {
$draftRowId = (int) ($existingDraft['id'] ?? 0);
$updateDraft = [
'exam_type' => $examType ?: null,
'exam_type' => $examType,
'draft_title' => $title,
'author_comment' => $authorComment === '' ? null : $authorComment,
'status' => 'draft',
@@ -263,7 +267,7 @@ class ExamDraftController extends BaseController
'class_section_id' => $classSectionId,
'semester' => $this->semester,
'school_year' => $this->schoolYear,
'exam_type' => $examType ?: null,
'exam_type' => $examType,
'draft_title' => $title,
'author_comment' => $authorComment === '' ? null : $authorComment,
'status' => 'draft',
@@ -280,9 +284,6 @@ class ExamDraftController extends BaseController
}
$existingStatus = strtolower((string) ($existingDraft['status'] ?? ''));
if ($examType === '') {
return redirect()->back()->withInput()->with('error', 'Select an exam type before submitting.');
}
if ($teacherFile === null) {
return redirect()->back()->withInput()->with('error', 'Upload a DOC/DOCX file to submit the exam draft.');
}
@@ -291,7 +292,7 @@ class ExamDraftController extends BaseController
if (!empty($existingDraft) && $existingStatus === 'submitted') {
$draftRowId = (int) ($existingDraft['id'] ?? 0);
$updateSubmit = [
'exam_type' => $examType ?: null,
'exam_type' => $examType,
'draft_title' => $title,
'author_comment' => $authorComment === '' ? null : $authorComment,
'status' => 'submitted',
@@ -322,7 +323,7 @@ class ExamDraftController extends BaseController
'class_section_id' => $classSectionId,
'semester' => $this->semester,
'school_year' => $this->schoolYear,
'exam_type' => $examType ?: null,
'exam_type' => $examType,
'draft_title' => $title,
'author_comment' => $authorComment === '' ? null : $authorComment,
'status' => 'submitted',
@@ -499,7 +500,7 @@ class ExamDraftController extends BaseController
$classSectionIds = array_values(array_filter(array_map('intval', $classSectionIds)));
$schoolYear = trim((string) ($this->request->getPost('school_year') ?? $this->schoolYear));
$semester = trim((string) ($this->request->getPost('semester') ?? $this->semester));
$examType = trim((string) $this->request->getPost('exam_type'));
$examType = $this->normalizeExamType($this->request->getPost('exam_type'));
if (empty($classSectionIds)) {
return redirect()->back()->withInput()->with('error', 'Select at least one class section.');
@@ -510,6 +511,9 @@ class ExamDraftController extends BaseController
if ($semester === '') {
return redirect()->back()->withInput()->with('error', 'Semester is required.');
}
if ($examType === '') {
return redirect()->back()->withInput()->with('error', 'Exam type is required.');
}
$file = $this->request->getFile('old_exam_file');
if (!$file || !$file->isValid()) {
@@ -534,8 +538,8 @@ class ExamDraftController extends BaseController
$this->authorIdColumn => $adminId, // store under admin user since legacy uploads are admin-only
'semester' => ucfirst(strtolower($semester)),
'school_year' => $schoolYear,
'exam_type' => $examType === '' ? null : $examType,
'draft_title' => $examType === '' ? 'Legacy Exam' : $examType,
'exam_type' => $examType,
'draft_title' => $examType,
'author_comment' => null,
'final_file' => $stored,
'final_filename' => $file->getClientName(),
@@ -646,13 +650,18 @@ class ExamDraftController extends BaseController
$baseVersion = 1;
}
$reviewRevision = $this->nextReviewRevision($draft, $baseVersion);
$reviewExamType = $this->normalizeExamType($draft['exam_type'] ?? $draft['draft_title'] ?? '');
if ($reviewExamType === '') {
return redirect()->back()->with('error', 'This draft is missing an exam type. Update the exam type before reviewing.');
}
$newRow = [
$this->authorIdColumn => $this->draftTeacherId($draft),
'class_section_id' => (int) ($draft['class_section_id'] ?? 0),
'semester' => (string) ($draft['semester'] ?? ''),
'school_year' => (string) ($draft['school_year'] ?? ''),
'exam_type' => $draft['exam_type'] ?? null,
'draft_title' => $draft['draft_title'] ?? $draft['exam_type'] ?? 'Exam Draft',
'exam_type' => $reviewExamType,
'draft_title' => $draft['draft_title'] ?? $reviewExamType,
'author_comment' => $draft['author_comment'] ?? null,
'status' => $status,
'reviewed_at' => $update['reviewed_at'],
@@ -1309,7 +1318,7 @@ class ExamDraftController extends BaseController
// Attempt conversion via LibreOffice if available
$cmd = 'soffice --headless --convert-to pdf --outdir ' . escapeshellarg($targetDir) . ' ' . escapeshellarg($sourcePath) . ' 2>/dev/null';
@exec($cmd);
@\exec($cmd);
return is_file($targetPath) ? basename($targetPath) : null;
}
@@ -1358,6 +1367,11 @@ class ExamDraftController extends BaseController
);
}
private function normalizeExamType($value): string
{
return trim((string) $value);
}
private function copyDraftToFinal(string $draftFilename): ?string
{
$source = $this->fullUploadPath(self::TEACHER_UPLOAD_DIR, $draftFilename);