ADD SCHOOL YEAR MANAGEMENT
Tests / PHPUnit (push) Failing after 40s

This commit is contained in:
root
2026-07-12 02:21:39 -04:00
parent c7f67da9bf
commit e06ccc9cc0
36 changed files with 6722 additions and 327 deletions
+1
View File
@@ -31,6 +31,7 @@ class Filters extends BaseConfig
'cleanupScheduler' => \App\Filters\CleanupScheduler::class,
'permission' => \App\Filters\PermissionFilter::class,
'timezone' => \App\Filters\TimezoneFilter::class,
'schoolYear' => \App\Filters\RequireSchoolYearFilter::class,
];
+16
View File
@@ -1132,6 +1132,22 @@ $routes->post('/configuration/addConfig', 'View\ConfigurationController::addConf
$routes->match(['get', 'post'], '/configuration/editConfig/(:num)', 'View\ConfigurationController::editConfig/$1');
$routes->post('/configuration/deleteConfig/(:num)', 'View\ConfigurationController::deleteConfig/$1');
// School-year management
$routes->group('administrator/school-years', ['filter' => 'auth:admin'], static function ($routes) {
$routes->get('', 'Administrator\SchoolYearController::index');
$routes->post('store', 'Administrator\SchoolYearController::store');
$routes->post('(:num)/update', 'Administrator\SchoolYearController::update/$1');
$routes->post('(:num)/activate', 'Administrator\SchoolYearController::activate/$1');
$routes->post('(:num)/delete-draft', 'Administrator\SchoolYearController::deleteDraft/$1');
$routes->post('(:num)/archive', 'Administrator\SchoolYearController::archive/$1');
$routes->post('(:num)/reopen', 'Administrator\SchoolYearController::reopen/$1');
$routes->get('(:num)/closing/preview', 'Administrator\SchoolYearClosingController::preview/$1');
$routes->post('(:num)/closing/start', 'Administrator\SchoolYearClosingController::start/$1');
$routes->post('(:num)/closing/execute', 'Administrator\SchoolYearClosingController::execute/$1');
$routes->post('(:num)/closing/complete', 'Administrator\SchoolYearClosingController::complete/$1');
$routes->post('(:num)/closing/cancel', 'Administrator\SchoolYearClosingController::cancel/$1');
});
// Route for Attendance Comment Templates
$routes->get('/administrator/attendance-templates', 'View\AttendanceCommentTemplateController::index');
$routes->get('/api/attendance-templates', 'View\AttendanceCommentTemplateController::listData');
+62
View File
@@ -180,4 +180,66 @@ class Services extends BaseService
$http = static::curlrequest($options);
return new \App\Services\ApiClient($http, $apiConfig);
}
public static function schoolYearContext(bool $getShared = true): \App\Services\SchoolYearContextService
{
if ($getShared) {
return static::getSharedInstance('schoolYearContext');
}
return new \App\Services\SchoolYearContextService(
model(\App\Models\SchoolYearModel::class)
);
}
public static function schoolYearWriteGuard(bool $getShared = true): \App\Services\SchoolYearWriteGuard
{
if ($getShared) {
return static::getSharedInstance('schoolYearWriteGuard');
}
return new \App\Services\SchoolYearWriteGuard();
}
public static function schoolYearValidation(bool $getShared = true): \App\Services\SchoolYearValidationService
{
if ($getShared) {
return static::getSharedInstance('schoolYearValidation');
}
return new \App\Services\SchoolYearValidationService(
model(\App\Models\SchoolYearModel::class)
);
}
public static function schoolYearManagement(bool $getShared = true): \App\Services\SchoolYearManagementService
{
if ($getShared) {
return static::getSharedInstance('schoolYearManagement');
}
return new \App\Services\SchoolYearManagementService(
model(\App\Models\SchoolYearModel::class),
model(\App\Models\ConfigurationModel::class),
model(\App\Models\SchoolYearTransitionLogModel::class),
model(\App\Models\SchoolYearClosingBatchModel::class),
static::schoolYearValidation(),
\Config\Database::connect()
);
}
public static function schoolYearClosing(bool $getShared = true): \App\Services\SchoolYearClosingService
{
if ($getShared) {
return static::getSharedInstance('schoolYearClosing');
}
return new \App\Services\SchoolYearClosingService(
model(\App\Models\SchoolYearModel::class),
model(\App\Models\SchoolYearClosingBatchModel::class),
model(\App\Models\SchoolYearClosingItemModel::class),
static::schoolYearManagement(),
\Config\Database::connect()
);
}
}