exam draft fix

This commit is contained in:
root
2026-04-11 15:33:12 -04:00
parent 89e95b7851
commit 7bc999643a
13 changed files with 582 additions and 180 deletions
+44
View File
@@ -4,6 +4,15 @@ namespace App\Models;
use CodeIgniter\Model;
/**
* Weekly class progress reports (one row per subject per week).
*
* unit_title stores a compact summary of unit/chapter rows: segments joined with " ; ".
* Teacher-entered custom Islamic or Quran topics use the prefix "Custom / {text}"
* (see {@see \App\Controllers\ClassProgressController::CUSTOM_UNIT_ROW_LABEL} and
* {@see \App\Controllers\ClassProgressController::splitUnitTitleForDisplay()}).
* DB column is VARCHAR(120); controller truncates to match.
*/
class ClassProgressReportModel extends Model
{
protected $table = 'class_progress_reports';
@@ -27,7 +36,42 @@ class ClassProgressReportModel extends Model
'flags_json',
'attachment_path',
];
protected $useTimestamps = true;
protected $createdField = 'created_at';
protected $updatedField = 'updated_at';
/**
* Validation is performed in {@see \App\Controllers\ClassProgressController} on HTTP input.
* Rules below document schema limits and can be enabled if you set {@see $skipValidation} to false.
*/
protected $skipValidation = true;
protected $validationRules = [
'class_section_id' => 'required|integer',
'teacher_id' => 'required|integer',
'week_start' => 'required|valid_date[Y-m-d]',
'week_end' => 'required|valid_date[Y-m-d]',
'subject' => 'required|string|max_length[160]',
'unit_title' => 'permit_empty|string|max_length[120]',
'covered' => 'permit_empty|string',
'homework' => 'permit_empty|string',
'assessment' => 'permit_empty|string',
'status' => 'permit_empty|in_list[on_track,slightly_behind,behind]',
'status_notes' => 'permit_empty|string|max_length[200]',
'class_notes' => 'permit_empty|string',
'next_week_plan' => 'permit_empty|string',
'support_needed' => 'permit_empty|string',
'flags_json' => 'permit_empty|string',
'attachment_path' => 'permit_empty|string|max_length[255]',
];
protected $validationMessages = [
'unit_title' => [
'max_length' => 'Unit and chapter summary cannot exceed 120 characters.',
],
'subject' => [
'max_length' => 'Subject cannot exceed 160 characters.',
],
];
}
+3 -3
View File
@@ -71,7 +71,7 @@ class TeacherClassModel extends Model
$builder = $this->db->table('teacher_class tc')
->select([
'cs.class_section_name',
'cs.id AS class_section_pk',
'cs.class_section_id AS class_section_pk',
'cs.class_section_id',
'c.id AS class_id',
'c.class_name',
@@ -181,10 +181,10 @@ class TeacherClassModel extends Model
{
$db = \Config\Database::connect();
// Adjust table/column names if yours differ (e.g., cs.id vs cs.class_section_id)
// Adjust table/column names if yours differ (e.g., cs.class_section_id vs cs.id)
$row = $db->table('classSection cs')
->select('u.id AS teacher_id, u.firstname, u.lastname')
->join('teacher_class tc', 'tc.class_section_id = cs.id', 'inner')
->join('teacher_class tc', 'tc.class_section_id = cs.class_section_id', 'inner')
->join('users u', 'u.id = tc.teacher_id', 'inner')
->where('cs.class_section_name', $classSectionName)
->where('tc.school_year', $schoolYear)