@ -6,6 +6,7 @@
* @package chamilo.gradebook
* @package chamilo.gradebook
*/
*/
require_once '../inc/global.inc.php';
require_once '../inc/global.inc.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/fe/exportgradebook.php';
api_block_anonymous_users();
api_block_anonymous_users();
$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
@ -19,11 +20,11 @@ if (!$isDrhOfCourse) {
$interbreadcrumb[] = array(
$interbreadcrumb[] = array(
'url' => $_SESSION['gradebook_dest'],
'url' => $_SESSION['gradebook_dest'],
'name' => get_lang('Gradebook'
'name' => get_lang('Gradebook')
) );
);
//load the evaluation & category
//load the evaluation & category
$select_eval = Security::remove_XSS ($_GET['selecteval']);
$select_eval = intval ($_GET['selecteval']);
if (empty($select_eval)) {
if (empty($select_eval)) {
api_not_allowed();
api_not_allowed();
}
}
@ -35,10 +36,11 @@ if ($eval[0]->get_category_id() < 0) {
// if category id is negative, then the evaluation's origin is a link
// if category id is negative, then the evaluation's origin is a link
$link = LinkFactory :: get_evaluation_link($eval[0]->get_id());
$link = LinkFactory :: get_evaluation_link($eval[0]->get_id());
$currentcat = Category :: load($link->get_category_id());
$currentcat = Category :: load($link->get_category_id());
} else
} else {
$currentcat = Category :: load($eval[0]->get_category_id());
$currentcat = Category:: load($eval[0]->get_category_id());
//load the result with the evaluation id
}
//load the result with the evaluation id
if (isset($_GET['delete_mark'])) {
if (isset($_GET['delete_mark'])) {
$result = Result :: load($_GET['delete_mark']);
$result = Result :: load($_GET['delete_mark']);
if (!empty($result[0])) {
if (!empty($result[0])) {
@ -53,7 +55,6 @@ if (isset($_GET['selecteval'])) {
if (isset($_GET['editres'])) {
if (isset($_GET['editres'])) {
$edit_res_xml = Security::remove_XSS($_GET['editres']);
$edit_res_xml = Security::remove_XSS($_GET['editres']);
$select_eval_edit = Security::remove_XSS($_GET['selecteval']);
$resultedit = Result :: load($edit_res_xml);
$resultedit = Result :: load($edit_res_xml);
$edit_res_form = new EvalForm(
$edit_res_form = new EvalForm(
EvalForm :: TYPE_RESULT_EDIT,
EvalForm :: TYPE_RESULT_EDIT,
@ -61,39 +62,38 @@ if (isset($_GET['editres'])) {
$resultedit[0],
$resultedit[0],
'edit_result_form',
'edit_result_form',
null,
null,
api_get_self() . '?editres=' . $resultedit[0]->get_id() . '& selecteval=' . $select_eval_edit .'& '.api_get_cidreq()
api_get_self() . '?editres=' . $resultedit[0]->get_id() . '& selecteval=' . $select_eval.'& '.api_get_cidreq()
);
);
if ($edit_res_form->validate()) {
if ($edit_res_form->validate()) {
$values = $edit_res_form->exportValues();
$values = $edit_res_form->exportValues();
$result = new Result();
$result = new Result();
$resultlog = new Result();
$resultlog = new Result();
$resultlog->add_result__log($values['hid_user_id'], $select_eval_edit );
$resultlog->add_result__log($values['hid_user_id'], $select_eval);
$result->set_id($edit_res_xml);
$result->set_id($edit_res_xml);
$result->set_user_id($values['hid_user_id']);
$result->set_user_id($values['hid_user_id']);
$result->set_evaluation_id($select_eval_edit );
$result->set_evaluation_id($select_eval);
$row_value = isset($values['score']) ? (float) $values['score'] : 0;
$row_value = isset($values['score']) ? (float) $values['score'] : 0;
if (!empty($row_value) || $row_value == 0) {
if (!empty($row_value) || $row_value == 0) {
$result->set_score(floatval(number_format($row_value, api_get_setting('gradebook_number_decimals'))));
$result->set_score(floatval(number_format($row_value, api_get_setting('gradebook_number_decimals'))));
}
}
$result->save();
$result->save();
unset($result);
unset($result);
header('Location: gradebook_view_result.php?selecteval=' . $select_eval_edit . '&editresmessage=&'.api_get_cidreq());
header('Location: gradebook_view_result.php?selecteval=' . $select_eval . '&editresmessage=&'.api_get_cidreq());
exit;
exit;
}
}
}
}
$file_type = null;
$file_type = null;
if (isset($_GET['import'])) {
if (isset($_GET['import'])) {
$interbreadcrumb[] = array(
$interbreadcrumb[] = array(
'url' => 'gradebook_view_result.php?selecteval=' . Security::remove_XSS( $_GET[' selecteval']) .'& '.api_get_cidreq(),
'url' => api_get_path(WEB_CODE_PATH). 'gradebook/ gradebook_view_result.php?selecteval=' . $select_ eval.'& '.api_get_cidreq(),
'name' => get_lang('ViewResult')
'name' => get_lang('ViewResult')
);
);
$import_result_form = new DataForm(
$import_result_form = new DataForm(
DataForm :: TYPE_IMPORT,
DataForm :: TYPE_IMPORT,
'import_result_form',
'import_result_form',
null,
null,
api_get_self() . '?import=& selecteval=' . Security::remove_XSS( $_GET[' selecteval']) ,
api_get_self() . '?import=& selecteval=' . $select_ eval,
'_blank',
'_blank',
''
''
);
);
@ -122,7 +122,7 @@ if (isset($_GET['import'])) {
if (($importedresult['user_id'] == $allresult->get_user_id())) {
if (($importedresult['user_id'] == $allresult->get_user_id())) {
if ($importedresult['score'] != $allresult->get_score()) {
if ($importedresult['score'] != $allresult->get_score()) {
if (!isset($values['overwrite'])) {
if (!isset($values['overwrite'])) {
header('Location: gradebook_view_result.php?selecteval=' . Security::remove_XSS( $_GET[' selecteval']) . '& import_score_error=' . $importedresult['user_id']);
header('Location: '.api_get_path(WEB_CODE_PATH).'gradebook/ gradebook_view_result.php?selecteval=' . $select_ eval . '& import_score_error=' . $importedresult['user_id']);
exit;
exit;
break;
break;
} else {
} else {
@ -140,7 +140,7 @@ if (isset($_GET['import'])) {
}
}
}
}
if ($importedresult['user_id'] == null) {
if ($importedresult['user_id'] == null) {
header('Location: gradebook_view_result.php?selecteval=' . Security::remove_XSS( $_GET[' selecteval']) . '&incorrectdata=');
header('Location: gradebook_view_result.php?selecteval=' . $select_ eval . '&incorrectdata=');
exit;
exit;
}
}
$userinfo = api_get_user_info($importedresult['user_id']);
$userinfo = api_get_user_info($importedresult['user_id']);
@ -149,13 +149,13 @@ if (isset($_GET['import'])) {
$userinfo['official_code'] != $importedresult['official_code']
$userinfo['official_code'] != $importedresult['official_code']
) {
) {
if (!isset($values['ignoreerrors'])) {
if (!isset($values['ignoreerrors'])) {
header('Location: gradebook_view_result.php?selecteval=' . Security::remove_XSS( $_GET[' selecteval']) . '& import_user_error=' . $importedresult['user_id']);
header('Location: gradebook_view_result.php?selecteval=' . $select_ eval . '& import_user_error=' . $importedresult['user_id']);
exit;
exit;
}
}
}
}
if ($added != '1') {
if ($added != '1') {
if ($importedresult['score'] > $eval[0]->get_max()) {
if ($importedresult['score'] > $eval[0]->get_max()) {
header('Location: gradebook_view_result.php?selecteval=' . Security::remove_XSS( $_GET[' selecteval']) . '&overwritemax=');
header('Location: gradebook_view_result.php?selecteval=' . $select_ eval . '&overwritemax=');
exit;
exit;
}
}
$result = new Result();
$result = new Result();
@ -168,36 +168,39 @@ if (isset($_GET['import'])) {
} else {
} else {
$result->set_date(api_get_utc_datetime());
$result->set_date(api_get_utc_datetime());
}
}
$result->set_evaluation_id($_GET[' selecteval'] );
$result->set_evaluation_id($select_ eval);
$result->add();
$result->add();
$nr_results_added++;
$nr_results_added++;
}
}
}
}
} else {
} else {
header('Location: ' . api_get_self() . '?import=& selecteval=' . Security::remove_XSS( $_GET[' selecteval']) . '&importnofile=');
header('Location: ' . api_get_self() . '?import=& selecteval=' . $select_ eval . '&importnofile=');
exit;
exit;
}
}
if ($overwritescore != 0) {
if ($overwritescore != 0) {
header('Location: ' . api_get_self() . '?selecteval=' . Security::remove_XSS( $_GET[' selecteval']) . '& importoverwritescore=' . $overwritescore);
header('Location: ' . api_get_self() . '?selecteval=' . $select_ eval. '& importoverwritescore=' . $overwritescore);
exit;
exit;
}
}
if ($nr_results_added == 0) {
if ($nr_results_added == 0) {
header('Location: ' . api_get_self() . '?selecteval=' . Security::remove_XSS( $_GET[' selecteval']) . '¬hingadded=');
header('Location: ' . api_get_self() . '?selecteval=' . $select_ eval. '¬hingadded=');
exit;
exit;
}
}
header('Location: ' . api_get_self() . '?selecteval=' . Security::remove_XSS( $_GET[' selecteval']) . '&importok=');
header('Location: ' . api_get_self() . '?selecteval=' . $select_ eval . '&importok=');
exit;
exit;
}
}
}
}
if (isset($_GET['export'])) {
if (isset($_GET['export'])) {
$interbreadcrumb[] = array('url' => 'gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']), 'name' => get_lang('ViewResult'));
$interbreadcrumb[] = array(
'url' => 'gradebook_view_result.php?selecteval='.$select_eval,
'name' => get_lang('ViewResult'),
);
$locked_status = $eval[0]->get_locked();
$locked_status = $eval[0]->get_locked();
$export_result_form = new DataForm(
$export_result_form = new DataForm(
DataForm :: TYPE_EXPORT,
DataForm :: TYPE_EXPORT,
'export_result_form',
'export_result_form',
null,
null,
api_get_self() . '?export=& selecteval=' . $_GET[' selecteval'] ,
api_get_self() . '?export=& selecteval=' . $select_ eval,
'_blank',
'_blank',
$locked_status
$locked_status
);
);
@ -209,7 +212,7 @@ if (isset($_GET['export'])) {
$export = $export_result_form->exportValues();
$export = $export_result_form->exportValues();
$file_type = $export['file_type'];
$file_type = $export['file_type'];
$filename = 'export_results_' . gmdate('Y-m-d_H-i-s');
$filename = 'export_results_' . gmdate('Y-m-d_H-i-s');
$results = Result :: load(null, null, Security::remove_XSS( $_GET[' selecteval']) );
$results = Result :: load(null, null, $select_ eval);
$data = array(); //when file type is csv, add a header to the output file
$data = array(); //when file type is csv, add a header to the output file
if ($file_type == 'csv') {
if ($file_type == 'csv') {
$alldata[] = array(
$alldata[] = array(
@ -332,11 +335,11 @@ if (isset($_GET['export'])) {
}
}
switch ($file_type) {
switch ($file_type) {
case 'xml' :
case 'xml':
Export :: arrayToXml($alldata, $filename, 'Result', 'XMLResults');
Export :: arrayToXml($alldata, $filename, 'Result', 'XMLResults');
exit;
exit;
break;
break;
case 'csv' :
case 'csv':
Export :: arrayToCsv($alldata, $filename);
Export :: arrayToCsv($alldata, $filename);
exit;
exit;
break;
break;
@ -347,7 +350,7 @@ if (isset($_GET['export'])) {
if (isset($_GET['resultdelete'])) {
if (isset($_GET['resultdelete'])) {
$result = Result :: load($_GET['resultdelete']);
$result = Result :: load($_GET['resultdelete']);
$result[0]->delete();
$result[0]->delete();
header('Location: gradebook_view_result.php?deleteresult=& selecteval=' . Security::remove_XSS( $_GET[' selecteval']) );
header('Location: gradebook_view_result.php?deleteresult=& selecteval=' . $select_ eval);
exit;
exit;
}
}
@ -357,14 +360,14 @@ if (isset($_POST['action'])) {
Display :: display_warning_message(get_lang('NoItemsSelected'), false);
Display :: display_warning_message(get_lang('NoItemsSelected'), false);
} else {
} else {
switch ($_POST['action']) {
switch ($_POST['action']) {
case 'delete' :
case 'delete':
$number_of_deleted_results = 0;
$number_of_deleted_results = 0;
foreach ($_POST['id'] as $indexstr) {
foreach ($_POST['id'] as $indexstr) {
$result = Result :: load($indexstr);
$result = Result :: load($indexstr);
$result[0]->delete();
$result[0]->delete();
$number_of_deleted_results++;
$number_of_deleted_results++;
}
}
header('Location: gradebook_view_result.php?massdelete=& selecteval=' . Security::remove_XSS( $_GET[' selecteval']) );
header('Location: gradebook_view_result.php?massdelete=& selecteval=' . $select_ eval);
exit;
exit;
break;
break;
}
}
@ -403,8 +406,7 @@ if (isset($_GET['print'])) {
$resulttable = new ResultTable($eval[0], $allresults, $iscourse, $addparams);
$resulttable = new ResultTable($eval[0], $allresults, $iscourse, $addparams);
}
}
$htmlHeadXtra[] = '< script type = "text/javascript" >
$htmlHeadXtra[] = '< script >
function confirmationuser() {
function confirmationuser() {
if (confirm("' . get_lang('DeleteUser') . '?"))
if (confirm("' . get_lang('DeleteUser') . '?"))
{return true;}
{return true;}
@ -421,17 +423,20 @@ function confirmationall () {
< / script > ';
< / script > ';
if (isset($_GET['deleteall'])) {
if (isset($_GET['deleteall'])) {
$eval[0]->delete_results();
$eval[0]->delete_results();
header('Location: gradebook_view_result.php?allresdeleted=& selecteval=' . Security::remove_XSS($_GET['selecteval']));
header('Location: '.api_get_path(WEB_CODE_PATH).'gradebook/ gradebook_view_result.php?allresdeleted=& selecteval=' . $select_eval.'&'.api_get_cidreq());
exit;
exit;
}
}
if (( !isset($_GET['export']) ) & & (!isset($_GET['import']))) {
if (!isset($_GET['export']) & & (!isset($_GET['import']))) {
if (!isset($_GET['selectcat'])) {
if (!isset($_GET['selectcat'])) {
$interbreadcrumb[] = array(
$interbreadcrumb[] = array(
'url' => $_SESSION['gradebook_dest'] . '?selectcat=' . $currentcat[0]->get_id(),
'url' => $_SESSION['gradebook_dest'] . '?selectcat=' . $currentcat[0]->get_id().'& '.api_get_cidreq() ,
'name' => get_lang('Details')
'name' => get_lang('Details')
);
);
}
}
$interbreadcrumb[] = array('url' => 'gradebook_view_result.php' . '?selecteval=' . Security::remove_XSS($_GET['selecteval']), 'name' => get_lang('ViewResult'));
$interbreadcrumb[] = array(
'url' => api_get_path(WEB_CODE_PATH).'gradebook/gradebook_view_result.php?selecteval='.$select_eval.'& '.api_get_cidreq(),
'name' => get_lang('ViewResult'),
);
Display :: display_header('');
Display :: display_header('');
}
}
if (isset($_GET['addresultnostudents'])) {
if (isset($_GET['addresultnostudents'])) {
@ -483,7 +488,9 @@ if (isset($_GET['importoverwritescore'])) {
}
}
if (isset($_GET['import_user_error'])) {
if (isset($_GET['import_user_error'])) {
$userinfo = api_get_user_info($_GET['import_user_error']);
$userinfo = api_get_user_info($_GET['import_user_error']);
Display :: display_warning_message(get_lang('UserInfoDoesNotMatch') . ' ' . api_get_person_name($userinfo['firstname'], $userinfo['lastname']));
Display:: display_warning_message(
get_lang('UserInfoDoesNotMatch').' '.api_get_person_name($userinfo['firstname'], $userinfo['lastname'])
);
}
}
if (isset($_GET['allresdeleted'])) {
if (isset($_GET['allresdeleted'])) {
Display :: display_confirmation_message(get_lang('AllResultDeleted'));
Display :: display_confirmation_message(get_lang('AllResultDeleted'));
@ -492,7 +499,8 @@ if (isset($_GET['import_score_error'])) {
$userinfo = api_get_user_info($_GET['import_score_error']);
$userinfo = api_get_user_info($_GET['import_score_error']);
Display :: display_warning_message(get_lang('ScoreDoesNotMatch') . ' ' . api_get_person_name($userinfo['firstname'], $userinfo['lastname']));
Display :: display_warning_message(get_lang('ScoreDoesNotMatch') . ' ' . api_get_person_name($userinfo['firstname'], $userinfo['lastname']));
}
}
if ($file_type == null) { //show the result header
if ($file_type == null) {
//show the result header
if (isset($export_result_form) & & !(isset($edit_res_form))) {
if (isset($export_result_form) & & !(isset($edit_res_form))) {
echo $export_result_form->display();
echo $export_result_form->display();
DisplayGradebook :: display_header_result($eval[0], $currentcat[0]->get_id(), 1);
DisplayGradebook :: display_header_result($eval[0], $currentcat[0]->get_id(), 1);