5require_once(
"Services/Table/classes/class.ilTable2GUI.php");
6require_once(
"Modules/StudyProgramme/classes/class.ilStudyProgrammeUserProgress.php");
7require_once(
"Modules/StudyProgramme/classes/model/class.ilStudyProgrammeProgress.php");
8require_once(
"Modules/StudyProgramme/classes/model/class.ilStudyProgrammeAssignment.php");
9require_once(
"Modules/StudyProgramme/classes/class.ilObjStudyProgramme.php");
10require_once(
"Modules/StudyProgramme/classes/class.ilStudyProgrammeUserProgress.php");
11require_once(
"Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
24 public function __construct($a_prg_obj_id, $a_prg_ref_id, $a_parent_obj, $a_parent_cmd=
"", $a_template_context=
"") {
25 $this->
setId(
"sp_member_list");
26 parent::__construct($a_parent_obj, $a_parent_cmd, $a_template_context);
28 $this->prg_obj_id = $a_prg_obj_id;
29 $this->prg_ref_id = $a_prg_ref_id;
30 $this->prg_has_lp_children = $a_parent_obj->getStudyProgramme()->hasLPChildren();
46 $this->
setRowTemplate(
"tpl.members_table_row.html",
"Modules/StudyProgramme");
52 if($this->prg_has_lp_children) {
79 $this->tpl->setVariable(
"FIRSTNAME", $a_set[
"firstname"]);
80 $this->tpl->setVariable(
"LASTNAME", $a_set[
"lastname"]);
81 $this->tpl->setVariable(
"LOGIN", $a_set[
"login"]);
83 $this->tpl->setVariable(
"COMPLETION_BY", $a_set[
"completion_by"]);
84 $this->tpl->setVariable(
"POINTS_REQUIRED", $a_set[
"points"]);
86 if(!$this->prg_has_lp_children) {
87 $this->tpl->setCurrentBlock(
"points_current");
88 $this->tpl->setVariable(
"POINTS_CURRENT", $a_set[
"points_current"]);
89 $this->tpl->parseCurrentBlock();
92 $this->tpl->setVariable(
"CUSTOM_PLAN", $a_set[
"last_change_by"]
93 ? $this->lng->txt(
"yes")
94 : $this->lng->txt(
"no"));
95 $this->tpl->setVariable(
"BELONGS_TO", $a_set[
"belongs_to"]);
98 , $a_set[
"assignment_id"]));
102 case "prg_assign_date":
103 $this->tpl->setCurrentBlock(
"assign_date");
104 $this->tpl->setVariable(
"ASSIGN_DATE", $a_set[
"prg_assign_date"]);
105 $this->tpl->parseCurrentBlock(
"assign_date");
107 case "prg_assigned_by":
108 $this->tpl->setCurrentBlock(
"assigned_by");
109 $this->tpl->setVariable(
"ASSIGNED_BY", $a_set[
"prg_assigned_by"]);
110 $this->tpl->parseCurrentBlock(
"assigned_by");
118 foreach($a_actions as $action) {
120 $l->addItem($this->lng->txt(
"prg_$action"), $action,
$target);
122 return $l->getHTML();
126 return $this->
getParentObject()->getLinkTargetForAction($a_action, $a_prgrs_id, $a_ass_id);
132 $query =
"SELECT prgrs.id prgrs_id"
140 .
" , prgrs.points_cur*"
146 .
" , prgrs.last_change_by"
148 .
" , blngs.title belongs_to"
149 .
" , cmpl_usr.login accredited_by"
150 .
" , cmpl_obj.title completion_by"
151 .
" , cmpl_obj.type completion_by_type"
152 .
" , prgrs.completion_by completion_by_id"
153 .
" , prgrs.assignment_id assignment_id"
154 .
" , ass.root_prg_id root_prg_id"
155 .
" , ass.last_change prg_assign_date"
156 .
" , ass_usr.login prg_assigned_by"
158 .
" , CONCAT(pcp.firstname, pcp.lastname) name"
159 .
" , (prgrs.last_change_by IS NOT NULL) custom_plan"
165 if($order_coloumn !==
null) {
166 $query .=
" ORDER BY $order_coloumn";
169 $query .=
" $order_direction";
179 $members_list = array();
180 while($rec = $this->db->fetchAssoc(
$res)) {
182 $a_prg_id, $rec[
"root_prg_id"], $rec[
"status"]);
183 $rec[
'points_current'] = number_format($rec[
'points_current']);
187 if($rec[
"completion_by_type"] ==
"crsr") {
194 if (!$rec[
"completion_by"]) {
195 require_once(
"Modules/StudyProgramme/classes/class.ilStudyProgrammeUserProgress.php");
197 , $rec[
"assignment_id"]);
198 $rec[
"completion_by"] = implode(
", ", $prgrs->getNamesOfCompletedOrAccreditedChildren());
202 $rec[
"completion_by"] = $rec[
"accredited_by"];
205 $members_list[] = $rec;
207 return $members_list;
213 $query =
"SELECT count(prgrs.id) as cnt";
218 $rec = $this->db->fetchAssoc(
$res);
224 return " FROM ".ilStudyProgrammeProgress::returnDbTableName().
" prgrs"
225 .
" JOIN usr_data pcp ON pcp.usr_id = prgrs.usr_id"
227 .
" ON ass.id = prgrs.assignment_id"
228 .
" JOIN object_data blngs ON blngs.obj_id = ass.root_prg_id"
229 .
" LEFT JOIN usr_data ass_usr ON ass_usr.usr_id = ass.last_change_by"
230 .
" LEFT JOIN usr_data cmpl_usr ON cmpl_usr.usr_id = prgrs.completion_by"
231 .
" LEFT JOIN object_data cmpl_obj ON cmpl_obj.obj_id = prgrs.completion_by";
235 return " WHERE prgrs.prg_id = ".$this->db->quote($a_prg_id,
"integer");
247 $cols[
"prg_assign_date"] = array(
248 "txt" => $this->lng->txt(
"prg_assign_date"));
250 $cols[
"prg_assigned_by"] = array(
251 "txt" => $this->lng->txt(
"prg_assigned_by"));
257 return array(
"name" => array(
"name")
258 ,
"login" => array(
"login")
259 ,
"prg_status" => array(
"status")
260 ,
"prg_completion_by" => array(
null)
261 ,
"prg_points_required" => array(
"points")
262 ,
"prg_points_current" => array(
"points_current")
263 ,
"prg_custom_plan" => array(
"custom_plan")
264 ,
"prg_belongs_to" => array(
"belongs_to")
269 return array(
"name" => array(
"name")
270 ,
"login" => array(
"login")
271 ,
"prg_status" => array(
"status")
272 ,
"prg_completion_by" => array(
null)
273 ,
"prg_points_reachable" => array(
"points")
274 ,
"prg_custom_plan" => array(
"custom_plan")
275 ,
"prg_belongs_to" => array(
"belongs_to")
An exception for terminatinating execution or to throw for unit testing.
User interface class for advanced drop-down selection lists.
static _lookupTitle($a_obj_id)
Overwitten from base class.
static returnDbTableName()
Class ilObjStudyProgrammeMembersTableGUI.
getSelectableColumns()
Get selectable columns.
fillRow($a_set)
Standard Version of Fill Row.
getLinkTargetForAction($a_action, $a_prgrs_id, $a_ass_id)
__construct($a_prg_obj_id, $a_prg_ref_id, $a_parent_obj, $a_parent_cmd="", $a_template_context="")
buildActionDropDown($a_actions, $a_prgrs_id, $a_ass_id)
fetchData($a_prg_id, $limit=null, $offset=null, $order_coloumn=null, $order_direction=null)
countFetchData($a_prg_id)
static statusToRepr($a_status)
Get a user readable representation of a status.
static getInstanceForAssignment($a_program_id, $a_assignment_id)
Get the instance for the assignment on the program.
static getPossibleActions($a_node_id, $a_root_prg_id, $a_status)
Get a list with possible actions on a progress record.
getSelectedColumns()
Get selected columns.
setTopCommands($a_val)
Set top commands (display command buttons on top of table, too)
setEnableHeader($a_enableheader)
Set Enable Header.
setExternalSorting($a_val)
Set external sorting.
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
getParentObject()
Get parent object.
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
setData($a_data)
set table data @access public
setEnableTitle($a_enabletitle)
Set Enable Title.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
setExternalSegmentation($a_val)
Set external segmentation.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
determineLimit()
Determine the limit.
getOrderDirection()
Get order direction.
setMaxCount($a_max_count)
set max.