5 require_once(
"Services/Table/classes/class.ilTable2GUI.php");
6 require_once(
"Modules/StudyProgramme/classes/class.ilStudyProgrammeUserProgress.php");
7 require_once(
"Modules/StudyProgramme/classes/model/class.ilStudyProgrammeProgress.php");
8 require_once(
"Modules/StudyProgramme/classes/model/class.ilStudyProgrammeAssignment.php");
9 require_once(
"Modules/StudyProgramme/classes/class.ilObjStudyProgramme.php");
10 require_once(
"Modules/StudyProgramme/classes/class.ilStudyProgrammeUserProgress.php");
11 require_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 parent::__construct($a_parent_obj, $a_parent_cmd, $a_template_context);
27 $this->prg_obj_id = $a_prg_obj_id;
28 $this->prg_ref_id = $a_prg_ref_id;
29 $this->prg_has_lp_children = $a_parent_obj->getStudyProgramme()->hasLPChildren();
42 $this->
setRowTemplate(
"tpl.members_table_row.html",
"Modules/StudyProgramme");
44 $this->
setFormAction($ilCtrl->getFormAction($a_parent_obj,
"view"));
47 if($this->prg_has_lp_children) {
68 $this->tpl->setVariable(
"FIRSTNAME", $a_set[
"firstname"]);
69 $this->tpl->setVariable(
"LASTNAME", $a_set[
"lastname"]);
70 $this->tpl->setVariable(
"LOGIN", $a_set[
"login"]);
72 $this->tpl->setVariable(
"COMPLETION_BY", $a_set[
"completion_by"]);
73 $this->tpl->setVariable(
"POINTS_REQUIRED", $a_set[
"points"]);
75 if(!$this->prg_has_lp_children) {
76 $this->tpl->setCurrentBlock(
"points_current");
77 $this->tpl->setVariable(
"POINTS_CURRENT", $a_set[
"points_current"]);
78 $this->tpl->parseCurrentBlock();
81 $this->tpl->setVariable(
"CUSTOM_PLAN", $a_set[
"last_change_by"]
82 ? $this->lng->txt(
"yes")
83 : $this->lng->txt(
"no"));
84 $this->tpl->setVariable(
"BELONGS_TO", $a_set[
"belongs_to"]);
87 , $a_set[
"assignment_id"]));
92 foreach($a_actions as $action) {
94 $l->addItem($this->lng->txt(
"prg_$action"), $action, $target);
100 return $this->
getParentObject()->getLinkTargetForAction($a_action, $a_prgrs_id, $a_ass_id);
106 $query =
"SELECT prgrs.id prgrs_id" 114 .
" , prgrs.points_cur*" 120 .
" , prgrs.last_change_by" 122 .
" , blngs.title belongs_to" 123 .
" , cmpl_usr.login accredited_by" 124 .
" , cmpl_obj.title completion_by" 125 .
" , cmpl_obj.type completion_by_type" 126 .
" , prgrs.completion_by completion_by_id" 127 .
" , prgrs.assignment_id assignment_id" 128 .
" , ass.root_prg_id root_prg_id" 130 .
" , CONCAT(pcp.firstname, pcp.lastname) name" 131 .
" , (prgrs.last_change_by IS NOT NULL) custom_plan" 137 if($order_coloumn !== null) {
138 $query .=
" ORDER BY $order_coloumn";
141 $query .=
" $order_direction";
151 $members_list = array();
152 while($rec = $this->db->fetchAssoc(
$res)) {
154 $a_prg_id, $rec[
"root_prg_id"], $rec[
"status"]);
155 $rec[
'points_current'] = number_format($rec[
'points_current']);
159 if($rec[
"completion_by_type"] ==
"crsr") {
166 if (!$rec[
"completion_by"]) {
167 require_once(
"Modules/StudyProgramme/classes/class.ilStudyProgrammeUserProgress.php");
169 , $rec[
"assignment_id"]);
170 $rec[
"completion_by"] = implode(
", ", $prgrs->getNamesOfCompletedOrAccreditedChildren());
174 $rec[
"completion_by"] = $rec[
"accredited_by"];
177 $members_list[] = $rec;
179 return $members_list;
185 $query =
"SELECT count(prgrs.id) as cnt";
190 $rec = $this->db->fetchAssoc(
$res);
196 return " FROM ".ilStudyProgrammeProgress::returnDbTableName().
" prgrs" 197 .
" JOIN usr_data pcp ON pcp.usr_id = prgrs.usr_id" 199 .
" ON ass.id = prgrs.assignment_id" 200 .
" JOIN object_data blngs ON blngs.obj_id = ass.root_prg_id" 201 .
" LEFT JOIN usr_data cmpl_usr ON cmpl_usr.usr_id = prgrs.completion_by" 202 .
" LEFT JOIN object_data cmpl_obj ON cmpl_obj.obj_id = prgrs.completion_by";
206 return " WHERE prgrs.prg_id = ".$this->db->quote($a_prg_id,
"integer");
210 return array(
"name" => array(
"name")
211 ,
"login" => array(
"login")
212 ,
"prg_status" => array(
"status")
213 ,
"prg_completion_by" => array(null)
214 ,
"prg_points_required" => array(
"points")
215 ,
"prg_points_current" => array(
"points_current")
216 ,
"prg_custom_plan" => array(
"custom_plan")
217 ,
"prg_belongs_to" => array(
"belongs_to")
218 ,
"actions" => array(null)
223 return array(
"name" => array(
"name")
224 ,
"login" => array(
"login")
225 ,
"prg_status" => array(
"status")
226 ,
"prg_completion_by" => array(null)
227 ,
"prg_points_reachable" => array(
"points")
228 ,
"prg_custom_plan" => array(
"custom_plan")
229 ,
"prg_belongs_to" => array(
"belongs_to")
230 ,
"actions" => array(null)
getLinkTargetForAction($a_action, $a_prgrs_id, $a_ass_id)
setExternalSorting($a_val)
Set external sorting.
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.
setExternalSegmentation($a_val)
Set external segmentation.
determineLimit()
Determine the limit.
__construct($a_prg_obj_id, $a_prg_ref_id, $a_parent_obj, $a_parent_cmd="", $a_template_context="")
getOrderDirection()
Get order direction.
fetchData($a_prg_id, $limit=null, $offset=null, $order_coloumn=null, $order_direction=null)
getParentObject()
Get parent object.
countFetchData($a_prg_id)
Class ilObjStudyProgrammeMembersTableGUI.
setTopCommands($a_val)
Set top commands (display command buttons on top of table, too)
buildActionDropDown($a_actions, $a_prgrs_id, $a_ass_id)
static _lookupTitle($a_obj_id)
Overwitten from base class.
static getPossibleActions($a_node_id, $a_root_prg_id, $a_status)
Get a list with possible actions on a progress record.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
static returnDbTableName()
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
User interface class for advanced drop-down selection lists.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setEnableHeader($a_enableheader)
Set Enable Header.
setMaxCount($a_max_count)
set max.
setEnableTitle($a_enabletitle)
Set Enable Title.
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.