From bea42935ff1f900d3218401c743e08e55c831239 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Tue, 16 Aug 2011 14:07:05 +0200 Subject: [PATCH] Lots of fixes in the Gradebook certification: QR code size, certificate actions menu, certifications generations --- main/document/create_document.php | 27 ++--- main/document/edit_document.php | 20 ++-- .../gradebook_display_certificate.php | 42 ++++---- main/gradebook/index.php | 21 ++-- main/gradebook/lib/fe/displaygradebook.php | 13 ++- .../gradebook/lib/fe/gradebooktable.class.php | 77 ++------------ .../gradebook/lib/gradebook_functions.inc.php | 45 +------- main/img/icons/32/certificate_list.png | Bin 2129 -> 1047 bytes main/inc/lib/certificate.lib.php | 98 ++++++++++++------ 9 files changed, 144 insertions(+), 199 deletions(-) diff --git a/main/document/create_document.php b/main/document/create_document.php index c9d5eaa071..9f30f47dc5 100755 --- a/main/document/create_document.php +++ b/main/document/create_document.php @@ -621,7 +621,8 @@ if ($form->validate()) { } } } - */ + */ + get_list_gradebook_certificates_by_user_id() // Interbreadcrumb for the current directory root path if (empty($document_data['parents'])) { @@ -632,27 +633,29 @@ if ($form->validate()) { } } - Display :: display_header($nameTools, "Doc"); //api_display_tool_title($nameTools); - // actions + // actions + echo '
'; + + // link back to the documents overview + if ($is_certificate_mode) + echo ''.Display::return_icon('back.png',get_lang('Back').' '.get_lang('To').' '.get_lang('CertificateOverview'),'','32').''; + else + echo ''.Display::return_icon('back.png',get_lang('Back').' '.get_lang('To').' '.get_lang('DocumentsOverview'),'','32').''; + echo '
'; + if ($is_certificate_mode) { $all_information_by_create_certificate = DocumentManager::get_all_info_to_certificate(api_get_user_id(), api_get_course_id()); - + $str_info = ''; foreach ($all_information_by_create_certificate[0] as $info_value) { $str_info.=$info_value.'
'; } - $create_certificate=get_lang('CreateCertificateWithTags'); + $create_certificate = get_lang('CreateCertificateWithTags'); Display::display_normal_message($create_certificate.':

'.$str_info,false); } - echo '
'; - // link back to the documents overview - if ($is_certificate_mode) - echo ''.Display::return_icon('back.png',get_lang('Back').' '.get_lang('To').' '.get_lang('CertificateOverview'),'','32').''; - else - echo ''.Display::return_icon('back.png',get_lang('Back').' '.get_lang('To').' '.get_lang('DocumentsOverview'),'','32').''; - echo '
'; + $form->display(); Display :: display_footer(); } diff --git a/main/document/edit_document.php b/main/document/edit_document.php index da0110864e..8822e9371f 100755 --- a/main/document/edit_document.php +++ b/main/document/edit_document.php @@ -82,7 +82,6 @@ require_once $lib_path.'document.lib.php'; require_once $lib_path.'groupmanager.lib.php'; require_once $lib_path.'formvalidator/FormValidator.class.php'; require_once api_get_path(SYS_CODE_PATH).'document/document.inc.php'; -/* Constants & Variables */ if (api_is_in_group()) { $group_properties = GroupManager::get_group_properties($_SESSION['_gid']); @@ -108,8 +107,12 @@ if (isset($_GET['id'])) { $file = $_GET['file']; $doc = basename($file); } - +/* //I'm in the certification module? +if (isset($_REQUEST['certificate']) && $_REQUEST['certificate'] == 'true') { + $is_certificate_mode = true; +}*/ + $is_certificate_mode = DocumentManager::is_certificate_mode($dir); //Call from @@ -381,8 +384,6 @@ if (file_exists($filepath.$doc)) { $nameTools = get_lang('EditDocument') . ': '.$oldTitle; Display::display_header($nameTools, 'Doc'); -// Display the tool title -//api_display_tool_title($nameTools); if (isset($msgError)) { Display::display_error_message($msgError); @@ -396,6 +397,7 @@ if (isset($info_message)) { } } + // Readonly $sql = 'SELECT id, readonly FROM '.$dbTable.' WHERE path LIKE BINARY "'.$dir.$doc.'"'; $rs = Database::query($sql); @@ -492,7 +494,9 @@ if ($owner_id == api_get_user_id() || api_is_platform_admin() || $is_allowed_to_ /* $form->addElement('html', '
'); */ - if (isset($_REQUEST['curdirpath']) && $dir =='/certificates') { + show_return($parent_id, $dir_original, $call_from_tool, $slide_id, $is_certificate_mode); + + if ($is_certificate_mode) { $all_information_by_create_certificate=DocumentManager::get_all_info_to_certificate(api_get_user_id(), api_get_course_id()); $str_info=''; foreach ($all_information_by_create_certificate[0] as $info_value) { @@ -500,9 +504,9 @@ if ($owner_id == api_get_user_id() || api_is_platform_admin() || $is_allowed_to_ } $create_certificate=get_lang('CreateCertificateWithTags'); Display::display_normal_message($create_certificate.':

