[svn r17190] logic changes - revised "my gradebook" - (see FS#3319)

skala
Isaac Flores 17 years ago
parent 97beae1b32
commit a1b8fa972c
  1. 8
      main/gradebook/gradebook.php
  2. 7
      main/gradebook/gradebook_add_cat.php
  3. 7
      main/gradebook/gradebook_add_eval.php
  4. 29
      main/gradebook/gradebook_flatview.php
  5. 34
      main/gradebook/index.php
  6. 31
      main/gradebook/lib/be/category.class.php
  7. 22
      main/gradebook/lib/be/exerciselink.class.php
  8. 30
      main/gradebook/lib/fe/displaygradebook.php
  9. 2
      main/gradebook/lib/fe/gradebooktable.class.php

@ -1,4 +1,4 @@
<?php // $Id: gradebook.php 16915 2008-11-25 20:15:42Z yannoo $
<?php
/*
==============================================================================
Dokeos - elearning and course management software
@ -81,6 +81,7 @@ if (isset ($_GET['createallcategories'])) {
exit;
}
//move a category
$selectcat=isset($_GET['selectcat']) ? Security::remove_XSS($_GET['selectcat']) : '';
if (isset ($_GET['movecat'])) {
block_students();
$cats= Category :: load($_GET['movecat']);
@ -253,7 +254,7 @@ if (isset ($_GET['deletelink'])) {
$confirmation_message = get_lang('LinkDeleted');
$filter_confirm_msg = false;
}
$course_to_crsind = isset ($course_to_crsind) ? $course_to_crsind : '';
if ($course_to_crsind && !isset($_GET['confirm'])) {
block_students();
if (!isset($_GET['movecat']) && !isset($_GET['moveeval'])) {
@ -450,7 +451,8 @@ if (!isset ($_GET['selectcat']) || empty ($_GET['selectcat'])) {
$category= $_GET['selectcat'];
}
// search form
$simple_search_form= new UserForm(UserForm :: TYPE_SIMPLE_SEARCH, null, 'simple_search_form', null, api_get_self() . '?selectcat=' . Security::remove_XSS($_GET['selectcat']));
$simple_search_form= new UserForm(UserForm :: TYPE_SIMPLE_SEARCH, null, 'simple_search_form', null, api_get_self() . '?selectcat=' . $selectcat);
$values= $simple_search_form->exportValues();
$keyword = '';
if (isset($_GET['search']) && !empty($_GET['search'])) {

@ -1,4 +1,4 @@
<?php // $Id: $
<?php
/*
==============================================================================
Dokeos - elearning and course management software
@ -49,13 +49,14 @@ if ($_in_course) {
$form = new CatForm(CatForm :: TYPE_ADD, $catadd, 'add_cat_form', null, api_get_self() . '?selectcat=' . Security::remove_XSS($_GET['selectcat']));
if ($form->validate()) {
$values = $form->exportValues();
$select_course=isset($values['select_course']) ? $values['select_course'] : array();
$cat = new Category();
if ($values['hid_parent_id'] == '0') {
if ($values['select_course'] == 'COURSEINDEPENDENT') {
if ($select_course == 'COURSEINDEPENDENT') {
$cat->set_name($values['name']);
$cat->set_course_code(null);
} else {
$cat->set_course_code($values['select_course']);
$cat->set_course_code($select_course);
$cat->set_name($values['name']);
}
} else {

@ -1,4 +1,4 @@
<?php // $Id $
<?php
/*
==============================================================================
Dokeos - elearning and course management software
@ -30,6 +30,7 @@ require_once ('lib/fe/evalform.class.php');
api_block_anonymous_users();
block_students();
$select_cat=isset($_GET['selectcat']) ? Security::remove_XSS($_GET['selectcat']) : '';
$is_allowedToEdit = $is_courseAdmin;
$evaladd = new Evaluation();
$evaladd->set_user_id($_user['user_id']);
@ -40,7 +41,7 @@ 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=' . Security::remove_XSS($_GET['selectcat']));
$form = new EvalForm(EvalForm :: TYPE_ADD, $evaladd, null, 'add_eval_form',null,api_get_self() . '?selectcat=' .$select_cat);
if ($form->validate()) {
$values = $form->exportValues();
$eval = new Evaluation();
@ -83,7 +84,7 @@ if ($form->validate()) {
}
$interbreadcrumb[] = array (
'url' => $_SESSION['gradebook_dest'].'?selectcat='.Security::remove_XSS($_GET['selectcat']),
'url' => $_SESSION['gradebook_dest'].'?selectcat='.$select_cat,
'name' => get_lang('Gradebook'
));
Display :: display_header(get_lang('NewEvaluation'));

@ -56,19 +56,34 @@ if (($showlink == '0') && ($showeval == '0')) {
}
$cat= Category :: load($_REQUEST['selectcat']);
if (isset($_GET['userid'])) {
$userid=$_GET['userid'];
} else {
$userid='';
}
if ($showeval) {
$alleval= $cat[0]->get_evaluations($_GET['userid'], true);
$alleval= $cat[0]->get_evaluations($userid, true);
} else {
$alleval=null;
}
if ($showlink) {
$alllinks= $cat[0]->get_links($_GET['userid'], true);
$alllinks= $cat[0]->get_links($userid, true);
} else {
$alllinks=null;
}
if (isset ($export_flatview_form) && (!$file_type == 'pdf')) {
Display :: display_normal_message($export_flatview_form->toHtml(),false);
}
if (isset($_GET['selectcat'])) {
$category_id=$_GET['selectcat'];
} else {
$category_id='';
}
$simple_search_form= new UserForm(UserForm :: TYPE_SIMPLE_SEARCH, null, 'simple_search_form', null, api_get_self() . '?selectcat=' . $_GET['selectcat']);
$simple_search_form= new UserForm(UserForm :: TYPE_SIMPLE_SEARCH, null, 'simple_search_form', null, api_get_self() . '?selectcat=' .$category_id);
$values= $simple_search_form->exportValues();
$keyword = '';
if (isset($_GET['search']) && !empty($_GET['search'])) {
@ -82,7 +97,11 @@ if ($simple_search_form->validate() && (empty($keyword))) {
if (!empty($keyword)) {
$users= find_students($keyword);
} else {
$users= get_all_users($alleval, $alllinks);
if (isset($alleval) && isset($alllinks)) {
$users= get_all_users($alleval, $alllinks);
}else {
$users=null;
}
}
if (isset ($_GET['exportpdf'])) {
$interbreadcrumb[]= array (
@ -118,7 +137,7 @@ if(!empty($_POST['export_report']) && $_POST['export_report'] == 'export_report'
if(empty($_SESSION['export_user_fields'])) {
$_SESSION['export_user_fields'] = false;
}
if(!$is_allowedToEdit and !$is_tutor) {
if(!api_is_allowed_to_edit(false,false) and !api_is_course_tutor()) {
$user_id = api_get_user_id();
}

@ -60,16 +60,27 @@ $tbl_grade_links = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
$filter_confirm_msg = true;
$filter_warning_msg = true;
if ( (isset($_GET['selectcat']) && $_GET['selectcat']>0) && (isset($_SESSION['studentview']) && $_SESSION['studentview']=='studentview') ) {
$interbreadcrumb[]= array (
if (isset($_GET['isStudentView'])) {
if ( (isset($_GET['selectcat']) && $_GET['selectcat']>0) && (isset($_SESSION['studentview']) && $_SESSION['studentview']=='studentview') ) {
$interbreadcrumb[]= array (
'url' => 'index.php'.'?selectcat=0&amp;isStudentView='.$_GET['isStudentView'],
'name' => get_lang('Gradebook')
);
);
}
}
if ( (isset($_GET['selectcat']) && $_GET['selectcat']>0) && (isset($_SESSION['studentview']) && $_SESSION['studentview']=='studentview') ) {
Display :: display_header(get_lang('Details'));
$gradebooktable= new GradebookTable(null, $allcat, $alleval,$alllink, $addparams);
$category= $_GET['selectcat'];
$stud_id=api_get_user_id();
$course_code=api_get_course_id();
$session_id=api_get_session_id();
$cats = Category :: load ($category, null, null, null, null, null, false);
$allcat= $cats[0]->get_subcategories($stud_id, $course_code, $session_id);
$alleval= $cats[0]->get_evaluations($stud_id);
$alllink= $cats[0]->get_links($stud_id);
$addparams=array();
$gradebooktable= new GradebookTable($cats[0], $allcat, $alleval,$alllink, $addparams);
$gradebooktable->display();
Display :: display_footer();
exit;
@ -79,6 +90,7 @@ if ( (isset($_GET['selectcat']) && $_GET['selectcat']>0) && (isset($_SESSION['st
$stud_id=api_get_user_id();
$course_code=api_get_course_id();
$session_id=api_get_session_id();
$addparams=array();
$cats = Category :: load (0, null, null, null, null, null, false);
$allcat= $cats[0]->get_subcategories($stud_id, $course_code, $session_id);
$alleval= $cats[0]->get_evaluations($stud_id);
@ -296,7 +308,7 @@ if (isset ($_GET['deletelink'])) {
$filter_confirm_msg = false;
}
if ($course_to_crsind && !isset($_GET['confirm'])) {
if (!empty($course_to_crsind) && !isset($_GET['confirm'])) {
block_students();
if (!isset($_GET['movecat']) && !isset($_GET['moveeval'])) {
@ -513,6 +525,7 @@ if (empty ($_GET['selectcat'])) {
} else {
$category= $_GET['selectcat'];
}
$simple_search_form='';
// search disabled in course context
/*
$simple_search_form= new UserForm(UserForm :: TYPE_SIMPLE_SEARCH, null, 'simple_search_form', null, api_get_self() . '?selectcat=' . Security::remove_XSS($_GET['selectcat']));
@ -694,7 +707,16 @@ if (( count($allcat) == 0) && ( count($alleval) == 0 ) && ( count($alllink) == 0
}
//here we are in a sub category
if ($category != '0') {
DisplayGradebook :: display_header_gradebook($cats[0], 0, $_GET['selectcat'], $is_course_admin, $is_platform_admin, $simple_search_form, false, true);
$cat=new Category();
$dblib=new Database();
$category_id=Security::remove_XSS($_GET['selectcat']);
$course_id=$dblib->get_course_by_category($category_id);
$show_message=$cat->show_message_resource_delete($course_id);
if ($show_message=='') {
DisplayGradebook :: display_header_gradebook($cats[0], 0, $_GET['selectcat'], $is_course_admin, $is_platform_admin, $simple_search_form, false, true);
}
} else {
//this is the root category
//DisplayGradebook :: display_header_gradebook($cats[0], 0, 0, $is_course_admin, $is_platform_admin, $simple_search_form, false, false);

@ -337,7 +337,29 @@ class Category implements GradebookItem
$sql = 'DELETE FROM '.$tbl_grade_categories.' WHERE id = '.$this->id;
api_sql_query($sql, __FILE__, __LINE__);
}
/**
* Not delete this category from the database,when visible=3 is category eliminated
*/
public function update_category_delete($course_id){
$tbl_grade_categories = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$sql = 'UPDATE '.$tbl_grade_categories.' SET visible=3 WHERE course_code ="'.$course_id.'"';
api_sql_query($sql, __FILE__, __LINE__);
}
/**
* Show message
*/
public function show_message_resource_delete($course_id) {
$tbl_grade_categories = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$sql = 'SELECT count(*) AS num from '.$tbl_grade_categories.' WHERE course_code ="'.$course_id.'" AND visible=3';
$res=api_sql_query($sql, __FILE__, __LINE__);
$option=Database::fetch_array($res,'ASSOC');
if ($option['num']>=1) {
return '&nbsp;&nbsp;<span class="resource-deleted">(&nbsp;'.get_lang('ResourceDeleted').'&nbsp;)</span>';
} else {
return false;
}
}
// OTHER FUNCTIONS
@ -544,8 +566,15 @@ class Category implements GradebookItem
.' AND status = '.COURSEMANAGER
.')';
}
}elseif (api_is_platform_admin()) {
if (isset($session_id) && $session_id!=0) {
$sql.=' AND session_id='.$session_id;
} else {
$sql.=' AND coalesce(session_id,0)=0';
}
}
$result = api_sql_query($sql, __FILE__, __LINE__);
$cats = Category::create_category_objects_from_sql_result($result);

