ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilExerciseDerivedTaskProvider Class Reference

Exercise derived task provider. More...

+ Inheritance diagram for ilExerciseDerivedTaskProvider:
+ Collaboration diagram for ilExerciseDerivedTaskProvider:

Public Member Functions

 __construct (ilTaskService $task_service, \ilAccess $access, \ilLanguage $lng, ilExerciseDerivedTaskAction $derived_task_action)
 Constructor. More...
 
 isActive ()
 Is provider active?
Returns
bool
More...
 
 getTasks (int $user_id)
 Get providers.
Parameters
int$user_id
Returns
ilDerivedTask[]
More...
 
 getTasks (int $user_id)
 Get providers. More...
 
 isActive ()
 Is provider active? More...
 

Protected Member Functions

 getFirstRefIdWithPermission ($perm, int $obj_id, int $user_id)
 Get first ref id for an object id with permission. More...
 

Protected Attributes

 $task_service
 
 $task_action
 
 $access
 
 $lng
 

Detailed Description

Exercise derived task provider.

Author
@leifos.de

Definition at line 11 of file class.ilExerciseDerivedTaskProvider.php.

Constructor & Destructor Documentation

◆ __construct()

ilExerciseDerivedTaskProvider::__construct ( ilTaskService  $task_service,
\ilAccess  $access,
\ilLanguage  $lng,
ilExerciseDerivedTaskAction  $derived_task_action 
)

Constructor.

Definition at line 36 of file class.ilExerciseDerivedTaskProvider.php.

37 {
38 $this->access = $access;
39 $this->task_service = $task_service;
40 $this->task_action = $derived_task_action;
41 $this->lng = $lng;
42
43 $this->lng->loadLanguageModule("exc");
44 }

References $access, $lng, and $task_service.

Member Function Documentation

◆ getFirstRefIdWithPermission()

ilExerciseDerivedTaskProvider::getFirstRefIdWithPermission (   $perm,
int  $obj_id,
int  $user_id 
)
protected

Get first ref id for an object id with permission.

Parameters
int$obj_id
int$user_id
Returns
int

Definition at line 116 of file class.ilExerciseDerivedTaskProvider.php.

116 : int
117 {
119
120 foreach (ilObject::_getAllReferences($obj_id) as $ref_id) {
121 if ($access->checkAccessOfUser($user_id, $perm, "", $ref_id)) {
122 return $ref_id;
123 }
124 }
125 return 0;
126 }
static _getAllReferences($a_id)
get all reference ids of object

References $access, and ilObject\_getAllReferences().

Referenced by getTasks().

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

◆ getTasks()

ilExerciseDerivedTaskProvider::getTasks ( int  $user_id)

Get providers.

Parameters
int$user_id
Returns
ilDerivedTask[]

Implements ilDerivedTaskProvider.

Definition at line 57 of file class.ilExerciseDerivedTaskProvider.php.

57 : array
58 {
60
61 $tasks = [];
62
63 // open assignments
64 foreach ($this->task_action->getOpenAssignmentsOfUser($user_id) as $ass) {
65 $ref_id = $this->getFirstRefIdWithPermission("read", $ass->getExerciseId(), $user_id);
66 if ($ref_id == 0) {
67 continue;
68 }
69 $state = ilExcAssMemberState::getInstanceByIds($ass->getId(), $user_id);
70 $title = str_replace("%1", $ass->getTitle(), $lng->txt("exc_task_submission"));
71 $tasks[] = $this->task_service->derived()->factory()->task(
72 $title,
73 $ref_id,
74 (int) $state->getOfficialDeadline(),
75 (int) $state->getGeneralStart()
76 );
77 }
78
79 // open peer feedbacks
80 foreach ($this->task_action->getOpenPeerReviewsOfUser($user_id) as $ass) {
81 $ref_id = $this->getFirstRefIdWithPermission("read", $ass->getExerciseId(), $user_id);
82 if ($ref_id == 0) {
83 continue;
84 }
85 $state = ilExcAssMemberState::getInstanceByIds($ass->getId(), $user_id);
86 $title = str_replace("%1", $ass->getTitle(), $lng->txt("exc_task_peer_feedback"));
87 $tasks[] = $this->task_service->derived()->factory()->task(
88 $title,
89 $ref_id,
90 (int) $state->getPeerReviewDeadline(),
91 0
92 );
93 }
94
95 // open gradings
96 foreach ($this->task_action->getOpenGradingsOfUser($user_id) as $ass) {
97 $ref_id = $this->getFirstRefIdWithPermission("write", $ass->getExerciseId(), $user_id);
98 if ($ref_id == 0) {
99 continue;
100 }
101 $title = str_replace("%1", $ass->getTitle(), $lng->txt("exc_task_grading"));
102 $tasks[] = $this->task_service->derived()->factory()->task($title, $ref_id, 0, 0);
103 }
104
105 return $tasks;
106 }
static getInstanceByIds($a_ass_id, $a_user_id=0)
Get instance by IDs (recommended for consumer code)
getFirstRefIdWithPermission($perm, int $obj_id, int $user_id)
Get first ref id for an object id with permission.

References $lng, getFirstRefIdWithPermission(), and ilExcAssMemberState\getInstanceByIds().

+ Here is the call graph for this function:

◆ isActive()

ilExerciseDerivedTaskProvider::isActive ( )

Is provider active?

Returns
bool

Implements ilDerivedTaskProvider.

Definition at line 49 of file class.ilExerciseDerivedTaskProvider.php.

49 : bool
50 {
51 return true;
52 }

Field Documentation

◆ $access

ilExerciseDerivedTaskProvider::$access
protected

◆ $lng

ilExerciseDerivedTaskProvider::$lng
protected

Definition at line 31 of file class.ilExerciseDerivedTaskProvider.php.

Referenced by __construct(), and getTasks().

◆ $task_action

ilExerciseDerivedTaskProvider::$task_action
protected

Definition at line 21 of file class.ilExerciseDerivedTaskProvider.php.

◆ $task_service

ilExerciseDerivedTaskProvider::$task_service
protected

Definition at line 16 of file class.ilExerciseDerivedTaskProvider.php.

Referenced by __construct().


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