'.$str_info,false); - } - show_return($parent_id, $dir_original, $call_from_tool, $slide_id, $is_certificate_mode); - if($extension=='svg' && !api_browser_support('svg') && api_get_setting('enabled_support_svg') == 'true'){ + } + + if ($extension=='svg' && !api_browser_support('svg') && api_get_setting('enabled_support_svg') == 'true'){ Display::display_warning_message(get_lang('BrowserDontSupportsSVG')); } $form->display(); diff --git a/main/gradebook/gradebook_display_certificate.php b/main/gradebook/gradebook_display_certificate.php index a5d403f4e4..7992a2ae7e 100755 --- a/main/gradebook/gradebook_display_certificate.php +++ b/main/gradebook/gradebook_display_certificate.php @@ -14,7 +14,9 @@ require_once '../inc/global.inc.php'; require_once 'lib/gradebook_functions.inc.php'; require_once 'lib/be.inc.php'; require_once 'lib/gradebook_data_generator.class.php'; -require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php'; + +require_once api_get_path(LIBRARY_PATH).'certificate.lib.php'; + //extra javascript functions for in html head: $htmlHeadXtra[] = @@ -32,31 +34,30 @@ if (!api_is_allowed_to_edit()) { api_not_allowed(true); } $interbreadcrumb[] = array ('url' => Security::remove_XSS($_SESSION['gradebook_dest']).'?', 'name' => get_lang('Gradebook')); -//$interbreadcrumb[] = array ('url' => Security::remove_XSS($_SESSION['gradebook_dest']).'?selectcat='.Security::remove_XSS($_GET['cat_id']),'name' => get_lang('Details')); -//$interbreadcrumb[] = array ('url' => 'gradebook_display_certificate.php?cat_id='.Security::remove_XSS($_GET['cat_id']),'name' => get_lang('GradebookListOfStudentsCertificates')); $interbreadcrumb[] = array ('url' => '#','name' => get_lang('GradebookListOfStudentsCertificates')); $this_section = SECTION_COURSES; Display::display_header(''); -if (isset($_GET['user_id']) && $_GET['user_id']==strval(intval($_GET['user_id'])) && isset($_GET['cat_id']) && $_GET['cat_id']==strval(intval($_GET['cat_id']))) { - if($_GET['action'] == 'delete') { - $info=delete_certificate($_GET['cat_id'],$_GET['user_id']); - if ($info===true) { - Display::display_confirmation_message(get_lang('CertificateRemoved')); - } else { - Display::display_error_message(get_lang('CertificateNotRemoved')); - } - } +if ($_GET['action'] == 'delete') { + $certificate = new Certificate($_GET['certificate_id']); + $result = $certificate->delete(); + if ($result ==true) { + Display::display_confirmation_message(get_lang('CertificateRemoved')); + } else { + Display::display_error_message(get_lang('CertificateNotRemoved')); + } } + echo Display::tag('h3', get_lang('GradebookListOfStudentsCertificates')); ?> get_data(GradebookDataGenerator :: GDG_SORT_NAME,0,null,true); + if (!empty($data_array)) { $newarray = array(); foreach ($data_array as $data) { @@ -89,7 +91,8 @@ echo Display::tag('h3', get_lang('GradebookListOfStudentsCertificates')); $total_resource_weight = $total_resource_weight + $item['2']; } } - } + } + if ($total_resource_weight != $total_weight) { Display::display_warning_message(get_lang('SumOfActivitiesWeightMustBeEqualToTotalWeight')); } @@ -103,10 +106,10 @@ echo Display::tag('h3', get_lang('GradebookListOfStudentsCertificates')); } else { foreach ($certificate_list as $index=>$value) { ?> - + - +
@@ -119,12 +122,13 @@ echo Display::tag('h3', get_lang('GradebookListOfStudentsCertificates')); $_SESSION['gradebook_dest'].'?selectcat=' . Security::remove_XSS($_GET['selectcat']),'name' => get_lang('ToolGradebook')); Display :: display_header(get_lang('FlatView')); @@ -671,11 +671,7 @@ if (isset ($_GET['studentoverview'])) { // add params to the future links (in the table shown) $addparams = array ('selectcat' => $cats[0]->get_id()); -/* -if (isset($_GET['search'])) { - $addparams['search'] = $keyword; -} -*/ + if (isset ($_GET['studentoverview'])) { $addparams['studentoverview'] = ''; } @@ -735,11 +731,15 @@ if ($category != '0') { $certificate_min_score = $cats[0]->get_certificate_min_score(); $scoredisplay = ScoreDisplay :: instance(); $scoretotal_display = $scoredisplay->display_score($scoretotal,SCORE_DIV_PERCENT); //a student always sees only the teacher's repartition - //$score_compare = ($scoretotal[0] / $scoretotal[1]) * 100; //build the total percentage obtained in order to compare it to the minimum certification percentage + if (isset($certificate_min_score) && $item_value >= $certificate_min_score) { - $url = api_get_path(WEB_CODE_PATH) .'gradebook/'.Security::remove_XSS($_SESSION['gradebook_dest']).'?export_certificate=yes&cat_id='.$cats[0]->get_id(); - $my_certificate = get_certificate_by_user_id($cats[0]->get_id(), api_get_user_id()); + + if (empty($my_certificate)) { + register_user_info_about_certificate($category_id, api_get_user_id(), $my_score_in_gradebook, api_get_utc_datetime()); + $my_certificate = get_certificate_by_user_id($cats[0]->get_id(), api_get_user_id()); + } + if (!empty($my_certificate)) { $url = api_get_path(WEB_PATH) .'certificates/?id='.$my_certificate['id']; $certificates = Display::url(Display::return_icon('certificate.png', get_lang('Certificates'), array(), 48), $url, array('target'=>'_blank')); @@ -753,9 +753,6 @@ if ($category != '0') { DisplayGradebook::display_header_gradebook($cats[0], 0, $category_id, $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); } if (api_is_allowed_to_edit(null, true)) { diff --git a/main/gradebook/lib/fe/displaygradebook.php b/main/gradebook/lib/fe/displaygradebook.php index 8d2afccd7a..5d635ef0be 100755 --- a/main/gradebook/lib/fe/displaygradebook.php +++ b/main/gradebook/lib/fe/displaygradebook.php @@ -337,18 +337,17 @@ class DisplayGradebook $my_course_id=api_get_course_id(); $my_file= substr($_SESSION['gradebook_dest'],0,5); - $header .= '
'_blank')); echo $certificates; ?> - + +
'.Display::return_icon('stats.png', get_lang('FlatView'),'','32').''; - - $header .= ''. - Display::return_icon('certificate.png', get_lang('AttachCertificate'),'','32'). - ''; - + $header .= ''.Display::return_icon('stats.png', get_lang('FlatView'),'','32').''; $header .= ''.Display::return_icon('certificate_list.png', get_lang('GradebookSeeListOfStudentsCertificates'),'','32').''; $visibility_icon = ($catobj->is_visible() == 0) ? 'invisible' : 'visible'; $visibility_command = ($catobj->is_visible() == 0) ? 'set_visible' : 'set_invisible'; - + + //Right icons $modify_icons = ''.Display::return_icon('edit.png', get_lang('Edit'),'','32').''; + $modify_icons .= ''. + Display::return_icon('certificate.png', get_lang('AttachCertificate'),'','32').''; + $modify_icons .= ''.Display::return_icon('percentage.png', get_lang('EditAllWeights'),'','32').''; $modify_icons .= ''.Display::return_icon('ranking.png', get_lang('ScoreEdit'),'','32').''; diff --git a/main/gradebook/lib/fe/gradebooktable.class.php b/main/gradebook/lib/fe/gradebooktable.class.php index fe459dbe69..beff22e98f 100755 --- a/main/gradebook/lib/fe/gradebooktable.class.php +++ b/main/gradebook/lib/fe/gradebooktable.class.php @@ -133,14 +133,7 @@ class GradebookTable extends SortableTable { // list of items inside the gradebook (exercises, lps, fora, etc) $row = array (); $item = $data[0]; - $id = $item->get_id(); - //the following condition seems strange to me - YW 20110421 - //GET['selectcat'] is the main gradebook. When defined, it means we are looking at the whole stuff instead of one sub-element (or something like that?) - - //if (empty($_GET['selectcat']) ) { //if not particular gradebook item was selected, take the certificate score for the current item - //$certificate_min_score = $this->build_certificate_min_score($item); - //} - //$_GET['selectcat'] is never empty jm 20110426 + $id = $item->get_id(); //if the item is invisible, wrap it in a span with class invisible $invisibility_span_open = (api_is_allowed_to_create_course() && $item->is_visible() == '0') ? '