@ -240,20 +240,26 @@ class ExerciseLink extends AbstractLink
* Lazy load function to get the database table of the exercise
*/
private function get_exercise_table () {
if (!isset($this->exercise_table)) {
$course_info = Database :: get_course_info($this->get_course_code());
$database_name = isset($course_info['db_name']) ? $course_info['db_name'] : '';
$this->exercise_table = Database :: get_course_table(TABLE_QUIZ_TEST, $database_name);
}
return $this->exercise_table;
$course_info = Database :: get_course_info($this->get_course_code());
$database_name = isset($course_info['db_name']) ? $course_info['db_name'] : '';
if ($database_name!='') {
if (!isset($this->exercise_table)) {
$this->exercise_table = Database :: get_course_table(TABLE_QUIZ_TEST, $database_name);
}
return $this->exercise_table;
} else {
return '';
}
}
/**
* Lazy load function to get the database contents of this exercise
*/
private function get_exercise_data () {
if (!isset($this->exercise_data))
{
$tbl_exercise=$this->get_exercise_table();
if ($tbl_exercise=='') {
return false;
} elseif (!isset($this->exercise_data)) {
$sql = 'SELECT * from '.$this->get_exercise_table()
.' WHERE id = '.$this->get_ref_id();
$result = api_sql_query($sql, __FILE__, __LINE__);

@ -186,6 +186,11 @@ class DisplayGradebook
*/
function display_header_gradebook($catobj, $showtree, $selectcat, $is_course_admin, $is_platform_admin, $simple_search_form, $show_add_qualification = true, $show_add_link = true) {
//student
$objcat=new Category();
$objdat=new Database();
$course_id=$objdat->get_course_by_category($selectcat);
$message_resource=$objcat->show_message_resource_delete($course_id);
if (!$is_course_admin) {
$user_id = api_get_user_id();
$user= get_user_info_from_id($user_id);
@ -252,18 +257,20 @@ class DisplayGradebook
if (!$selectcat == '0') {
$header .= '<td style="vertical-align: top;"><a href="' . api_get_self() . '?selectcat=' . $catobj->get_parent_id() . '"><img src="../img/folder_up.gif" border="0" alt="" /></a></td>';
}
if (!empty($simple_search_form)) {
if (!empty($simple_search_form) && $message_resource===false) {
$header .= '<td style="vertical-align: top;">'.$simple_search_form->toHtml().'</td>';
} else {
$header .= '<td></td>';
}
if ($is_course_admin) {
if ($is_course_admin && $message_resource===false) {
$header .= '<td style="vertical-align: top;"><a href="gradebook_flatview.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" /> ' . get_lang('FlatView') . '</a>';
if ($is_platform_admin) {
if ($is_platform_admin && $message_resource===false) {
$header .= '<td style="vertical-align: top;"><a href="gradebook_scoring_system.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() .'"><img src="../img/acces_tool.gif" alt="' . get_lang('ScoreEdit') . '" /> ' . get_lang('ScoreEdit') . '</a>';
}
} elseif (!(isset ($_GET['studentoverview']))) {
$header .= '<td style="vertical-align: top;"><a href="'.api_get_self().'?'.api_get_cidreq().'&studentoverview=&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" /> ' . get_lang('FlatView') . '</a>';
if ( $message_resource===false ) {
$header .= '<td style="vertical-align: top;"><a href="'.api_get_self().'?'.api_get_cidreq().'&studentoverview=&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" /> ' . get_lang('FlatView') . '</a>';
}
} else {
$header .= '<td style="vertical-align: top;"><a href="'.api_get_self().'?'.api_get_cidreq().'&studentoverview=&exportpdf=&selectcat=' . $catobj->get_id() . '" target="_blank"><img src="../img/calendar_up.gif" alt="' . get_lang('ExportPDF') . '" /> ' . get_lang('ExportPDF') . '</a>';
}
@ -279,17 +286,17 @@ class DisplayGradebook
$header .= '<a href="gradebook_add_cat.php?'.api_get_cidreq().'&selectcat=0"><img src="../img/folder_new.gif" alt="' . get_lang('NewCategory') . '" /> ' . get_lang('NewCategory') . '</a></td>';
}
if ($show_add_link === true) {
$header .= '<td><a href="gradebook_add_eval.php'.api_get_cidreq().'&"><img src="../img/filenew.gif" alt="' . get_lang('NewEvaluation') . '" /> ' . get_lang('NewEvaluation') . '</a>';
$header .= '<td><a href="gradebook_add_eval.php?'.api_get_cidreq().'"><img src="../img/filenew.gif" alt="' . get_lang('NewEvaluation') . '" /> ' . get_lang('NewEvaluation') . '</a>';
}
} else {
if ($show_add_qualification === true) {
if ($show_add_qualification === true && $message_resource===false) {
$header .= '<a href="gradebook_add_cat.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '" ><img src="../img/folder_new.gif" alt="' . get_lang('NewSubCategory') . '" align="absmiddle" /> ' . get_lang('NewSubCategory') . '</a></td>';
}
if ($show_add_link === true) {
if ($show_add_link === true && $message_resource==false) {
$header .= '<td><a href="gradebook_add_eval.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '" ><img src="../img/filenew.gif" alt="' . get_lang('NewEvaluation') . '" align="absmiddle" /> ' . get_lang('NewEvaluation') . '</a>&nbsp;';
$cats= Category :: load($selectcat);
if ($cats[0]->get_course_code() != null) {
if ($cats[0]->get_course_code() != null && $message_resource===false) {
//$header .= '<td><a href="gradebook_add_link.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '"><img src="../img/link.gif" alt="' . get_lang('MakeLink') . '" align="absmiddle" /> ' . get_lang('MakeLink') . '</a>';
$header .= '<td><a href="gradebook_add_link.php?course_code='.api_get_course_id().'&selectcat=' . $catobj->get_id() . '"><img src="../img/link.gif" alt="' . get_lang('MakeLink') . '" align="absmiddle" /> ' . get_lang('MakeLink') . '</a>&nbsp;';
@ -297,7 +304,9 @@ class DisplayGradebook
$header .= '<td><a href="gradebook_add_link_select_course.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '"><img src="../img/link.gif" alt="' . get_lang('MakeLink') . '" align="absmiddle" /> ' . get_lang('MakeLink') . '</a>&nbsp;';
}
}
$header .= '<td><a href="gradebook_edit_all.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '"><img src="../img/quiz.gif" alt="' . get_lang('EditAllWeights') . '" align="absmiddle"/> ' . get_lang('EditAllWeights') . '</a>';
if ($message_resource===false ) {
$header .= '<td><a href="gradebook_edit_all.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '"><img src="../img/quiz.gif" alt="' . get_lang('EditAllWeights') . '" align="absmiddle"/> ' . get_lang('EditAllWeights') . '</a>';
}
}
} elseif (isset ($_GET['search'])) {
$header .= '<b>'.get_lang('SearchResults').' :</b>';
@ -306,7 +315,6 @@ class DisplayGradebook
echo $header;
}
function display_reduce_header_gradebook($catobj,$is_course_admin, $is_platform_admin, $simple_search_form, $show_add_qualification = true, $show_add_link = true) {
//student
if (!$is_course_admin) {
@ -330,7 +338,7 @@ class DisplayGradebook
if ($is_course_admin) {
$header .= '<td style="vertical-align: top;"><a href="gradebook_flatview.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" /> ' . get_lang('FlatView') . '</a>';
if ($is_platform_admin || $is_course_admin)
if ($is_platform_admin || $is_course_admin)
$header .= '<td style="vertical-align: top;"><a href="gradebook_scoring_system.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() .'"><img src="../img/acces_tool.gif" alt="' . get_lang('ScoreEdit') . '" /> ' . get_lang('ScoreEdit') . '</a>';
} elseif (!(isset ($_GET['studentoverview']))) {
$header .= '<td style="vertical-align: top;"><a href="'.api_get_self().'?'.api_get_cidreq().'&studentoverview=&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" /> ' . get_lang('FlatView') . '</a>';

@ -74,7 +74,7 @@ class GradebookTable extends SortableTable
$this->set_header($column++, get_lang('Modify'), false, 'width="100"');
//actions on multiple selected documents
$this->set_form_actions(array (
'deleted' => get_lang('DeleteSelected'),
'delete' => get_lang('DeleteSelected'),
'setvisible' => get_lang('SetVisible'),
'setinvisible' => get_lang('SetInvisible')));
} else {

Loading…
Cancel
Save