ILIAS  release_8 Revision v8.24
ilStudyProgrammeUserTable Class Reference

ilStudyProgrammeUserTable provides a flattened list of progresses at a programme-node. More...

+ Collaboration diagram for ilStudyProgrammeUserTable:

Public Member Functions

 __construct (ilDBInterface $db, ilExportFieldsInfo $export_fields_info, ilPRGAssignmentDBRepository $assignment_repo, ilLanguage $lng, ilPRGPermissionsHelper $permissions)
 
 getColumns (int $prg_id, bool $add_active_column=false)
 
 countFetchData (int $prg_id, ?array $valid_user_ids, ilPRGAssignmentFilter $custom_filters)
 
 fetchData (int $prg_id, ?array $valid_user_ids, Order $order, ilPRGAssignmentFilter $custom_filters=null, int $limit=null, int $offset=null)
 
 fetchSingleUserRootAssignments (int $usr_id)
 
 disablePermissionCheck ($flag=false)
 
 statusToRepresent ($a_status)
 
 boolToRepresent (bool $value)
 
 validToRepresent (ilPRGProgress $pgs)
 
 activeToRepresent (bool $value)
 
 assignmentSourceToRepresent (bool $manually, int $assignment_src)
 
 completionByToRepresent (ilPRGProgress $progress)
 

Static Public Member Functions

static lookupTitle (int $obj_id)
 

Data Fields

const OPTION_ALL = -1
 
const VALIDITY_OPTION_VALID = 1
 
const VALIDITY_OPTION_INVALID = 3
 
const OPTION_USR_ACTIVE = 1
 
const OPTION_USR_INACTIVE = 2
 
const PRG_COLS
 

Protected Member Functions

 getUserDataColumns (int $prg_id)
 
 getPrgColumns ()
 
 includeLearningProgress (int $usr_id)
 
 toRow (ilPRGAssignment $ass, int $node_id)
 
 getUserDateFormat ()
 
 completionByToCollection (ilPRGProgress $progress)
 
 postOrder (array $list, \ILIAS\Data\Order $order)
 

Protected Attributes

ilDBInterface $db
 
ilExportFieldsInfo $export_fields_info
 
ilLanguage $lng
 
ilPRGPermissionsHelper $permissions
 
array $user_ids_viewer_may_read_learning_progress_of
 
ilPRGAssignmentDBRepository $assignment_repo
 
 $skip_perm_check_on_user = false
 

Private Attributes

const ORDER_MAPPING
 

Detailed Description

ilStudyProgrammeUserTable provides a flattened list of progresses at a programme-node.

Definition at line 26 of file class.ilStudyProgrammeUserTable.php.

Constructor & Destructor Documentation

◆ __construct()

ilStudyProgrammeUserTable::__construct ( ilDBInterface  $db,
ilExportFieldsInfo  $export_fields_info,
ilPRGAssignmentDBRepository  $assignment_repo,
ilLanguage  $lng,
ilPRGPermissionsHelper  $permissions 
)

Definition at line 75 of file class.ilStudyProgrammeUserTable.php.

81 {
82 $this->db = $db;
83 $this->export_fields_info = $export_fields_info;
84 $this->assignment_repo = $assignment_repo;
85 $this->lng = $lng;
86 $this->permissions = $permissions;
87 $this->user_ids_viewer_may_read_learning_progress_of = $this->permissions->getUserIdsSusceptibleTo(
89 );
90
91 $this->lng->loadLanguageModule("prg");
92 }
getUserIdsSusceptibleTo(string $operation)
ilPRGAssignmentDBRepository $assignment_repo

References $assignment_repo, $db, $export_fields_info, $lng, $permissions, ilPRGPermissionsHelper\getUserIdsSusceptibleTo(), ILIAS\Repository\lng(), and ilOrgUnitOperation\OP_READ_LEARNING_PROGRESS.

+ Here is the call graph for this function:

Member Function Documentation

◆ activeToRepresent()

ilStudyProgrammeUserTable::activeToRepresent ( bool  $value)

Definition at line 283 of file class.ilStudyProgrammeUserTable.php.

