Select Git revision
studip_controller.php
Forked from
Stud.IP / Stud.IP
Source project has a limited visibility.
-
Closes #1338 Merge request studip/studip!826
Closes #1338 Merge request studip/studip!826
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Semester.php 15.99 KiB
<?php
/**
* Semester.php
* model class for table semester_data
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* @author André Noack <noack@data-quest.de>
* @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
* @category Stud.IP
*
* @property string $id alias column for semester_id
* @property string $semester_id database column
* @property I18NString $name database column
* @property I18NString $semester_token database column
* @property I18NString $token alias column for semester_token
* @property int|null $beginn database column
* @property int|null $ende database column
* @property int|null $sem_wechsel database column
* @property int|null $vorles_beginn database column
* @property int|null $vorles_ende database column
* @property int $visible database column
* @property string|null $external_id database column
* @property int|null $mkdate database column
* @property int|null $chdate database column
* @property-read mixed $first_sem_week additional field
* @property-read mixed $last_sem_week additional field
* @property-read mixed $current additional field
* @property-read mixed $past additional field
* @property-read mixed $short_name additional field
* @property mixed $absolute_seminars_count additional field
* @property mixed $continuous_seminars_count additional field
*/
class Semester extends SimpleORMap
{
/**
* Configures this model.
*
* @param array $config
*/
protected static function configure($config = [])
{
$config['db_table'] = 'semester_data';
$config['additional_fields']['first_sem_week']['get'] = 'getFirstSemesterWeek';
$config['additional_fields']['last_sem_week']['get'] = 'getLastSemesterWeek';
$config['additional_fields']['current']['get'] = 'isCurrent';
$config['additional_fields']['past']['get'] = 'isPast';
$config['additional_fields']['short_name']['get'] = function($semester) {
return (string) $semester->semester_token ?: (string) $semester->name;
};
$config['additional_fields']['absolute_seminars_count'] = [
'get' => 'seminarCounter',
];
$config['additional_fields']['continuous_seminars_count'] = [
'get' => 'seminarCounter',
];
$config['alias_fields']['token'] = 'semester_token';
$config['registered_callbacks']['after_store'][] = 'refreshCache';
$config['registered_callbacks']['after_delete'][] = 'refreshCache';
$config['i18n_fields']['name'] = true;
$config['i18n_fields']['semester_token'] = true;