fix assessment import and exams draft
Deploy to Shared Hosting / Shared hosting deploy (push) Failing after 51s
Tests / PHPUnit (push) Failing after 1m26s

This commit is contained in:
root
2026-09-12 02:39:47 -04:00
parent 4b2dd4bdf8
commit ce504c933e
7 changed files with 1397 additions and 109 deletions
+27 -8
View File
@@ -4,6 +4,7 @@ namespace App\Controllers\View;
use CodeIgniter\Controller;
use CodeIgniter\Exceptions\PageNotFoundException;
use Config\Database;
class FilesController extends Controller
{
@@ -287,11 +288,20 @@ class FilesController extends Controller
private function buildDraftDownloadName(string $filename, string $subdir): string
{
$db = Database::connect();
$column = $subdir === 'finals' ? 'final_file' : $this->resolveExamDraftFileColumn($db);
$row = $db->table('exam_drafts ed')
$builder = $db->table('exam_drafts ed')
->select('ed.version, ed.exam_type, ed.class_section_id, cs.class_section_name')
->join('classSection cs', 'cs.class_section_id = ed.class_section_id', 'left')
->where('ed.' . $column, $filename)
->join('classSection cs', 'cs.class_section_id = ed.class_section_id', 'left');
if ($subdir === 'finals') {
$builder->groupStart()
->where('ed.final_file', $filename);
if ($db->fieldExists('final_pdf_file', 'exam_drafts')) {
$builder->orWhere('ed.final_pdf_file', $filename);
}
$builder->groupEnd();
} else {
$builder->where('ed.' . $this->resolveExamDraftFileColumn($db), $filename);
}
$row = $builder
->limit(1)
->get()
->getRowArray();
@@ -363,12 +373,21 @@ class FilesController extends Controller
}
$db = Database::connect();
$fileColumn = $subdir === 'finals' ? 'final_file' : $this->resolveExamDraftFileColumn($db);
$authorIdColumn = $this->resolveExamDraftAuthorIdColumn($db);
$draft = $db->table('exam_drafts ed')
->select('ed.class_section_id, ed.school_year, ed.semester, ed.status, ed.' . $authorIdColumn . ' AS draft_author_id')
->where('ed.' . $fileColumn, $filename)
$builder = $db->table('exam_drafts ed')
->select('ed.class_section_id, ed.school_year, ed.semester, ed.status, ed.' . $authorIdColumn . ' AS draft_author_id');
if ($subdir === 'finals') {
$builder->groupStart()
->where('ed.final_file', $filename);
if ($db->fieldExists('final_pdf_file', 'exam_drafts')) {
$builder->orWhere('ed.final_pdf_file', $filename);
}
$builder->groupEnd();
} else {
$builder->where('ed.' . $this->resolveExamDraftFileColumn($db), $filename);
}
$draft = $builder
->limit(1)
->get()
->getRowArray();