283 : string
284 {
285 return $value ? $this->lng->txt('active') : $this->lng->txt('inactive');
286 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ assignmentSourceToRepresent()

ilStudyProgrammeUserTable::assignmentSourceToRepresent ( bool  $manually,
int  $assignment_src 
)

Definition at line 288 of file class.ilStudyProgrammeUserTable.php.

288 : string
289 {
291 if ($manually || ! in_array($assignment_src, $srcs)) {
292 return $this::lookupTitle($assignment_src);
293 }
294 return implode(' ', [
295 $this->lng->txt('prg_autoassignment'),
296 $this->lng->txt($srcs[$assignment_src])
297 ]);
298 }

References ILIAS\Repository\lng(), and ilStudyProgrammeAutoMembershipSource\SOURCE_MAPPING.

+ Here is the call graph for this function:

◆ boolToRepresent()

ilStudyProgrammeUserTable::boolToRepresent ( bool  $value)

Definition at line 270 of file class.ilStudyProgrammeUserTable.php.

270 : string
271 {
272 return ($value) ? $this->lng->txt("yes") : $this->lng->txt("no");
273 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ completionByToCollection()

ilStudyProgrammeUserTable::completionByToCollection ( ilPRGProgress  $progress)
protected

Definition at line 315 of file class.ilStudyProgrammeUserTable.php.

315 : array
316 {
317 $completion_by = $progress->getCompletionBy();
318 if ($completion_by !== ilPRGProgress::COMPLETED_BY_SUBNODES) {
319 return [$completion_by];
320 }
321 $successful_subnodes = array_filter(
322 $progress->getSubnodes(),
323 static fn (ilPRGProgress $pgs): bool => $pgs->isSuccessful()
324 );
325 return array_map(
326 static fn (ilPRGProgress $pgs): int => $pgs->getNodeId(),
327 $successful_subnodes
328 );
329 }
A Progress is the status of a user on a single node of an assignment; it is unique by assignment_id:u...

References ilPRGProgress\COMPLETED_BY_SUBNODES, ilPRGProgress\getCompletionBy(), ilPRGProgress\getNodeId(), ILIAS\StudyProgramme\Assignment\Node\getSubnodes(), and ilPRGProgress\isSuccessful().

+ Here is the call graph for this function:

◆ completionByToRepresent()

ilStudyProgrammeUserTable::completionByToRepresent ( ilPRGProgress  $progress)

Definition at line 300 of file class.ilStudyProgrammeUserTable.php.

300 : string
301 {
302 $completion_by = $progress->getCompletionBy();
303 if ($completion_by !== ilPRGProgress::COMPLETED_BY_SUBNODES) {
304 return $this::lookupTitle($completion_by);
305 }
306
307 $out = array_map(
308 fn (int $node_obj_id): string => self::lookupTitle($node_obj_id),
309 $this->completionByToCollection($progress)
310 );
311
312 return implode(', ', $out);
313 }
$out
Definition: buildRTE.php:24
completionByToCollection(ilPRGProgress $progress)

References $out, ilPRGProgress\COMPLETED_BY_SUBNODES, and ilPRGProgress\getCompletionBy().

+ Here is the call graph for this function:

◆ countFetchData()

ilStudyProgrammeUserTable::countFetchData ( int  $prg_id,
?array  $valid_user_ids,
ilPRGAssignmentFilter  $custom_filters 
)

Definition at line 128 of file class.ilStudyProgrammeUserTable.php.

128 : int
129 {
130 return $this->assignment_repo->countAllForNodeIsContained($prg_id, $valid_user_ids, $custom_filters);
131 }

◆ disablePermissionCheck()

ilStudyProgrammeUserTable::disablePermissionCheck (   $flag = false)

Definition at line 168 of file class.ilStudyProgrammeUserTable.php.

168 : void
169 {
170 $this->skip_perm_check_on_user = $flag;
171 }

◆ fetchData()

ilStudyProgrammeUserTable::fetchData ( int  $prg_id,
?array  $valid_user_ids,
Order  $order,
ilPRGAssignmentFilter  $custom_filters = null,
int  $limit = null,
int  $offset = null 
)
Returns
ilStudyProgrammeUserTableRow[]
Exceptions
ilException

Definition at line 137 of file class.ilStudyProgrammeUserTable.php.

144 : array {
145 $data = $this->assignment_repo->getAllForNodeIsContained(
146 $prg_id,
147 $valid_user_ids,
148 $custom_filters
149 );
150 $rows = array_map(fn ($ass) => $this->toRow($ass, $prg_id), $data);
151 $rows = $this->postOrder($rows, $order);
152 if ($limit) {
153 $offset = $offset ?? 0;
154 $rows = array_slice($rows, $offset, $limit);
155 }
156 return $rows;
157 }
postOrder(array $list, \ILIAS\Data\Order $order)
toRow(ilPRGAssignment $ass, int $node_id)
$rows
Definition: xhr_table.php:10

◆ fetchSingleUserRootAssignments()

ilStudyProgrammeUserTable::fetchSingleUserRootAssignments ( int  $usr_id)

Definition at line 159 of file class.ilStudyProgrammeUserTable.php.

159 : array
160 {
161 $data = $this->assignment_repo->getForUser($usr_id);
162 $row = array_map(fn ($ass) => $this->toRow($ass, $ass->getRootId()), $data);
163 return $row;
164 }

References $data.

◆ getColumns()

ilStudyProgrammeUserTable::getColumns ( int  $prg_id,
bool  $add_active_column = false 
)

Definition at line 114 of file class.ilStudyProgrammeUserTable.php.

114 : array
115 {
116 $columns = array_merge(
117 $this->getPrgColumns(),
118 $this->getUserDataColumns($prg_id)
119 );
120
121 if ($add_active_column) {
122 $columns["active"] = ["active", $this->lng->txt("active"), true, true, true];
123 }
124 return $columns;
125 }

References getPrgColumns(), getUserDataColumns(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getPrgColumns()

ilStudyProgrammeUserTable::getPrgColumns ( )
protected

Definition at line 104 of file class.ilStudyProgrammeUserTable.php.

104 : array
105 {
106 $cols = [];
107 foreach (self::PRG_COLS as $k) {
108 $k[1] = $this->lng->txt($k[1]);
109 $cols[$k[0]] = $k;
110 }
111 return $cols;
112 }
$cols
Definition: xhr_table.php:11

References $cols, and ILIAS\Repository\lng().

Referenced by getColumns().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUserDataColumns()

ilStudyProgrammeUserTable::getUserDataColumns ( int  $prg_id)
protected

Definition at line 94 of file class.ilStudyProgrammeUserTable.php.

94 : array
95 {
96 $cols = [];
97 $user_data_cols = $this->export_fields_info->getSelectableFieldsInfo($prg_id);
98 foreach ($user_data_cols as $k => $column_definition) {
99 $cols[$k] = [$k, $column_definition['txt'], true, true, true];
100 }
101 return $cols;
102 }

References $cols.

Referenced by getColumns().

+ Here is the caller graph for this function:

◆ getUserDateFormat()

ilStudyProgrammeUserTable::getUserDateFormat ( )
protected

Definition at line 242 of file class.ilStudyProgrammeUserTable.php.

242 : string
243 {
244 return ilCalendarUtil::getUserDateFormat(0, true);
245 }
static getUserDateFormat(int $a_add_time=0, bool $a_for_parsing=false)
Parse current user setting into date/time format.

References ilCalendarUtil\getUserDateFormat().

+ Here is the call graph for this function:

◆ includeLearningProgress()

ilStudyProgrammeUserTable::includeLearningProgress ( int  $usr_id)
protected

Definition at line 173 of file class.ilStudyProgrammeUserTable.php.

173 : bool
174 {
175 return
176 in_array($usr_id, $this->user_ids_viewer_may_read_learning_progress_of)
178 }

◆ lookupTitle()

static ilStudyProgrammeUserTable::lookupTitle ( int  $obj_id)
static

Definition at line 331 of file class.ilStudyProgrammeUserTable.php.

331 : string
332 {
333 $type = ilObject::_lookupType($obj_id);
334 switch ($type) {
335 case 'usr':
336 case 'prg':
337 return ilObject::_lookupTitle($obj_id);
338 case 'prg':
339 $title = ilObject::_lookupTitle($obj_id);
341 return sprintf('(%s)', $title);
342 }
343 return $title;
344 case 'crs':
345 $title = ilObject::_lookupTitle($obj_id);
346 $refs = ilObject::_getAllReferences($obj_id);
347 $target_ref_id = array_shift($refs) ?? null;
348 if($target_ref_id === null || ilObject::_isInTrash($target_ref_id)) {
349 return sprintf('(%s)', $title);
350 }
351 return $title;
352 }
353
354 if ($del = ilObjectDataDeletionLog::get($obj_id)) {
355 return sprintf('(%s)', $del['title']);
356 }
357 return 'object id ' . $obj_id;
358 }
static getRefIdFor(int $obj_id)
static _lookupType(int $id, bool $reference=false)
static _getAllReferences(int $id)
get all reference ids for object ID
static _isInTrash(int $ref_id)
static _lookupTitle(int $obj_id)
$type

References $type, ilObject\_getAllReferences(), ilObject\_isInTrash(), ilObject\_lookupTitle(), ilObject\_lookupType(), ilObjectDataDeletionLog\get(), and ilObjStudyProgramme\getRefIdFor().

Referenced by ilStudyProgrammeIndividualPlanTableGUI\fetchData(), and ilStudyProgrammeMembersTableGUI\fillRow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ postOrder()

ilStudyProgrammeUserTable::postOrder ( array  $list,
\ILIAS\Data\Order  $order 
)
protected

Definition at line 360 of file class.ilStudyProgrammeUserTable.php.

360 : array
361 {
362 [$aspect, $direction] = $order->join('', function ($i, $k, $v) {
363 return [$k, $v];
364 });
365
366 if (array_key_exists($aspect, self::ORDER_MAPPING)) {
367 $aspect = self::ORDER_MAPPING[$aspect];
368 }
369
370 usort($list, static function (ilStudyProgrammeUserTableRow $a, ilStudyProgrammeUserTableRow $b) use ($aspect): int {
371 $a = $a->toArray();
372 $b = $b->toArray();
373
374 if (is_numeric($a[$aspect])) {
375 return $a[$aspect] <=> $b[$aspect];
376 }
377 return strcmp($a[$aspect], $b[$aspect]);
378 });
379
380 if ($direction === $order::DESC) {
381 $list = array_reverse($list);
382 }
383 return $list;
384 }
ilStudyProgrammeUserTable provides a flattened list of progresses at a programme-node.
$i
Definition: metadata.php:41
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples

References Vendor\Package\$a, Vendor\Package\$b, and $i.

◆ statusToRepresent()

ilStudyProgrammeUserTable::statusToRepresent (   $a_status)
Exceptions
ilException

Definition at line 250 of file class.ilStudyProgrammeUserTable.php.

250 : string
251 {
252 if ($a_status == ilPRGProgress::STATUS_IN_PROGRESS) {
253 return $this->lng->txt("prg_status_in_progress");
254 }
255 if ($a_status == ilPRGProgress::STATUS_COMPLETED) {
256 return $this->lng->txt("prg_status_completed");
257 }
258 if ($a_status == ilPRGProgress::STATUS_ACCREDITED) {
259 return $this->lng->txt("prg_status_accredited");
260 }
261 if ($a_status == ilPRGProgress::STATUS_NOT_RELEVANT) {
262 return $this->lng->txt("prg_status_not_relevant");
263 }
264 if ($a_status == ilPRGProgress::STATUS_FAILED) {
265 return $this->lng->txt("prg_status_failed");
266 }
267 throw new ilException("Unknown status: '$a_status'");
268 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References ILIAS\Repository\lng(), ilPRGProgress\STATUS_ACCREDITED, ilPRGProgress\STATUS_COMPLETED, ilPRGProgress\STATUS_FAILED, ilPRGProgress\STATUS_IN_PROGRESS, and ilPRGProgress\STATUS_NOT_RELEVANT.

+ Here is the call graph for this function:

◆ toRow()

ilStudyProgrammeUserTable::toRow ( ilPRGAssignment  $ass,
int  $node_id 
)
protected

Definition at line 180 of file class.ilStudyProgrammeUserTable.php.

181 {
182 $pgs = $ass->getProgressForNode($node_id);
184 $ass->getId(),
185 $ass->getUserId(),
186 $node_id,
187 $ass->getRootId() === $node_id
188 );
189
190 $show_lp = $this->includeLearningProgress($ass->getUserId());
191
192 $prg_node = ilObjStudyProgramme::getInstanceByObjId($node_id);
193 $points_reachable = (string) $pgs->getPossiblePointsOfRelevantChildren();
194 if ($prg_node->getLPMode() === ilStudyProgrammeSettings::MODE_LP_COMPLETED) {
195 $points_reachable = (string) $pgs->getAmountOfPoints();
196 }
197
198 $row = $row
199 ->withUserActiveRaw($ass->getUserInformation()->isActive())
200 ->withUserActive($this->activeToRepresent($ass->getUserInformation()->isActive()))
201 ->withFirstname($ass->getUserInformation()->getFirstname())
202 ->withLastname($ass->getUserInformation()->getLastname())
203 ->withLogin($ass->getUserInformation()->getLogin())
204 ->withOrgUs($ass->getUserInformation()->getOrguRepresentation())
205 ->withUDF($ass->getUserInformation()->getAllUdf())
206 ->withGender($this->lng->txt('gender_' . $ass->getUserInformation()->getUdf('gender')))
207 ->withStatus($show_lp ? $this->statusToRepresent($pgs->getStatus()) : '')
208 ->withStatusRaw($pgs->getStatus())
209 ->withCompletionDate(
210 $show_lp && $pgs->getCompletionDate() ? $pgs->getCompletionDate()->format($this->getUserDateFormat()) : ''
211 )
212 ->withCompletionBy(
213 $show_lp && $pgs->getCompletionBy() ? $this->completionByToRepresent($pgs) : ''
214 )
215 ->withCompletionByObjIds(
216 $show_lp && $pgs->getCompletionBy() ? $this->completionByToCollection($pgs) : null
217 )
218 ->withPointsReachable($points_reachable)
219 ->withPointsRequired((string) $pgs->getAmountOfPoints())
220 ->withPointsCurrent($show_lp ? (string) $pgs->getCurrentAmountOfPoints() : '')
221 ->withCustomPlan($this->boolToRepresent($pgs->hasIndividualModifications()))
222 ->withBelongsTo($this::lookupTitle($ass->getRootId()))
223 ->withAssignmentDate($pgs->getAssignmentDate()->format($this->getUserDateFormat()))
224 ->withAssignmentBy(
226 $ass->isManuallyAssigned(),
227 $ass->getLastChangeBy()
228 )
229 )
230 ->withDeadline(
231 $show_lp && $pgs->getDeadline() && !$pgs->isSuccessful() ? $pgs->getDeadline()->format($this->getUserDateFormat()) : ''
232 )
233 ->withExpiryDate(
234 $show_lp && $pgs->getValidityOfQualification() ? $pgs->getValidityOfQualification()->format($this->getUserDateFormat()) : ''
235 )
236 ->withValidity($show_lp ? $this->validToRepresent($pgs) : '')
237 ->withRestartDate($ass->getRestartDate() ? $ass->getRestartDate()->format($this->getUserDateFormat()) : '')
238 ;
239 return $row;
240 }
static getInstanceByObjId(int $obj_id)
getProgressForNode(int $node_id)
completionByToRepresent(ilPRGProgress $progress)
assignmentSourceToRepresent(bool $manually, int $assignment_src)

References ilPRGAssignment\getId(), ilObjStudyProgramme\getInstanceByObjId(), ilPRGAssignment\getLastChangeBy(), ilPRGAssignment\getProgressForNode(), ilPRGAssignment\getRestartDate(), ilPRGAssignment\getRootId(), ilPRGAssignment\getUserId(), ilPRGAssignment\getUserInformation(), ilPRGAssignment\isManuallyAssigned(), ILIAS\Repository\lng(), and ilStudyProgrammeSettings\MODE_LP_COMPLETED.

+ Here is the call graph for this function:

◆ validToRepresent()

ilStudyProgrammeUserTable::validToRepresent ( ilPRGProgress  $pgs)

Definition at line 275 of file class.ilStudyProgrammeUserTable.php.

275 : string
276 {
277 if (!$pgs->isSuccessful()) {
278 return '-';
279 }
280 return $pgs->isInvalidated() ? $this->lng->txt("prg_not_valid") : $this->lng->txt("prg_still_valid");
281 }

References ilPRGProgress\isInvalidated(), ilPRGProgress\isSuccessful(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

Field Documentation

◆ $assignment_repo

ilPRGAssignmentDBRepository ilStudyProgrammeUserTable::$assignment_repo
protected

Definition at line 73 of file class.ilStudyProgrammeUserTable.php.

Referenced by __construct().

◆ $db

ilDBInterface ilStudyProgrammeUserTable::$db
protected

Definition at line 68 of file class.ilStudyProgrammeUserTable.php.

Referenced by __construct().

◆ $export_fields_info

ilExportFieldsInfo ilStudyProgrammeUserTable::$export_fields_info
protected

Definition at line 69 of file class.ilStudyProgrammeUserTable.php.

Referenced by __construct().

◆ $lng

ilLanguage ilStudyProgrammeUserTable::$lng
protected

Definition at line 70 of file class.ilStudyProgrammeUserTable.php.

Referenced by __construct().

◆ $permissions

ilPRGPermissionsHelper ilStudyProgrammeUserTable::$permissions
protected

Definition at line 71 of file class.ilStudyProgrammeUserTable.php.

Referenced by __construct().

◆ $skip_perm_check_on_user

ilStudyProgrammeUserTable::$skip_perm_check_on_user = false
protected

Definition at line 167 of file class.ilStudyProgrammeUserTable.php.

◆ $user_ids_viewer_may_read_learning_progress_of

array ilStudyProgrammeUserTable::$user_ids_viewer_may_read_learning_progress_of
protected

Definition at line 72 of file class.ilStudyProgrammeUserTable.php.

◆ OPTION_ALL

const ilStudyProgrammeUserTable::OPTION_ALL = -1

◆ OPTION_USR_ACTIVE

const ilStudyProgrammeUserTable::OPTION_USR_ACTIVE = 1

◆ OPTION_USR_INACTIVE

const ilStudyProgrammeUserTable::OPTION_USR_INACTIVE = 2

◆ ORDER_MAPPING

const ilStudyProgrammeUserTable::ORDER_MAPPING
private
Initial value:
= [
'prg_status' => 'status',
'prg_custom_plan' => 'custom_plan',
'prg_belongs_to' => 'belongs_to',
'prg_validity' => 'validity',
'prg_orgus' => 'orgus',
'prg_completion_by' => 'completion_by',
'prg_completion_date' => 'completion_date',
'prg_assign_date' => 'assign_date',
'prg_assigned_by' => 'assigned_by',
'prg_deadline' => 'deadline',
'prg_expiry_date' => 'expiry_date',
'pgs_id' => 'prgrs_id'
]

Definition at line 53 of file class.ilStudyProgrammeUserTable.php.

◆ PRG_COLS

const ilStudyProgrammeUserTable::PRG_COLS
Initial value:
= [
['name', 'name', false, true, true],
['login', 'login', false, true, true],
['prg_orgus', 'prg_orgus', true, true, true],
['prg_status', 'prg_status', false, true, true],
['prg_completion_date', 'prg_completion_date', true, true, true],
['prg_completion_by', 'prg_completion_by', true, true, true],
['points', 'prg_points_reachable', false, true, false],
['points_required', 'prg_points_required', false, false, true],
['points_current', 'prg_points_current', false, false, true],
['prg_custom_plan', 'prg_custom_plan', true, true, true],
['prg_belongs_to', 'prg_belongs_to', true, true, true],
['prg_assign_date', 'prg_assign_date', false, true, true],
['prg_assigned_by', 'prg_assigned_by', true, true, true],
['prg_deadline', 'prg_deadline', true, true, true],
['prg_expiry_date', 'prg_expiry_date', true, true, true],
['prg_validity', 'prg_validity', true, true, true]
]

Definition at line 34 of file class.ilStudyProgrammeUserTable.php.

◆ VALIDITY_OPTION_INVALID

const ilStudyProgrammeUserTable::VALIDITY_OPTION_INVALID = 3

◆ VALIDITY_OPTION_VALID

const ilStudyProgrammeUserTable::VALIDITY_OPTION_VALID = 1

The documentation for this class was generated from the following file: