More fixes in the gradebook see BT#4080

skala
Julio Montoya 13 years ago
parent 1d6587ea3b
commit 50daa3d08a
  1. 6
      main/gradebook/gradebook_add_eval.php
  2. 8
      main/gradebook/lib/fe/catform.class.php
  3. 8
      main/gradebook/lib/fe/displaygradebook.php
  4. 49
      main/gradebook/lib/fe/gradebooktable.class.php
  5. 8
      main/gradebook/lib/gradebook_functions.inc.php

@ -29,7 +29,8 @@ if (isset ($_GET['selectcat']) && (!empty ($_GET['selectcat']))) {
} else {
$evaladd->set_category_id(0);
}
$form = new EvalForm(EvalForm :: TYPE_ADD, $evaladd, null, 'add_eval_form',null,api_get_self() . '?selectcat=' .$select_cat);
$form = new EvalForm(EvalForm :: TYPE_ADD, $evaladd, null, 'add_eval_form',null, api_get_self() . '?selectcat=' .$select_cat);
if ($form->validate()) {
$values = $form->exportValues();
@ -50,8 +51,7 @@ if ($form->validate()) {
$global_weight = $cat[0]->get_weight();
$values['weight'] = $values['weight_mask']/$global_weight*$parent_cat[0]->get_weight();
$eval->set_weight($values['weight']);
$eval->set_weight($values['weight']);
$eval->set_max($values['max']);
if (empty ($values['visible'])) {

@ -125,7 +125,7 @@ class CatForm extends FormValidator {
$links = $test_cats[0]->get_links();
}
$grade_model_id = $this->category_object->get_grade_model_id();
if (empty($links)) {
$grade_model_id = 0;
}
@ -149,7 +149,7 @@ class CatForm extends FormValidator {
private function build_basic_form() {
$this->addElement('hidden', 'zero', 0);
$this->add_textfield('name', get_lang('CategoryName'), true, array('size'=>'54','maxlength'=>'50'));
$this->add_textfield('name', get_lang('CategoryName'), true, array('class'=>'span3','maxlength'=>'50'));
$this->addRule('name', get_lang('ThisFieldIsRequired'), 'required');
if (isset($this->category_object) && $this->category_object->get_parent_id() == 0) {
@ -163,7 +163,7 @@ class CatForm extends FormValidator {
} else {
$value = 100;
}
$this->add_textfield('weight', array(get_lang('TotalWeight'), get_lang('TotalSumOfWeights')), true, array('value'=>$value, 'size'=>'4','maxlength'=>'5'));
$this->add_textfield('weight', array(get_lang('TotalWeight'), get_lang('TotalSumOfWeights')), true, array('value'=>$value, 'class'=>'span1','maxlength'=>'5'));
$this->addRule('weight',get_lang('ThisFieldIsRequired'),'required');
if (api_is_platform_admin() || api_is_drh()) {
@ -180,7 +180,7 @@ class CatForm extends FormValidator {
}
if (isset($this->category_object) && $this->category_object->get_parent_id() == 0) {
$this->add_textfield('certif_min_score', get_lang('CertificateMinScore'),false,array('size'=>'4','maxlength'=>'5'));
$this->add_textfield('certif_min_score', get_lang('CertificateMinScore'),false,array('class'=>'span1','maxlength'=>'5'));
$this->addRule('certif_min_score', get_lang('ThisFieldIsRequired'), 'required');
$this->addRule('certif_min_score',get_lang('OnlyNumbers'),'numeric');
//$this->addRule('certif_min_score',get_lang('NoDecimals'),'nopunctuation');

@ -368,6 +368,8 @@ class DisplayGradebook
$course_id = Database::get_course_by_category($selectcat);
$message_resource=$objcat->show_message_resource_delete($course_id);
$grade_model_id = $catobj->get_grade_model_id();
//@todo move these in a function
$sum_categories_weight_array = array();
if (isset($catobj) && !empty($catobj)) {
@ -409,6 +411,7 @@ class DisplayGradebook
$item_total += $sub_item_total;
$item_total_value += $item_value;
}
$item_total = round($item_total);
//$item_value = number_format($item_total_value, api_get_setting('gradebook_number_decimals'));
$item_value = number_format($item_total_value, 2);
@ -481,7 +484,10 @@ class DisplayGradebook
//$status_user = api_get_status_of_user_in_course ($user_id,$course_code);
if (api_is_allowed_to_edit(null, true)) {
$header .= '<a href="gradebook_add_cat.php?'.api_get_cidreq().'&selectcat='.$catobj->get_id().'"><img src="../img/icons/32/new_folder.png" alt="' . get_lang('AddGradebook') . '" /></a></td>';
if (empty($grade_model_id) || $grade_model_id == -1) {
$header .= '<a href="gradebook_add_cat.php?'.api_get_cidreq().'&selectcat='.$catobj->get_id().'"><img src="../img/icons/32/new_folder.png" alt="' . get_lang('AddGradebook') . '" /></a></td>';
}
if ($selectcat == '0') {
if ($show_add_qualification === true) {

@ -147,7 +147,10 @@ class GradebookTable extends SortableTable {
$main_cat = Category :: load(null, null, $course_code, null, null, $session_id, false);
foreach ($data_array as $data) {
$total_categories_weight = 0;
//Looping categories
foreach ($data_array as $data) {
// list of items inside the gradebook (exercises, lps, forums, etc)
$row = array();
@ -174,10 +177,12 @@ class GradebookTable extends SortableTable {
$row[] = $invisibility_span_open.$this->build_name_link($item) . $invisibility_span_close;
$main_categories[$item->get_id()] = $this->build_name_link($item);
}
$main_categories[$item->get_id()]['weight'] = $item->get_weight();
$total_categories_weight += $item->get_weight();
//Description
$row[] = $invisibility_span_open.$data[2] . $invisibility_span_close;
$row[] = $invisibility_span_open.$data[2].$invisibility_span_close;
//Weight
//$row[] = $invisibility_span_open .Display::tag('h4', $data['3'] .' / '.$this->currentcat->get_weight()).$invisibility_span_close;
@ -205,7 +210,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 {
@ -237,7 +242,9 @@ class GradebookTable extends SortableTable {
$sub_cat_info = new GradebookDataGenerator($allcat, $alleval, $alllink);
$data_array = $sub_cat_info->get_data($sorting, $from, $this->per_page);
$total_weight = 0;
foreach ($data_array as $data) {
$row = array();
$item = $data[0];
@ -264,6 +271,7 @@ class GradebookTable extends SortableTable {
//Weight
//$row[] = $invisibility_span_open . $data[3] .' / '.$category_weight.$invisibility_span_close;
$weight = $data[3]/$category_weight*$main_cat[0]->get_weight();
$total_weight += $weight;
$row[] = $invisibility_span_open . $weight.$invisibility_span_close;
@ -301,9 +309,35 @@ class GradebookTable extends SortableTable {
}
$sortable_data[] = $row;
}
//add elements
//"Warning row"
if (!empty($data_array)) {
if (api_is_allowed_to_edit()) {
$main_weight = intval($main_cat[0]->get_weight());
if (intval($total_weight) == $main_weight) {
$label = Display::return_icon('accept.png', get_lang('Ok'));
$total = Display::badge($total_weight.' / '.$main_weight, 'success');
} else {
$label = Display::return_icon('warning.png', sprintf(get_lang('TotalWeightMustBeX'), $main_weight) );
$total = Display::badge($total_weight.' / '.$main_weight, 'warning');
}
$row = array(null, null, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".get_lang('SubTotal'),null, $total.' '.$label);
$sortable_data[] = $row;
}
}
}
}
} //end looping categories
if (api_is_allowed_to_edit()) {
$main_weight = intval($main_cat[0]->get_weight());
if (intval($total_categories_weight) == $main_weight) {
$total = Display::badge($total_categories_weight.' / '.$main_weight, 'success');
} else {
$total = Display::badge($total_categories_weight.' / '.$main_weight, 'warning');
}
$row = array(null, null, get_lang('Total'), null, $total);
$sortable_data[] = $row;
}
// warning messages
$view = isset($_GET['view']) ? $_GET['view']: null;
@ -337,14 +371,11 @@ class GradebookTable extends SortableTable {
$warning_message = get_lang('ThereIsNotACertificateAvailableByDefault');
Display::display_warning_message($warning_message);
}
}
if (empty($_GET['selectcat'])) {
$categories = Category :: load();
$weight_categories = $certificate_min_scores = $course_codes = array();
foreach ($categories as $category) {
$course_code_category = $this->build_course_code($category);
if (!empty($course_code)) {

@ -205,7 +205,7 @@ function build_edit_icons_cat($cat, $selectcat) {
$visibility_icon= ($cat->is_visible() == 0) ? 'invisible' : 'visible';
$visibility_command= ($cat->is_visible() == 0) ? 'set_visible' : 'set_invisible';
if (empty($grade_model_id)) {
if (empty($grade_model_id) || $grade_model_id == -1) {
$modify_icons= '<a href="gradebook_edit_cat.php?editcat='.$cat->get_id().'&amp;cidReq='.$cat->get_course_code().'">'.Display::return_icon('edit.png', get_lang('Modify'),'',ICON_SIZE_SMALL).'</a>';
}
@ -219,9 +219,9 @@ function build_edit_icons_cat($cat, $selectcat) {
//$modify_icons .= '&nbsp;<img src="../img/deplacer_fichier_na.gif" border="0" title="' . get_lang('Move') . '" alt="" />';
}
if (empty($grade_model_id)) {
$modify_icons .= ' <a href="gradebook_edit_all.php?id_session='.api_get_session_id().'&amp;cidReq='.$cat->get_course_code().'&selectcat=' . $cat->get_id() . '"> '.
Display::return_icon('percentage.png', get_lang('EditAllWeights'),'',ICON_SIZE_SMALL).' </a>';
if (empty($grade_model_id) || $grade_model_id == -1) {
/*$modify_icons .= ' <a href="gradebook_edit_all.php?id_session='.api_get_session_id().'&amp;cidReq='.$cat->get_course_code().'&selectcat=' . $cat->get_id() . '"> '.
Display::return_icon('percentage.png', get_lang('EditAllWeights'),'',ICON_SIZE_SMALL).' </a>'; */
}
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?deletecat=' . $cat->get_id() . '&amp;selectcat=' . $selectcat . '&amp;cidReq='.$cat->get_course_code().'" onclick="return confirmation();">'.Display::return_icon('delete.png', get_lang('DeleteAll'),'',ICON_SIZE_SMALL).'</a>';

Loading…
Cancel
Save