|
@@ -22,6 +22,7 @@ class GradebookTable extends SortableTable {
|
|
|
private $currentcat;
|
|
|
private $datagen;
|
|
|
private $evals_links;
|
|
|
+ public $cats;
|
|
|
|
|
|
/**
|
|
|
* Constructor
|
|
@@ -31,7 +32,7 @@ class GradebookTable extends SortableTable {
|
|
|
parent :: __construct ('gradebooklist', null, null, (api_is_allowed_to_edit()?1:0));
|
|
|
$this->evals_links = array_merge($evals, $links);
|
|
|
$this->currentcat = $currentcat;
|
|
|
-
|
|
|
+ $this->cats = $cats;
|
|
|
$this->datagen = new GradebookDataGenerator($cats, $evals, $links);
|
|
|
|
|
|
if (isset($addparams)) {
|
|
@@ -53,6 +54,10 @@ class GradebookTable extends SortableTable {
|
|
|
} else {
|
|
|
$this->set_header($column++, get_lang('Weight'), false);
|
|
|
$this->set_header($column++, get_lang('Result'), false);
|
|
|
+
|
|
|
+ if (!empty($cats)) {
|
|
|
+ $this->set_header($column++, get_lang('Actions'), false);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/*if (api_is_allowed_to_edit(null, true)) {
|
|
@@ -138,24 +143,25 @@ class GradebookTable extends SortableTable {
|
|
|
$session_id = api_get_session_id();
|
|
|
$status_user = api_get_status_of_user_in_course($user_id, $course_code);
|
|
|
|
|
|
- $data_array = $this->datagen->get_data($sorting, $from, $this->per_page);
|
|
|
+ $data_array = $this->datagen->get_data($sorting, $from, $this->per_page);
|
|
|
|
|
|
// generate the data to display
|
|
|
$sortable_data = array();
|
|
|
$weight_total_links = 0;
|
|
|
|
|
|
- $main_categories = array();
|
|
|
+ $main_categories = array();
|
|
|
+ $main_cat = Category :: load(null, null, $course_code, null, null, $session_id, false);
|
|
|
|
|
|
- $main_cat = Category :: load(null, null, $course_code, null, null, $session_id, false);
|
|
|
+ $total_categories_weight = 0;
|
|
|
+ $scoredisplay = ScoreDisplay :: instance();
|
|
|
|
|
|
- $total_categories_weight = 0;
|
|
|
+ //Categories
|
|
|
|
|
|
- //Looping categories
|
|
|
foreach ($data_array as $data) {
|
|
|
|
|
|
// list of items inside the gradebook (exercises, lps, forums, etc)
|
|
|
$row = array();
|
|
|
- $item = $data[0];
|
|
|
+ $item = $item_category = $data[0];
|
|
|
|
|
|
$id = $item->get_id();
|
|
|
|
|
@@ -188,8 +194,7 @@ class GradebookTable extends SortableTable {
|
|
|
//Weight
|
|
|
//$row[] = $invisibility_span_open .Display::tag('h4', $data['3'] .' / '.$this->currentcat->get_weight()).$invisibility_span_close;
|
|
|
//$average = $data['3']/$this->currentcat->get_weight()*100;
|
|
|
-
|
|
|
- $scoredisplay = ScoreDisplay :: instance();
|
|
|
+
|
|
|
$average = $scoredisplay->display_score(array($data['3'], $this->currentcat->get_weight()), SCORE_PERCENT, SCORE_BOTH, true);
|
|
|
|
|
|
if (api_is_allowed_to_edit(null, true)) {
|
|
@@ -204,9 +209,8 @@ class GradebookTable extends SortableTable {
|
|
|
$weight_total_links += $data[3];
|
|
|
} else {
|
|
|
$cattotal = Category :: load($_GET['selectcat']);
|
|
|
- $scoretotal = $cattotal[0]->calc_score(api_get_user_id());
|
|
|
- $item_value = $scoretotal[0];
|
|
|
- $item_value = number_format($item_value, api_get_setting('gradebook_number_decimals'), '.', ' ');
|
|
|
+ $scoretotal = $cattotal[0]->calc_score(api_get_user_id());
|
|
|
+ $item_value = $scoredisplay->display_score($scoretotal, SCORE_SIMPLE);
|
|
|
}
|
|
|
|
|
|
//Date
|
|
@@ -230,12 +234,18 @@ class GradebookTable extends SortableTable {
|
|
|
}
|
|
|
} else {
|
|
|
$score = $item->calc_score(api_get_user_id());
|
|
|
- //$bar = $scoredisplay->display_score($score, SCORE_BAR);
|
|
|
- //$score = $scoredisplay->display_score($score);
|
|
|
-
|
|
|
- $score = $score[0]/$score[1]*$item->get_weight();
|
|
|
+ if (!empty($score[1])) {
|
|
|
+ $complete_score = $scoredisplay->display_score($score, SCORE_DIV_PERCENT);
|
|
|
+ $score = $score[0]/$score[1]*$item->get_weight();
|
|
|
+ $score = $scoredisplay->display_score(array($score, null), SCORE_SIMPLE);
|
|
|
+ $row[] = Display::tip($score, $complete_score);
|
|
|
+ } else {
|
|
|
+ $row[] = '-';
|
|
|
+ }
|
|
|
|
|
|
- $row[] = $score.' '.$this->build_edit_column($item);
|
|
|
+ if (!empty($this->cats)) {
|
|
|
+ $row[] = $this->build_edit_column($item);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -262,6 +272,8 @@ class GradebookTable extends SortableTable {
|
|
|
|
|
|
$total_weight = 0;
|
|
|
|
|
|
+ //Links
|
|
|
+
|
|
|
foreach ($data_array as $data) {
|
|
|
$row = array();
|
|
|
$item = $data[0];
|
|
@@ -277,6 +289,7 @@ class GradebookTable extends SortableTable {
|
|
|
if (api_is_allowed_to_edit(null, true)) {
|
|
|
$row[] = $this->build_id_column($item);
|
|
|
}
|
|
|
+
|
|
|
$row[] = $this->build_type_column($item);
|
|
|
|
|
|
//Name
|
|
@@ -303,8 +316,7 @@ class GradebookTable extends SortableTable {
|
|
|
} else {
|
|
|
$cattotal = Category :: load($_GET['selectcat']);
|
|
|
$scoretotal = $cattotal[0]->calc_score(api_get_user_id());
|
|
|
- $item_value = $scoretotal[0];
|
|
|
- $item_value = number_format($item_value, 2, '.', ' ');
|
|
|
+ $item_value = $scoretotal[0];
|
|
|
}
|
|
|
|
|
|
//Date
|
|
@@ -314,7 +326,7 @@ class GradebookTable extends SortableTable {
|
|
|
if (api_is_allowed_to_edit(null, true)) {
|
|
|
$cat = new Category();
|
|
|
$show_message = $cat->show_message_resource_delete($item->get_course_code());
|
|
|
- if ($show_message===false) {
|
|
|
+ if ($show_message === false) {
|
|
|
$row[] = $this->build_edit_column($item);
|
|
|
}
|
|
|
} else {
|
|
@@ -323,11 +335,15 @@ class GradebookTable extends SortableTable {
|
|
|
|
|
|
if (count($eval_n_links)> 0 && $status_user!=1 ) {
|
|
|
$value_data = isset($data[4]) ? $data[4] : null;
|
|
|
- if (!is_null($value_data)) {
|
|
|
+ if (!is_null($value_data)) {
|
|
|
$score = $item->calc_score(api_get_user_id());
|
|
|
- $row[] = $value_data;
|
|
|
+ $new_score = $data[3]* $score[0] / $score[1];
|
|
|
+ $row[] = Display::tip($new_score, $data[4]);
|
|
|
}
|
|
|
}
|
|
|
+ if (!empty($cats)) {
|
|
|
+ $row[] = null;
|
|
|
+ }
|
|
|
}
|
|
|
$row['child_of'] = $parent_id;
|
|
|
|