Adding "lock" features in the gradebook, we can lock a gradebook category then all elements will be locked. locked means that the teacher can't review/edit the users results. Only the admin ca unlock it. This feature needs to be enabled in the platform settings see #4080

skala
Julio Montoya 14 years ago
parent 92293fb2a3
commit 44ca552077
  1. 7
      main/attendance/attendance_add.php
  2. 8
      main/attendance/attendance_controller.php
  3. 15
      main/attendance/attendance_edit.php
  4. 17
      main/attendance/attendance_sheet.php
  5. 2
      main/attendance/index.php
  6. 55
      main/exercice/exercice.php
  7. 10
      main/exercice/exercise.lib.php
  8. 8
      main/exercice/exercise_report.php
  9. 29
      main/exercice/exercise_show.php
  10. 4
      main/exercice/question.class.php
  11. 11
      main/forum/editpost.php
  12. 61
      main/forum/forumfunction.inc.php
  13. 31
      main/forum/newthread.php
  14. 31
      main/forum/viewforum.php
  15. 2
      main/gradebook/gradebook_add_link.php
  16. 3
      main/gradebook/gradebook_edit_eval.php
  17. 24
      main/gradebook/gradebook_edit_link.php
  18. 3
      main/gradebook/lib/be/abstractlink.class.php
  19. 33
      main/gradebook/lib/be/forumthreadlink.class.php
  20. 7
      main/gradebook/lib/fe/evalform.class.php
  21. 6
      main/gradebook/lib/fe/gradebooktable.class.php
  22. 2
      main/gradebook/lib/fe/linkform.class.php
  23. 201
      main/gradebook/lib/gradebook_functions.inc.php
  24. BIN
      main/img/icons/16/lock.png
  25. BIN
      main/img/icons/22/clean_na.png
  26. BIN
      main/img/icons/22/rate_work_na.png
  27. 25
      main/inc/lib/attendance.lib.php
  28. 27
      main/inc/lib/main_api.lib.php
  29. 6
      main/newscorm/learnpath.class.php
  30. 21
      main/newscorm/lp_controller.php
  31. 11
      main/survey/create_new_survey.php
  32. 131
      main/work/work.lib.php
  33. 104
      main/work/work.php

@ -24,7 +24,7 @@ if (!$error) {
$token = Security::get_token();
}
// display form
$form = new FormValidator('attendance_add','POST','index.php?action=attendance_add&'.api_get_cidreq().$param_gradebook,'','style="width: 100%;"');
$form = new FormValidator('attendance_add','POST','index.php?action=attendance_add&'.api_get_cidreq().$param_gradebook);
$form->addElement('header', '', get_lang('CreateANewAttendance'));
$form->addElement('hidden', 'sec_token', $token);
@ -41,7 +41,10 @@ $form->addElement('html','<div id="id_qualify" style="display:none">');
// Qualify Attendance for gradebook option
$form->addElement('checkbox', 'attendance_qualify_gradebook', '', get_lang('QualifyAttendanceGradebook'),'onclick="javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"');
$form -> addElement('html','<div id="options_field" style="display:none">');
$form->addElement('html','<div id="options_field" style="display:none">');
load_gradebook_select_in_tool($form);
$form->addElement('text', 'attendance_qualify_title', get_lang('TitleColumnGradebook'));
$form->applyFilter('attendance_qualify_title', 'html_filter');
$form->addElement('text', 'attendance_weight', get_lang('QualifyWeight'),'value="0.00" Style="width:40px" onfocus="javascript: this.select();"');

@ -68,6 +68,7 @@
if ( isset($_POST['attendance_qualify_gradebook']) && $_POST['attendance_qualify_gradebook'] == 1 ) {
$link_to_gradebook = true;
}
$attendance->category_id = $_POST['category_id'];
$last_id = $attendance->attendance_add($link_to_gradebook);
Security::clear_token();
}
@ -84,8 +85,6 @@
$this->view->set_template('attendance_add');
$this->view->render();
}
} else {
$this->view->set_data($data);
$this->view->set_layout('layout');
@ -114,7 +113,8 @@
$attendance->set_description($_POST['description']);
$attendance->set_attendance_qualify_title($_POST['attendance_qualify_title']);
$attendance->set_attendance_weight($_POST['attendance_weight']);
$attendance->category_id = $_POST['category_id'];
$link_to_gradebook = false;
if ( isset($_POST['attendance_qualify_gradebook']) && $_POST['attendance_qualify_gradebook'] == 1 ) {
$link_to_gradebook = true;
@ -229,7 +229,7 @@
}
if (api_is_allowed_to_edit(null, true)) {
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
} else {
if (!empty($student_id)) {
$user_id = intval($student_id);

@ -27,7 +27,7 @@ if (!$error) {
$attendance_weight = floatval($attendance_weight);
// display form
$form = new FormValidator('attendance_edit','POST','index.php?action=attendance_edit&'.api_get_cidreq().'&attendance_id='.$attendance_id.$param_gradebook,'','style="width: 100%;"');
$form = new FormValidator('attendance_edit','POST','index.php?action=attendance_edit&'.api_get_cidreq().'&attendance_id='.$attendance_id.$param_gradebook);
$form->addElement('header', '', get_lang('Edit'));
$form->addElement('hidden', 'sec_token',$token);
$form->addElement('hidden', 'attendance_id', $attendance_id);
@ -42,16 +42,17 @@ if (!empty($attendance_qualify_title) || !empty($attendance_weight)) {
$advanced = '<a href="javascript://" class="advanced_parameters"><span id="img_plus_and_minus">&nbsp;'.Display::return_icon('div_hide.gif',get_lang('Show'),array('style'=>'vertical-align:middle')).' '.get_lang('AdvancedParameters').'</span></a>';
$form -> addElement('advanced_settings',$advanced);
$form->addElement('html','<div id="id_qualify" style="display:block">');
$form->addElement('html','<div id="id_qualify" style="display:block">');
$form->addElement('checkbox', 'attendance_qualify_gradebook', '', get_lang('QualifyAttendanceGradebook'),array('checked'=>'true','onclick'=>'javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}'));
$form -> addElement('html','<div id="options_field" style="display:block">');
} else {
$advanced = '<a href="javascript://" class="advanced_parameters"><span id="img_plus_and_minus">&nbsp;'.Display::return_icon('div_show.gif',get_lang('Show'),array('style'=>'vertical-align:middle')).' '.get_lang('AdvancedParameters').'</span></a>';
$form -> addElement('advanced_settings',$advanced);
$form->addElement('html','<div id="id_qualify" style="display:none">');
$form->addElement('html','<div id="id_qualify" style="display:none">');
$form->addElement('checkbox', 'attendance_qualify_gradebook', '', get_lang('QualifyAttendanceGradebook'),'onclick="javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"');
$form -> addElement('html','<div id="options_field" style="display:none">');
}
load_gradebook_select_in_tool($form);
$form->addElement('text', 'attendance_qualify_title', get_lang('TitleColumnGradebook'));
$form->applyFilter('attendance_qualify_title', 'html_filter');
$form->addElement('text', 'attendance_weight', get_lang('QualifyWeight'),'value="0.00" Style="width:40px" onfocus="javascript: this.select();"');
@ -59,7 +60,7 @@ $form->applyFilter('attendance_weight', 'html_filter');
$form->addElement('html','</div>');
$form->addElement('html','</div>');
//$form->addElement('html','<div class="clear" style="margin-top:50px;"></div>');
$form->addElement('style_submit_button', null, get_lang('Save'), 'class="save"');
// set default values
@ -67,6 +68,8 @@ $default['title'] = Security::remove_XSS($title);
$default['description'] = Security::remove_XSS($description,STUDENT);
$default['attendance_qualify_title'] = $attendance_qualify_title;
$default['attendance_weight'] = $attendance_weight;
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 7, $attendance_id, api_get_session_id());
$default['category_id'] = $link_info['category_id'];
$form->setDefaults($default);
$form->display();
?>
$form->display();

@ -203,9 +203,12 @@ if (api_is_allowed_to_edit(null, true)) {
}
$result .= '<th height="80px" width="800px">';
$result .= '<center><div style="font-size:10px;width:80px;">'.$datetime.'&nbsp;';
$result .= '<center><div style="font-size:10px;width:80px;">'.$datetime.'&nbsp;';
$result .= '<span id="attendance_lock" style="cursor:pointer">'.(!$is_locked_attendance || api_is_platform_admin()?$img_lock:'').'</span>';
$result .= '<br /><input type="checkbox" class="checkbox_head_'.$calendar['id'].'" id="checkbox_head_'.$calendar['id'].'" '.$disabled_check.' checked="checked" />'.$input_hidden.'</div></center></th>';
if ($is_locked_attendance == false) {
$result .= '<br /><input type="checkbox" class="checkbox_head_'.$calendar['id'].'" id="checkbox_head_'.$calendar['id'].'" '.$disabled_check.' checked="checked" />'.$input_hidden.'</div></center></th>';
}
}
} else {
$result = '<th width="2000px"><span><a href="index.php?'.api_get_cidreq().'&action=calendar_list&attendance_id='.$attendance_id.$param_gradebook.'">';
@ -219,8 +222,7 @@ if (api_is_allowed_to_edit(null, true)) {
<tr class="tableWithFloatingHeader row_odd">
<?php echo $result; ?>
</tr>
</tr>
</thead>
<tbody>
<?php
@ -233,10 +235,13 @@ if (api_is_allowed_to_edit(null, true)) {
<tr class="<?php echo $class ?>">
<?php
if (count($attendant_calendar) > 0 ) {
foreach ($attendant_calendar as $calendar) {
$checked = 'checked';
$checked = 'checked';
$presence = null;
if (isset($users_presence[$user['user_id']][$calendar['id']]['presence'])) {
$presence = $users_presence[$user['user_id']][$calendar['id']]['presence'];
$presence = $users_presence[$user['user_id']][$calendar['id']]['presence'];
if (intval($presence) == 1) {
$checked = 'checked';
} else {

@ -10,7 +10,7 @@
*/
// name of the language file that needs to be included
$language_file = array ('course_description', 'course_info', 'pedaSuggest', 'userInfo', 'admin', 'agenda','tracking', 'trad4all');
$language_file = array ('course_description', 'course_info', 'pedaSuggest', 'userInfo', 'admin', 'agenda','tracking', 'gradebook');
// including files
require_once '../inc/global.inc.php';

@ -115,8 +115,6 @@ if ($page < 0) {
$page = 1;
}
if (!empty($_GET['gradebook']) && $_GET['gradebook']=='view' ) {
$_SESSION['gradebook']=Security::remove_XSS($_GET['gradebook']);
$gradebook= $_SESSION['gradebook'];
@ -216,26 +214,28 @@ if ($is_allowedToEdit) {
$objExerciseTmp = new Exercise();
$check = Security::check_token('get');
$exercise_action_locked = api_resource_is_locked_by_gradebook($exerciseId);
if ($objExerciseTmp->read($exerciseId)) {
if ($check) {
switch ($choice) {
case 'delete' : // deletes an exercise
$objExerciseTmp->delete();
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$link_id = is_resource_in_course_gradebook(api_get_course_id(), 1 , $exerciseId, api_get_session_id());
if ($link_id !== false) {
remove_resource_from_course_gradebook($link_id);
}
Display :: display_confirmation_message(get_lang('ExerciseDeleted'));
if ($exercise_action_locked == false) {
$objExerciseTmp->delete();
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 1 , $exerciseId, api_get_session_id());
if ($link_info !== false) {
remove_resource_from_course_gradebook($link_info['id']);
}
Display :: display_confirmation_message(get_lang('ExerciseDeleted'));
}
break;
case 'enable' : // enables an exercise
$objExerciseTmp->enable();
$objExerciseTmp->save();
$objExerciseTmp->save();
api_item_property_update($course_info, TOOL_QUIZ, $objExerciseTmp->id,'visible', api_get_user_id());
// "WHAT'S NEW" notification: update table item_property (previously last_tooledit)
Display :: display_confirmation_message(get_lang('VisibilityChanged'));
break;
case 'disable' : // disables an exercise
$objExerciseTmp->disable();
@ -254,13 +254,15 @@ if ($is_allowedToEdit) {
Display :: display_confirmation_message(get_lang('ResultsEnabled'));
break;
case 'clean_results' : //clean student results
$quantity_results_deleted= $objExerciseTmp->clean_results();
Display :: display_confirmation_message(sprintf(get_lang('XResultsCleaned'),$quantity_results_deleted));
break;
if ($exercise_action_locked == false) {
$quantity_results_deleted= $objExerciseTmp->clean_results();
Display :: display_confirmation_message(sprintf(get_lang('XResultsCleaned'),$quantity_results_deleted));
}
break;
case 'copy_exercise' : //copy an exercise
$objExerciseTmp->copy_exercise();
Display :: display_confirmation_message(get_lang('ExerciseCopied'));
break;
$objExerciseTmp->copy_exercise();
Display :: display_confirmation_message(get_lang('ExerciseCopied'));
break;
}
}
}
@ -453,6 +455,9 @@ if (!empty($exercise_list)) {
if (!empty($exercise_list))
foreach ($exercise_list as $row) {
$my_exercise_id = $row['id'];
$locked = api_resource_is_locked_by_gradebook($my_exercise_id);
//echo '<div id="tabs-'.$i.'">';
$i++;
//validacion when belongs to a session
@ -570,8 +575,12 @@ if (!empty($exercise_list)) {
//Export
$actions .= Display::url(Display::return_icon('cd.gif', get_lang('CopyExercise')), '', array('onclick'=>"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('AreYouSureToCopy'),ENT_QUOTES,$charset))." ".addslashes($row['title'])."?"."')) return false;",'href'=>'exercice.php?'.api_get_cidreq().'&choice=copy_exercise&sec_token='.$token.'&exerciseId='.$row['id']));
//Clean exercise
$actions .= Display::url(Display::return_icon('clean.png', get_lang('CleanStudentResults'),'',ICON_SIZE_SMALL),'', array('onclick'=>"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('AreYouSureToDeleteResults'),ENT_QUOTES,$charset))." ".addslashes($row['title'])."?"."')) return false;",'href'=>'exercice.php?'.api_get_cidreq().'&choice=clean_results&sec_token='.$token.'&exerciseId='.$row['id']));
//Clean exercise
if ($locked == false) {
$actions .= Display::url(Display::return_icon('clean.png', get_lang('CleanStudentResults'),'',ICON_SIZE_SMALL),'', array('onclick'=>"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('AreYouSureToDeleteResults'),ENT_QUOTES,$charset))." ".addslashes($row['title'])."?"."')) return false;",'href'=>'exercice.php?'.api_get_cidreq().'&choice=clean_results&sec_token='.$token.'&exerciseId='.$row['id']));
} else {
$actions .= Display::return_icon('clean_na.png', get_lang('ResourceLockedByGradebook'),'',ICON_SIZE_SMALL);
}
//Visible / invisible
if ($row['active']) {
$actions .= Display::url(Display::return_icon('visible.png', get_lang('Deactivate'),'',ICON_SIZE_SMALL) , 'exercice.php?'.api_get_cidreq().'&choice=disable&sec_token='.$token.'&page='.$page.'&exerciseId='.$row['id']);
@ -589,7 +598,11 @@ if (!empty($exercise_list)) {
//Delete
if ($session_id == $row['session_id']) {
$actions .= Display::url(Display::return_icon('delete.png', get_lang('Delete'),'',ICON_SIZE_SMALL), '', array('onclick'=>"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('AreYouSureToDelete'),ENT_QUOTES,$charset))." ".addslashes($row['title'])."?"."')) return false;",'href'=>'exercice.php?'.api_get_cidreq().'&choice=delete&sec_token='.$token.'&exerciseId='.$row['id']));
if ($locked == false) {
$actions .= Display::url(Display::return_icon('delete.png', get_lang('Delete'),'',ICON_SIZE_SMALL), '', array('onclick'=>"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('AreYouSureToDelete'),ENT_QUOTES,$charset))." ".addslashes($row['title'])."?"."')) return false;",'href'=>'exercice.php?'.api_get_cidreq().'&choice=delete&sec_token='.$token.'&exerciseId='.$row['id']));
} else {
$actions .= Display::return_icon('delete_na.png', get_lang('ResourceLockedByGradebook'),'',ICON_SIZE_SMALL);
}
}
// Number of questions

@ -1027,6 +1027,8 @@ function get_exam_results_data($from, $number_of_items, $column, $direction, $ex
$user_list_id = array ();
$duration_list = '';
$locked = api_resource_is_locked_by_gradebook($exercise_id);
for ($i = 0; $i < $sizeof; $i++) {
$revised = $results[$i]['revised'];
@ -1119,9 +1121,11 @@ function get_exam_results_data($from, $number_of_items, $column, $direction, $ex
$actions .=' <a href="exercise_history.php?'.api_get_cidreq().'&exe_id=' . $id . '">' .Display :: return_icon('history.gif', get_lang('ViewHistoryChange')).'</a>';
}
}
if (api_is_platform_admin() || $is_tutor) {
$actions .=' <a href="exercise_report.php?'.api_get_cidreq().'&filter_by_user='.intval($_GET['filter_by_user']).'&filter=' . $filter . '&exerciseId='.$exercise_id.'&delete=delete&did=' . $id . '" onclick="javascript:if(!confirm(\'' . sprintf(get_lang('DeleteAttempt'), $user, $dt) . '\')) return false;">'.Display :: return_icon('delete.png', get_lang('Delete')).'</a>';
$actions .='&nbsp;';
if (api_is_platform_admin() || $is_tutor) {
if ($locked == false) {
$actions .=' <a href="exercise_report.php?'.api_get_cidreq().'&filter_by_user='.intval($_GET['filter_by_user']).'&filter=' . $filter . '&exerciseId='.$exercise_id.'&delete=delete&did=' . $id . '" onclick="javascript:if(!confirm(\'' . sprintf(get_lang('DeleteAttempt'), $user, $dt) . '\')) return false;">'.Display :: return_icon('delete.png', get_lang('Delete')).'</a>';
$actions .='&nbsp;';
}
}
} else {
$attempt_url = api_get_path(WEB_CODE_PATH).'exercice/result.php?'.api_get_cidreq().'&id='.$results[$i]['exe_id'].'&id_session='.api_get_session_id().'&height=500&width=750';

@ -58,6 +58,9 @@ $TBL_LP_ITEM_VIEW = Database :: get_course_table(TABLE_LP_ITEM_VIEW);
$course_id = api_get_course_int_id();
$exercise_id = isset($_REQUEST['exerciseId']) ? intval($_REQUEST['exerciseId']) : null;
$locked = api_resource_is_locked_by_gradebook($exercise_id);
if (empty($exercise_id)) {
api_not_allowed();
}
@ -222,15 +225,16 @@ if ($is_allowedToEdit && $origin != 'learnpath') {
}
//Deleting an attempt
if ( ($is_allowedToEdit || $is_tutor || api_is_coach()) && $_GET['delete'] == 'delete' && !empty ($_GET['did'])) {
if ( ($is_allowedToEdit || $is_tutor || api_is_coach()) && $_GET['delete'] == 'delete' && !empty ($_GET['did']) && $locked == false) {
$exe_id = intval($_GET['did']);
if (!empty($exe_id)) {
if (!empty($exe_id)) {
$sql = 'DELETE FROM '.$TBL_TRACK_EXERCICES.' WHERE exe_id = '.$exe_id;
Database::query($sql);
$sql = 'DELETE FROM '.$TBL_TRACK_ATTEMPT.' WHERE exe_id = '.$exe_id;
Database::query($sql);
header('Location: exercise_report.php?cidReq=' . Security::remove_XSS($_GET['cidReq']) . '&exerciseId='.$exercise_id);
exit;
}
}

@ -36,11 +36,7 @@ else
// Database table definitions
$TBL_EXERCICE_QUESTION = Database::get_course_table(TABLE_QUIZ_TEST_QUESTION);
$TBL_EXERCICES = Database::get_course_table(TABLE_QUIZ_TEST);
$TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION);
$TBL_REPONSES = Database::get_course_table(TABLE_QUIZ_ANSWER);
$main_user_table = Database::get_main_table(TABLE_MAIN_USER);
$main_course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$TBL_TRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$TBL_TRACK_ATTEMPT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
@ -58,9 +54,7 @@ if ( empty ( $objExercise ) ) { $objExercise = $_SESSION['objExercise
if ( empty ( $exeId ) ) { $exeId = $_REQUEST['id'];}
if ( empty ( $action ) ) { $action = $_REQUEST['action']; }
//$emailId = $_REQUEST['email'];
$id = intval($_REQUEST['id']); //exe id
$current_time = time();
if (empty($id)) {
api_not_allowed();
@ -83,9 +77,10 @@ $student_id = $track_exercise_info['exe_user_id'];
$learnpath_id = $track_exercise_info['orig_lp_id'];
$learnpath_item_id = $track_exercise_info['orig_lp_item_id'];
$lp_item_view_id = $track_exercise_info['orig_lp_item_view_id'];
$course_code = api_get_course_id();
$current_user_id = api_get_user_id();
$locked = api_resource_is_locked_by_gradebook($exercise_id);
if (empty($objExercise)) {
$objExercise = new Exercise();
$objExercise->read($exercise_id);
@ -123,7 +118,7 @@ $interbreadcrumb[]=array("url" => "exercice.php?gradebook=$gradebook","name" =>
$interbreadcrumb[]=array("url" => "overview.php?exerciseId=".$exercise_id.'&id_session='.api_get_session_id(),"name" => $objExercise->name);
$interbreadcrumb[]=array("url" => "#","name" => get_lang('Result'));
$this_section=SECTION_COURSES;
$this_section = SECTION_COURSES;
if ($origin != 'learnpath') {
Display::display_header('');
@ -161,7 +156,6 @@ function getFCK(vals,marksid) {
oHidden.value = oEditor.GetXHTML(true);
f.appendChild(oHidden);
}
//f.submit();
}
</script>
<?php
@ -211,7 +205,7 @@ if (!empty($track_exercise_info)) {
if ($origin == 'learnpath' && !isset($_GET['fb_type']) ) {
$show_results = false;
}
$html = '';
if ($show_results || $show_only_total_score) {
$user_info = api_get_user_info($student_id);
//Shows exercise header
@ -279,12 +273,10 @@ foreach ($questionList as $questionId) {
unset($objQuestionTmp);
// creates a temporary Question object
$objQuestionTmp = Question::read($questionId);
$questionName = $objQuestionTmp->selectTitle();
$questionDescription= $objQuestionTmp->selectDescription();
$objQuestionTmp = Question::read($questionId);
$questionWeighting = $objQuestionTmp->selectWeighting();
$answerType = $objQuestionTmp->selectType();
$quesId = $objQuestionTmp->selectId();
if ($show_results) {
// display question category, if any
@ -492,11 +484,11 @@ foreach ($questionList as $questionId) {
}
}
if ($show_results) {
if ($show_results) {
echo '<table width="100%" border="0" cellspacing="3" cellpadding="0">';
if ($is_allowedToEdit) {
if ($is_allowedToEdit && $locked == false) {
echo '<tr><td>';
$name = "fckdiv".$questionId;
$marksname = "marksName".$questionId;
@ -536,6 +528,7 @@ foreach ($questionList as $questionId) {
$feedback_form->setDefaults(${user.$questionId});
$feedback_form->display();
echo '</div>';
} else {
$comnt = get_comments($id,$questionId);
echo '<tr><td><br />';
@ -616,7 +609,7 @@ if (is_array($arrid) && is_array($arrmarks)) {
$marksid = implode(",",$arrmarks);
}
if ($is_allowedToEdit) {
if ($is_allowedToEdit && $locked == false) {
if (in_array($origin, array('tracking_course','user_course','correct_exercise_in_lp'))) {
echo ' <form name="myform" id="myform" action="exercise_report.php?exerciseId='.$exercise_id.'&filter=2&comments=update&exeid='.$id.'&origin='.$origin.'&details=true&course='.Security::remove_XSS($_GET['cidReq']).$fromlink.'" method="post">';
//echo ' <input type = "hidden" name="totalWeighting" value="'.$totalWeighting.'">';

@ -1278,8 +1278,8 @@ abstract class Question
foreach ($question_type_custom_list as $i=>$a_type) {
// include the class of the type
require_once($a_type[0]);
// get the picture of the type and the langvar which describes it
$img = $explanation = '';
// get the picture of the type and the langvar which describes it
$img = $explanation = '';
eval('$img = '.$a_type[1].'::$typePicture;');
eval('$explanation = get_lang('.$a_type[1].'::$explanationLangVar);');
echo '<li>';

@ -25,7 +25,7 @@
/* INIT SECTION */
// Language files that need to be included.
$language_file = array ('forum', 'group');
$language_file = array ('forum', 'group', 'gradebook');
// Including the global initialization file.
require_once '../inc/global.inc.php';
@ -81,6 +81,8 @@ $current_forum = get_forum_information($_GET['forum']); // Note: This h
$current_forum_category = get_forumcategory_information($current_forum['forum_category']);
$current_post = get_post_information($_GET['post']);
block_course_item_locked_by_gradebook($_GET['thread']);
/* Header and Breadcrumbs */
if (isset($_SESSION['gradebook'])) {
@ -211,9 +213,10 @@ if (!empty($values) and isset($_POST['SubmitPost'])) {
$weight_calification = $values['weight_calification'];
$description = '';
$session_id = api_get_session_id();
$link_id = is_resource_in_course_gradebook(api_get_course_id(), 5, $id, $session_id);
if (!$link_id) {
add_resource_to_course_gradebook(api_get_course_id(), 5, $id, $title_gradebook, $weight_calification, $value_calification, $description, time(), 1, api_get_session_id());
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 5, $id, $session_id);
$link_id = $link_info['id'];
if (!$link_info) {
add_resource_to_course_gradebook($values['category_id'], api_get_course_id(), 5, $id, $title_gradebook, $weight_calification, $value_calification, $description, 1, api_get_session_id());
} else {
Database::query('UPDATE '.$table_link.' SET weight='.$weight_calification.' WHERE id='.$link_id.'');
}

@ -84,9 +84,9 @@ function handle_forum_and_forumcategories($lp_id = null) {
for ($i = 0; $i < count($list_threads); $i++) {
delete_forum_forumcategory_thread('thread', $list_threads[$i]['thread_id']);
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$link_id = is_resource_in_course_gradebook(api_get_course_id(), 5 , intval($list_threads[$i]['thread_id']), api_get_session_id());
if ($link_id !== false) {
remove_resource_from_course_gradebook($link_id);
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 5 , intval($list_threads[$i]['thread_id']), api_get_session_id());
if ($link_info !== false) {
remove_resource_from_course_gradebook($link_info['id']);
}
}
$return_message = delete_forum_forumcategory_thread($_GET['content'], $_GET['id']);
@ -1905,9 +1905,7 @@ function store_thread($values) {
$maxqualify = $values['numeric_calification'];
$weigthqualify = $values['weight_calification'];
$resourcedescription = '';
$date = time();
//is_resource_in_course_gradebook($course_code, $resource_type, $resource_id);
add_resource_to_course_gradebook($coursecode, $resourcetype, $resourceid, $resourcename, $weigthqualify, $maxqualify, $resourcedescription, $date, 0, api_get_session_id());
add_resource_to_course_gradebook($values['category_id'], $coursecode, $resourcetype, $resourceid, $resourcename, $weigthqualify, $maxqualify, $resourcedescription, 0, api_get_session_id());
}
api_item_property_update($_course, TOOL_FORUM_THREAD, $last_thread_id, 'ForumThreadAdded', api_get_user_id());
@ -2006,8 +2004,7 @@ function show_add_post_form($action = '', $id = '', $form_values = '') {
global $forum_setting;
global $current_forum;
global $_user;
global $origin;
global $charset;
global $origin;
$gradebook = Security::remove_XSS($_GET['gradebook']);
// Setting the class and text of the form title and submit button.
@ -2065,6 +2062,9 @@ function show_add_post_form($action = '', $id = '', $form_values = '') {
if( (api_is_course_admin() || api_is_course_coach() || api_is_course_tutor()) && !($my_thread) ) {
//Loading gradebook select
load_gradebook_select_in_tool($form);
// Thread qualify
$form->applyFilter('numeric_calification', 'html_filter');
$form->addElement('checkbox', 'thread_qualify_gradebook', '', get_lang('QualifyThreadGradebook'), 'onclick="javascript:if(this.checked==true){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"');
@ -2097,10 +2097,7 @@ function show_add_post_form($action = '', $id = '', $form_values = '') {
$form->addElement('textarea', 'file_comment', get_lang('FileComment'), array ('rows' => 4, 'cols' => 34));
$form->applyFilter('file_comment', 'html_filter');
$form->addElement('html', '</div>');
$userid = api_get_user_id();
$info = api_get_user_info($userid);
$courseid = api_get_course_id();
$form->addElement('style_submit_button', 'SubmitPost', $text, 'class="'.$class.'"');
$form->add_real_progress_bar('DocumentUpload', 'user_upload');
@ -2496,17 +2493,26 @@ function show_edit_post_form($current_post, $current_thread, $current_forum, $fo
$form->addElement('static', 'Group', '<strong>'.get_lang('AlterQualifyThread').'</strong>');
$form->applyFilter('numeric_calification', 'html_filter');
$form->addElement('checkbox', 'thread_qualify_gradebook', '', get_lang('QualifyThreadGradebook'), 'onclick="javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"');
$defaults['thread_qualify_gradebook'] = is_resource_in_course_gradebook(api_get_course_id(), 5, $_GET['thread'], api_get_session_id());
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 5, $_GET['thread'], api_get_session_id());
if (!empty($link_info)) {
$defaults['thread_qualify_gradebook'] = true;
$defaults['category_id'] = $link_info['category_id'];
}
if (!empty($defaults['thread_qualify_gradebook'])) {
$form -> addElement('html', '<div id="options_field" style="display:block">');
} else {
$form -> addElement('html', '<div id="options_field" style="display:none">');
}
//Loading gradebook select
load_gradebook_select_in_tool($form);
$form->addElement('text', 'numeric_calification', get_lang('QualificationNumeric'), 'value="'.$current_thread['thread_qualify_max'].'" style="width:40px"');
$form->addElement('text', 'calification_notebook_title', get_lang('TitleColumnGradebook'), 'value="'.$current_thread['thread_title_qualify'].'"');
$form->applyFilter('calification_notebook_title', 'html_filter');
$form->addElement('text', 'weight_calification', get_lang('QualifyWeight'), 'value="'.$current_thread['thread_weight'].'" style="width:40px"');
$form->addElement('text', 'weight_calification', array(get_lang('QualifyWeight'), null, '') , 'value="'.$current_thread['thread_weight'].'" style="width:40px"');
$form->applyFilter('weight_calification', 'html_filter');
$form->addElement('html', '</div>');
}
@ -2529,11 +2535,10 @@ function show_edit_post_form($current_post, $current_thread, $current_forum, $fo
$form->addElement('checkbox', 'remove_attach', null, get_lang('DeleteAttachmentFile'));
}
// User upload
$form->addElement('html', '<br /><b><div class="row"><div class="label">'.$message.'</div></div></b><br /><br />');
$form->addElement('label', $message);
$form->addElement('file', 'user_upload', get_lang('FileName'), '');
$form->addElement('textarea', 'file_comment', get_lang('FileComment'), array ('rows' => 4, 'cols' => 34));
$form->applyFilter('file_comment', 'html_filter');
$form->addElement('html', '</div><br /><br />');
$form->applyFilter('file_comment', 'html_filter');
if ($current_forum['allow_attachments'] == '1' || api_is_allowed_to_edit(null, true)) {
if (empty($form_values) && !isset($_POST['SubmitPost'])) {
//edit_added_resources('forum_post', $current_post['post_id']);
@ -2550,9 +2555,7 @@ function show_edit_post_form($current_post, $current_thread, $current_forum, $fo
$defaults['post_notification'] = true;
}
if (!empty($form_values)) {
//$defaults['post_title']=Security::remove_XSS($form_values['post_title']);
//$defaults['post_text']=Security::remove_XSS($form_values['post_text']);
if (!empty($form_values)) {
$defaults['post_notification'] = Security::remove_XSS($form_values['post_notification']);
$defaults['thread_sticky'] = Security::remove_XSS($form_values['thread_sticky']);
}
@ -2631,18 +2634,20 @@ function store_edit_post($values) {
if (api_is_course_admin() == true) {
$ccode = api_get_course_id();
$sid = api_get_session_id();
$link_id = is_resource_in_course_gradebook($ccode, 5, $values['thread_id'], $sid);
$link_info = is_resource_in_course_gradebook($ccode, 5, $values['thread_id'], $sid);
$link_id = $link_info['id'];
$thread_qualify_gradebook = isset($values['thread_qualify_gradebook']) ? $values['thread_qualify_gradebook'] : null;
if ($thread_qualify_gradebook != 1) {
if ($link_id !== false) {
if ($link_info !== false) {
remove_resource_from_course_gradebook($link_id);
}
} else {
if ($link_id === false && !$_GET['thread']) {
//$date_in_gradebook = date('Y-m-d H:i:s');
$date_in_gradebook = null;
if ($link_info === false && !$_GET['thread']) {
$weigthqualify = $values['weight_calification'];
add_resource_to_course_gradebook($ccode, 5, $values['thread_id'], Database::escape_string(stripslashes($values['calification_notebook_title'])), $weigthqualify, $values['numeric_calification'], null, $date_in_gradebook, 0, $sid);
add_resource_to_course_gradebook($values['category_id'], $ccode, 5, $values['thread_id'], Database::escape_string(stripslashes($values['calification_notebook_title'])), $weigthqualify, $values['numeric_calification'], null, 0, $sid);
}
}
}
@ -3359,9 +3364,9 @@ function prepare4display($input) {
if (!isset($search)) {
if (isset($_POST['search_term'])) {
$search = html_filter($_POST['search_term']); // No html at all.
$search = $_POST['search_term']; // No html at all.
} elseif (isset($_GET['search'])) {
$search = html_filter($_GET['search']);
$search = $_GET['search'];
} else {
$search = '';
}

@ -89,7 +89,6 @@ if (!empty($_GET['gidReq'])) {
api_session_register('toolgroup');
}
/* Is the user allowed here? */
// The user is not allowed here if:
@ -121,7 +120,6 @@ if ($current_forum['forum_of_group'] != 0) {
api_not_allowed();
}
}
$session_toolgroup = 0;
if ($origin == 'group') {
$session_toolgroup = intval($_SESSION['toolgroup']);
@ -146,8 +144,6 @@ if (isset($_POST['add_resources']) AND $_POST['add_resources'] == get_lang('Reso
header('Location: ../resourcelinker/resourcelinker.php');
}
/* Header */
if ($origin == 'learnpath') {
@ -163,36 +159,9 @@ handle_forum_and_forumcategories();
// Action links
echo '<div class="actions">';
echo '<span style="float:right;">'.search_link().'</span>';
/*
if ($origin == 'group') {
echo '<a href="../group/group_space.php?'.api_get_cidreq().'&amp;gidReq='.Security::remove_XSS($_GET['gidReq']).'&amp;gradebook='.$gradebook.'">'.Display::return_icon('back.png',get_lang('BackTo').' '.get_lang('Groups'),'',ICON_SIZE_MEDIUM).'</a>';
} else {
echo '<a href="index.php?gradebook='.$gradebook.'">'.Display::return_icon('back.png',get_lang('BackToForumOverview'),'',ICON_SIZE_MEDIUM).'</a>';
}*/
echo '<a href="viewforum.php?origin='.$origin.'&forum='.Security::remove_XSS($_GET['forum']).'&amp;gidReq='.Security::remove_XSS($_GET['gidReq']).'">'.Display::return_icon('back.png',get_lang('BackToForum'),'',ICON_SIZE_MEDIUM).'</a>';
echo '</div>';
/* Display Forum Category and the Forum information */
/*
echo "<table class=\"data_table\" width=\"100%\">\n";
if ($origin != 'learnpath') {
echo "<tr>\n<th align=\"left\" colspan=\"2\">";
echo '<span class="forum_title">'.prepare4display($current_forum['forum_title']).'</span>';
if (!empty($current_forum['forum_comment'])) {
echo '<br><span class="forum_description">'.prepare4display($current_forum['forum_comment']).'</span>';
}
if (!empty($current_forum_category['cat_title'])) {
echo '<br /><span class="forum_low_description">'.prepare4display($current_forum_category['cat_title'])."</span><br />";
}
echo "</th>\n";
echo "</tr>\n";
}
echo '</table>';
*/
$values = show_add_post_form('newthread', '', isset($_SESSION['formelements']) ? $_SESSION['formelements'] : null);
if (!empty($values) && isset($values['SubmitPost'])) {

@ -141,12 +141,17 @@ if (($my_action == 'lock' OR $my_action == 'unlock') AND isset($_GET['content'])
}
// Deleting.
if ($my_action == 'delete' AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false, true) && api_is_allowed_to_session_edit(false, true)) {
$message = delete_forum_forumcategory_thread($_GET['content'], $_GET['id']); // Note: This has to be cleaned first.
// Delete link
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$link_id = is_resource_in_course_gradebook(api_get_course_id(), 5 , intval($_GET['id']), api_get_session_id());
if ($link_id !== false) {
remove_resource_from_course_gradebook($link_id);
$locked = api_resource_is_locked_by_gradebook($_GET['id']);
if ($locked == false) {
$message = delete_forum_forumcategory_thread($_GET['content'], $_GET['id']); // Note: This has to be cleaned first.
// Delete link
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 5 , intval($_GET['id']), api_get_session_id());
$link_id = $link_info['id'];
if ($link_info !== false) {
remove_resource_from_course_gradebook($link_id);
}
}
}
// Moving.
@ -357,12 +362,6 @@ if (is_array($threads)) {
} else {
echo '<td>'.Display::tag('span', api_get_person_name($row['firstname'], $row['lastname']), array("title"=>api_htmlentities($poster_username, ENT_QUOTES))).'</td>';
}
// display the last post name
// if ($row['user_id'] == '0') {
// $name = prepare4display($row['thread_poster_name']);
// } else {
// $name = api_get_person_name($row['firstname'], $row['lastname']);
// }
if ($row['last_poster_user_id'] == '0') {
$name = $row['poster_name'];
@ -404,7 +403,13 @@ if (is_array($threads)) {
if ($origin != 'learnpath') {
if (api_is_allowed_to_edit(false, true) && !(api_is_course_coach() && $current_forum['session_id'] != $_SESSION['id_session'])) {
echo '<a href="editpost.php?'.api_get_cidreq().'&amp;forum='.Security::remove_XSS($my_forum).'&amp;thread='.Security::remove_XSS($row['thread_id']).'&amp;post='.$row_post_id['post_id'].'&amp;gidReq='.$_SESSION['toolgroup'].'&amp;origin='.$origin.'&amp;id_attach='.$id_attach.'">'.Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL).'</a>';
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;forum='.Security::remove_XSS($my_forum).'&amp;action=delete&amp;content=thread&amp;gidReq='.$_SESSION['toolgroup'].'&amp;id='.$row['thread_id'].$origin_string."\" onclick=\"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('DeleteCompleteThread'), ENT_QUOTES))."')) return false;\">".Display::return_icon('delete.png', get_lang('Delete'), array(), ICON_SIZE_SMALL).'</a>';
if (api_resource_is_locked_by_gradebook($row['thread_id'])) {
echo Display::return_icon('delete_na.png', get_lang('Delete'), array(), ICON_SIZE_SMALL);
} else {
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;forum='.Security::remove_XSS($my_forum).'&amp;action=delete&amp;content=thread&amp;gidReq='.$_SESSION['toolgroup'].'&amp;id='.$row['thread_id'].$origin_string."\" onclick=\"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('DeleteCompleteThread'), ENT_QUOTES))."')) return false;\">".Display::return_icon('delete.png', get_lang('Delete'), array(), ICON_SIZE_SMALL).'</a>';
}
display_visible_invisible_icon('thread', $row['thread_id'], $row['visibility'], array('forum' => $my_forum, 'origin' => $origin, 'gidReq' => $_SESSION['toolgroup']));
display_lock_unlock_icon('thread', $row['thread_id'], $row['locked'], array('forum' => $my_forum, 'origin' => $origin, 'gidReq' => $_SESSION['toolgroup']));
echo '<a href="viewforum.php?'.api_get_cidreq().'&amp;forum='.Security::remove_XSS($my_forum).'&amp;action=move&amp;gidReq='.$_SESSION['toolgroup'].'&amp;thread='.$row['thread_id'].$origin_string.'">'.Display::return_icon('move.png', get_lang('MoveThread'), array(), ICON_SIZE_SMALL).'</a>';

@ -93,7 +93,7 @@ if (isset($_GET['typeselected']) && $_GET['typeselected'] != '0') {
$res1 = Database::query($sql1);
$rowtit = Database::fetch_row($res1);
$course_id = api_get_course_id();
$sql_l='SELECT count(*) FROM '.$tbl_link.' WHERE c_id = '.$course_info['real_id'].' AND ref_id='.$addvalues['select_link'].' and course_code="'.$course_id.'" and type=5;';
$sql_l='SELECT count(*) FROM '.$tbl_link.' WHERE ref_id='.$addvalues['select_link'].' and course_code="'.$course_id.'" and type=5;';
$res_l=Database::query($sql_l);
$row=Database::fetch_row($res_l);
if ( $row[0]==0 ) {

@ -17,6 +17,9 @@ api_block_anonymous_users();
block_students();
$evaledit = Evaluation :: load($_GET['editeval']);
if ($evaledit[0]->is_locked() && !api_is_platform_admin()) {
api_not_allowed();
}
$form = new EvalForm(EvalForm :: TYPE_EDIT, $evaledit[0], null, 'edit_eval_form',null,api_get_self() . '?editeval=' . Security::remove_XSS($_GET['editeval']));
if ($form->validate()) {
$values = $form->exportValues();

@ -19,12 +19,17 @@ api_block_anonymous_users();
block_students();
$tbl_grade_links = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
//selected name of database
$course_id = get_course_id_by_link_id($_GET['editlink']);
$course_id = get_course_id_by_link_id($_GET['editlink']);
$tbl_forum_thread = Database :: get_course_table(TABLE_FORUM_THREAD);
$tbl_work = Database :: get_course_table(TABLE_STUDENT_PUBLICATION);
$tbl_attendance = Database :: get_course_table(TABLE_ATTENDANCE);
$linkarray = LinkFactory :: load($_GET['editlink']);
$link = $linkarray[0];
if ($link->is_locked() && !api_is_platform_admin()) {
api_not_allowed();
}
$linkcat = isset($_GET['selectcat']) ? Security::remove_XSS($_GET['selectcat']):'';
$linkedit = isset($_GET['editlink']) ? Security::remove_XSS($_GET['editlink']):'';
@ -53,23 +58,25 @@ if ($form->validate()) {
$link->save();
//Update weight for attendance
$sql = 'SELECT ref_id FROM '.$tbl_grade_links.' WHERE c_id = '.$course_id.' AND id = '.intval($_GET['editlink']).' AND type='.LINK_ATTENDANCE;
$sql = 'SELECT ref_id FROM '.$tbl_grade_links.' WHERE id = '.intval($_GET['editlink']).' AND type='.LINK_ATTENDANCE;
$rs_attendance = Database::query($sql);
if (Database::num_rows($rs_attendance) > 0) {
$row_attendance = Database::fetch_array($rs_attendance);
$attendance_id = $row_attendance['ref_id'];
$upd_attendance = 'UPDATE '.$tbl_attendance.' SET attendance_weight ='.floatval($values['weight']).' WHERE c_id = '.$course_id.' AND id = '.intval($attendance_id);
$upd_attendance = 'UPDATE '.$tbl_attendance.' SET attendance_weight ='.floatval($final_weight).' WHERE c_id = '.$course_id.' AND id = '.intval($attendance_id);
Database::query($upd_attendance);
}
//Update weight into forum thread
$sql_t = 'UPDATE '.$tbl_forum_thread.' SET thread_weight='.$values['weight'].'
WHERE c_id = '.$course_id.' AND thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' WHERE id='.intval($_GET['editlink']).' and type=5 AND c_id = '.$course_id.' ) ';
$sql_t = 'UPDATE '.$tbl_forum_thread.' SET thread_weight='.$final_weight.'
WHERE c_id = '.$course_id.' AND thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' WHERE id='.intval($_GET['editlink']).' and type=5) ';
Database::query($sql_t);
//Update weight into student publication(work)
$sql_t = 'UPDATE '.$tbl_work.' SET weight='.$values['weight'].'
WHERE c_id = '.$course_id.' AND id = (SELECT ref_id FROM '.$tbl_grade_links.' WHERE c_id = '.$course_id.' AND id='.intval($_GET['editlink'] ).' AND type=3 )';
$sql_t = 'UPDATE '.$tbl_work.' SET weight='.$final_weight.'
WHERE c_id = '.$course_id.' AND id = (SELECT ref_id FROM '.$tbl_grade_links.' WHERE id='.intval($_GET['editlink'] ).' AND type=3 )';
Database::query($sql_t);
header('Location: '.$_SESSION['gradebook_dest'].'?linkedited=&selectcat=' . $link->get_category_id());
exit;
@ -79,8 +86,7 @@ $interbreadcrumb[] = array ('url' => Security::remove_XSS($_SESSION['gradebook_d
$htmlHeadXtra[] = '<script type="text/javascript">
$(document).ready( function() {
$("#hide_category_id").change(function(){
$("#hide_category_id").change(function(){
$("#hide_category_id option:selected").each(function () {
var cat_id = $(this).val();
$.ajax({

@ -203,7 +203,8 @@ abstract class AbstractLink implements GradebookItem {
$link->set_category_id($data['category_id']);
$link->set_date($data['created_at']);
$link->set_weight($data['weight']);
$link->set_visible($data['visible']);
$link->set_visible($data['visible']);
$link->set_locked($data['locked']);
//session id should depend of the category --> $data['category_id']
$session_id = api_get_session_id();

@ -12,14 +12,10 @@
class ForumThreadLink extends AbstractLink
{
// INTERNAL VARIABLES
// INTERNAL VARIABLES
private $forum_thread_table = null;
private $itemprop_table = null;
// CONSTRUCTORS
function __construct() {
parent::__construct();
$this->set_type(LINK_FORUM_THREAD);
@ -29,13 +25,11 @@ class ForumThreadLink extends AbstractLink
return get_lang('ForumThreads');
}
public function is_allowed_to_change_name() {
return false;
}
// FUNCTIONS IMPLEMENTING ABSTRACTLINK
// FUNCTIONS IMPLEMENTING ABSTRACTLINK
/**
* Generate an array of exercises that a teacher hasn't created a link for.
@ -76,6 +70,13 @@ class ForumThreadLink extends AbstractLink
}
$tbl_grade_links = Database :: get_course_table(TABLE_FORUM_THREAD);
$tbl_item_property = Database :: get_course_table(TABLE_ITEM_PROPERTY);
$session_id = api_get_session_id();
if ($session_id) {
$session_condition = 'tl.session_id='.api_get_session_id();
} else {
$session_condition = '(tl.session_id = 0 OR tl.session_id IS NULL)';
}
$sql = 'SELECT tl.thread_id, tl.thread_title, tl.thread_title_qualify
FROM '.$tbl_grade_links.' tl ,'.$tbl_item_property.' ip
@ -83,7 +84,8 @@ class ForumThreadLink extends AbstractLink
ip.c_id = '.$this->course_id.' AND
tl.thread_id = ip.ref AND
ip.tool = "forum_thread" AND
ip.visibility<>2 AND tl.session_id='.api_get_session_id().' GROUP BY ip.ref ';
ip.visibility<>2 AND '.$session_condition.' GROUP BY ip.ref ';
$result = Database::query($sql);
while ($data=Database::fetch_array($result)) {
@ -235,10 +237,17 @@ class ForumThreadLink extends AbstractLink
return $url;
}
private function get_exercise_data() {
private function get_exercise_data() {
$session_id = api_get_session_id();
if ($session_id) {
$session_condition = 'session_id='.api_get_session_id();
} else {
$session_condition = '(session_id = 0 OR session_id IS NULL)';
}
if (!isset($this->exercise_data)) {
$sql = 'SELECT * FROM '.$this->get_forum_thread_table().'
WHERE c_id = '.$this->course_id.' AND thread_id = '.$this->get_ref_id().' AND session_id = '.api_get_session_id();
WHERE c_id = '.$this->course_id.' AND thread_id = '.$this->get_ref_id().' AND '.$session_condition;
$query = Database::query($sql);
$this->exercise_data = Database::fetch_array($query);
}
@ -248,4 +257,4 @@ class ForumThreadLink extends AbstractLink
public function get_icon_name() {
return 'forum';
}
}
}

@ -213,9 +213,8 @@ class EvalForm extends FormValidator
$this->setDefaults($defaults);
$this->addElement('style_submit_button', 'submit',get_lang('EditResult'),'class="save"');
$renderer->setElementTemplate($template_submit,'submit');
}
/**
* This function builds a form to move an item to another category
*
@ -433,7 +432,7 @@ class EvalForm extends FormValidator
$session_id = api_get_session_id();
$course_code = api_get_course_id();
$all_categories = Category :: load(null, null, $course_code, null, null, $session_id, false);
$all_categories = Category :: load(null, null, $course_code, null, null, $session_id, false);
if (count($all_categories) == 1) {
$this->addElement('hidden', 'hid_category_id', $cat_id);
@ -442,7 +441,7 @@ class EvalForm extends FormValidator
$this->addRule('hid_category_id', get_lang('ThisFieldIsRequired'), 'nonzero');
$default_weight = 0;
if (!empty($all_categories)) {
if (!empty($all_categories)) {
foreach ($all_categories as $my_cat) {
if ($my_cat->get_course_code() == api_get_course_id()) {
$grade_model_id = $my_cat->get_grade_model_id();

@ -271,7 +271,7 @@ class GradebookTable extends SortableTable {
$row[] = $invisibility_span_open."&nbsp;&nbsp;&nbsp; ".$this->build_name_link($item) . $invisibility_span_close;
//Description
$row[] = $invisibility_span_open.$data[2] . $invisibility_span_close;
$row[] = $invisibility_span_open.$data[2].$invisibility_span_close;
//Weight
//$row[] = $invisibility_span_open . $data[3] .' / '.$category_weight.$invisibility_span_close;
@ -498,7 +498,7 @@ class GradebookTable extends SortableTable {
return '&nbsp;'
. '<a href="gradebook_view_result.php?cidReq='.$course_id.'&amp;selecteval=' . $item->get_id() . '">'
. $item->get_name()
. '</a>&nbsp;['.get_lang('Evaluation').']';
. '</a>&nbsp;'.Display::label(get_lang('Evaluation'));
}
} elseif (ScoreDisplay :: instance()->is_custom() && $show_message===false) {
// students can go to the statistics page (if custom display enabled)
@ -532,7 +532,7 @@ class GradebookTable extends SortableTable {
$text = $item->get_name();
}
$text .= '&nbsp;[' . $item->get_type_name() . ']'.$show_message;
$text .= "&nbsp;".Display::label($item->get_type_name()).$show_message;
$cc = $this->currentcat->get_course_code();
if (empty($cc)) {
$text .= '&nbsp;[<a href="'.api_get_path(REL_COURSE_PATH).$item->get_course_code().'/">'.$item->get_course_code().'</a>]';

@ -81,7 +81,7 @@ class LinkForm extends FormValidator
$cc = $this->category_object->get_course_code();
foreach ($linktypes as $linktype) {
$link = LinkFactory :: create ($linktype);
$link = LinkFactory :: create ($linktype);
if (!empty($cc)) {
$link->set_course_code($cc);
} elseif(!empty($_GET['course_code'])) {

@ -27,7 +27,7 @@ require_once 'gradebook_functions_users.inc.php';
* @param int Session ID (optional or 0 if not defined)
* @return boolean True on success, false on failure
*/
function add_resource_to_course_gradebook($course_code, $resource_type, $resource_id, $resource_name='', $weight=0, $max=0, $resource_description='', $date=null, $visible=0, $session_id = 0) {
function add_resource_to_course_gradebook($category_id, $course_code, $resource_type, $resource_id, $resource_name='', $weight=0, $max=0, $resource_description='', $visible=0, $session_id = 0) {
/* See defines in lib/be/linkfactory.class.php
define('LINK_EXERCISE',1);
define('LINK_DROPBOX',2);
@ -35,51 +35,17 @@ function add_resource_to_course_gradebook($course_code, $resource_type, $resourc
define('LINK_LEARNPATH',4);
define('LINK_FORUM_THREAD',5),
define('LINK_WORK',6);
*/
$category = 0;
*/
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be.inc.php';
$link = LinkFactory :: create($resource_type);
$link->set_user_id(api_get_user_id());
$link->set_course_code($course_code);
// TODO find the corresponding category (the first one for this course, ordered by ID)
$t = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$sql = "SELECT * FROM $t WHERE course_code = '".Database::escape_string($course_code)."' ";
if (!empty($session_id)) {
$sql .= " AND session_id = ".(int)$session_id;
} else {
$sql .= " AND (session_id IS NULL OR session_id = 0) ";
}
$sql .= " ORDER BY id";
$res = Database::query($sql);
if (Database::num_rows($res)<1){
//there is no unique category for this course+session combination,
$cat = new Category();
if (!empty($session_id)) {
$my_session_id=api_get_session_id();
$s_name = api_get_session_name($my_session_id);
$cat->set_name($course_code.' - '.get_lang('Session').' '.$s_name);
$cat->set_session_id($session_id);
} else {
$cat->set_name($course_code);
}
$cat->set_course_code($course_code);
$cat->set_description(null);
$cat->set_user_id(api_get_user_id());
$cat->set_parent_id(0);
$cat->set_weight(100);
$cat->set_visible(0);
$can_edit = api_is_allowed_to_edit(true, true);
if ($can_edit) {
$cat->add();
}
$category = $cat->get_id();
unset ($cat);
} else {
$row = Database::fetch_array($res);
$category = $row['id'];
}
$link->set_category_id($category);
if (empty($category_id)) {
return false;
}
$link->set_category_id($category_id);
if ($link->needs_name_and_description()) {
$link->set_name($resource_name);
} else {
@ -215,7 +181,7 @@ function build_edit_icons_cat($cat, $selectcat) {
if (api_is_platform_admin()) {
$modify_icons .= '&nbsp;<a onclick="javascrip:lock_confirmation()" href="' . api_get_self() . '?'. api_get_cidreq().'&category_id=' . $cat->get_id() . '&action=unlock">'.Display::return_icon('unlock.png', get_lang('Unlock'),'',ICON_SIZE_SMALL).'</a>';
} else {
$modify_icons .= '&nbsp;<a href="#">'.Display::return_icon('unlock_na.png', get_lang('ResourceLockedByGradebook'),'',ICON_SIZE_SMALL).'</a>';
$modify_icons .= '&nbsp;<a href="#">'.Display::return_icon('unlock_na.png', get_lang('GradebookLockedAlert'),'',ICON_SIZE_SMALL).'</a>';
}
} else {
$modify_icons .= '&nbsp;<a onclick="javascrip:lock_confirmation()" href="' . api_get_self() . '?'. api_get_cidreq().'&category_id=' . $cat->get_id() . '&action=lock">'.Display::return_icon('lock.png', get_lang('Lock'),'',ICON_SIZE_SMALL).'</a>';
@ -226,7 +192,11 @@ function build_edit_icons_cat($cat, $selectcat) {
$modify_icons .= '&nbsp;<a href="gradebook_flat_view.php?export_pdf=category&selectcat=' . $cat->get_id() . '" >'.Display::return_icon('pdf.png', get_lang('ExportToPDF'),'',ICON_SIZE_SMALL).'</a>';
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>';
if ($cat->is_locked() && !api_is_platform_admin()) {
$modify_icons .= Display::return_icon('edit_na.png', get_lang('Modify'),'',ICON_SIZE_SMALL);
} else {
$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>';
}
}
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?visiblecat=' . $cat->get_id() . '&amp;' . $visibility_command . '=&amp;selectcat=' . $selectcat . ' ">'.Display::return_icon($visibility_icon.'.png', get_lang('Visible'),'',ICON_SIZE_SMALL).'</a>';
@ -243,9 +213,12 @@ function build_edit_icons_cat($cat, $selectcat) {
/*$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>';
if ($cat->is_locked() && !api_is_platform_admin()) {
$modify_icons .= Display::return_icon('delete_na.png', get_lang('DeleteAll'),'',ICON_SIZE_SMALL);
} else {
$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>';
}
}
return $modify_icons;
}
}
@ -256,7 +229,7 @@ function build_edit_icons_cat($cat, $selectcat) {
*/
function build_edit_icons_eval($eval, $selectcat) {
$status = CourseManager::get_user_in_course_status(api_get_user_id(), api_get_course_id());
$locked_status = $eval->get_locked();
$is_locked = $eval->is_locked();
$eval->get_course_code();
$cat=new Category();
$message_eval=$cat->show_message_resource_delete($eval->get_course_code());
@ -264,14 +237,17 @@ function build_edit_icons_eval($eval, $selectcat) {
if ($message_eval===false && api_is_allowed_to_edit(null, true)) {
$visibility_icon= ($eval->is_visible() == 0) ? 'invisible' : 'visible';
$visibility_command= ($eval->is_visible() == 0) ? 'set_visible' : 'set_invisible';
$modify_icons= '<a href="gradebook_edit_eval.php?editeval=' . $eval->get_id() . ' &amp;cidReq='.$eval->get_course_code().'">
'.Display::return_icon('edit.png', get_lang('Modify'),'',ICON_SIZE_SMALL).'</a>';
if ($is_locked && !api_is_platform_admin()) {
$modify_icons= Display::return_icon('edit_na.png', get_lang('Modify'),'',ICON_SIZE_SMALL);
} else {
$modify_icons= '<a href="gradebook_edit_eval.php?editeval=' . $eval->get_id() . ' &amp;cidReq='.$eval->get_course_code().'">'.Display::return_icon('edit.png', get_lang('Modify'),'',ICON_SIZE_SMALL).'</a>';
}
//$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?moveeval=' . $eval->get_id() . '&selectcat=' . $selectcat . '"><img src="../img/deplacer_fichier.gif" border="0" title="' . get_lang('Move') . '" alt="" /></a>';
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?visibleeval=' . $eval->get_id() . '&amp;' . $visibility_command . '=&amp;selectcat=' . $selectcat . ' ">'.Display::return_icon($visibility_icon.'.png', get_lang('Visible'),'',ICON_SIZE_SMALL).'</a>';
if (api_is_allowed_to_edit(null, true)){
$modify_icons .= '&nbsp;<a href="gradebook_showlog_eval.php?visiblelog=' . $eval->get_id() . '&amp;selectcat=' . $selectcat . ' &amp;cidReq='.$eval->get_course_code().'">'.Display::return_icon('history.png', get_lang('GradebookQualifyLog'),'',ICON_SIZE_SMALL).'</a>';
}
/*
if ($locked_status == 0){
$modify_icons .= "&nbsp;<a href=\"javascript:if (confirm('".addslashes(get_lang('AreYouSureToLockedTheEvaluation'))."')) { location.href='".api_get_self().'?lockedeval=' . $eval->get_id() . '&amp;selectcat=' . $selectcat . ' &amp;cidReq='.$eval->get_course_code()."'; }\">".Display::return_icon('unlock.png',get_lang('LockEvaluation'), array(), ICON_SIZE_SMALL)."</a>";
@ -281,8 +257,12 @@ function build_edit_icons_eval($eval, $selectcat) {
} else {
$modify_icons .= '&nbsp;<img src="../img/locked_na.png" border="0" title="' . get_lang('TheEvaluationIsLocked') . '" alt="" />';
}
}*/
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?deleteeval=' . $eval->get_id() . '&selectcat=' . $selectcat . ' &amp;cidReq='.$eval->get_course_code().'" onclick="return confirmation();">'.Display::return_icon('delete.png', get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>';
}*/
if ($is_locked && !api_is_platform_admin()) {
$modify_icons .= '&nbsp;'.Display::return_icon('delete_na.png', get_lang('Delete'),'',ICON_SIZE_SMALL);
} else {
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?deleteeval=' . $eval->get_id() . '&selectcat=' . $selectcat . ' &amp;cidReq='.$eval->get_course_code().'" onclick="return confirmation();">'.Display::return_icon('delete.png', get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>';
}
return $modify_icons;
}
}
@ -291,15 +271,20 @@ function build_edit_icons_eval($eval, $selectcat) {
* @param object $linkobject
* @param int $selectcat id of selected category
*/
function build_edit_icons_link($link, $selectcat) {
$link->get_course_code();
function build_edit_icons_link($link, $selectcat) {
$cat = new Category();
$message_link = $cat->show_message_resource_delete($link->get_course_code());
$message_link = $cat->show_message_resource_delete($link->get_course_code());
$is_locked = $link->is_locked();
if ($message_link===false) {
$visibility_icon= ($link->is_visible() == 0) ? 'invisible' : 'visible';
$visibility_command= ($link->is_visible() == 0) ? 'set_visible' : 'set_invisible';
$modify_icons= '<a href="gradebook_edit_link.php?editlink='.$link->get_id().'&amp;cidReq='.$link->get_course_code().'">'.Display::return_icon('edit.png', get_lang('Modify'),'',ICON_SIZE_SMALL).'</a>';
if ($is_locked && !api_is_platform_admin()) {
$modify_icons = Display::return_icon('edit_na.png', get_lang('Modify'),'',ICON_SIZE_SMALL);
} else {
$modify_icons = '<a href="gradebook_edit_link.php?editlink='.$link->get_id().'&amp;cidReq='.$link->get_course_code().'">'.Display::return_icon('edit.png', get_lang('Modify'),'',ICON_SIZE_SMALL).'</a>';
}
//$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?movelink=' . $link->get_id() . '&selectcat=' . $selectcat . '"><img src="../img/deplacer_fichier.gif" border="0" title="' . get_lang('Move') . '" alt="" /></a>';
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?visiblelink=' . $link->get_id() . '&amp;' . $visibility_command . '=&amp;selectcat=' . $selectcat . ' ">'.Display::return_icon($visibility_icon.'.png', get_lang('Visible'),'',ICON_SIZE_SMALL).'</a>';
@ -311,9 +296,13 @@ function build_edit_icons_link($link, $selectcat) {
$show_delete = false;
}
if ($show_delete) {
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?deletelink=' . $link->get_id() . '&selectcat=' . $selectcat . ' &amp;cidReq='.$link->get_course_code().'" onclick="return confirmation();">'.Display::return_icon('delete.png', get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>';
if ($is_locked && !api_is_platform_admin()) {
$modify_icons .= '&nbsp;'.Display::return_icon('delete_na.png', get_lang('Delete'),'',ICON_SIZE_SMALL);
} else {
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?deletelink=' . $link->get_id() . '&selectcat=' . $selectcat . ' &amp;cidReq='.$link->get_course_code().'" onclick="return confirmation();">'.Display::return_icon('delete.png', get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>';
}
} else {
$modify_icons .= '&nbsp;.'.Display::return_icon('delete_na.png', get_lang('Delete'),'',ICON_SIZE_SMALL);
$modify_icons .= '&nbsp;'.Display::return_icon('delete_na.png', get_lang('Delete'),'',ICON_SIZE_SMALL);
}
return $modify_icons;
}
@ -335,7 +324,7 @@ function is_resource_in_course_gradebook($course_code, $resource_type, $resource
// TODO find the corresponding category (the first one for this course, ordered by ID)
$t = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$l = Database::get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
$sql = "SELECT * FROM $t WHERE course_code = '".Database::escape_string($course_code)."' ";
/*$sql = "SELECT * FROM $t WHERE course_code = '".Database::escape_string($course_code)."' ";
if (!empty($session_id)) {
$sql .= " AND session_id = ".(int)$session_id;
} else {
@ -346,15 +335,17 @@ function is_resource_in_course_gradebook($course_code, $resource_type, $resource
if (Database::num_rows($res)<1) {
return false;
}
$row = Database::fetch_array($res);
$category = $row['id'];
$sql = "SELECT id FROM $l l WHERE l.category_id = $category AND type = ".(int) $resource_type." and ref_id = ".(int) $resource_id;
$row = Database::fetch_array($res,'ASSOC');
$category = $row['id'];*/
$course_code = Database::escape_string($course_code);
$sql = "SELECT * FROM $l l WHERE course_code = '$course_code' AND type = ".(int) $resource_type." and ref_id = ".(int) $resource_id;
$res = Database::query($sql);
if (Database::num_rows($res)<1) {
return false;
}
$row = Database::fetch_array($res);
return $row['id'];
$row = Database::fetch_array($res, 'ASSOC');
return $row;
}
/**
@ -363,11 +354,10 @@ function is_resource_in_course_gradebook($course_code, $resource_type, $resource
* @return bool false on error, true on success
*/
function get_resource_from_course_gradebook($link_id) {
if ( empty($link_id) ) { return false; }
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be.inc.php';
if ( empty($link_id) ) { return false; }
// TODO find the corresponding category (the first one for this course, ordered by ID)
$l = Database::get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
$sql = "SELECT * FROM $l WHERE id = ".(int)$link_id;
$sql = "SELECT * FROM $l WHERE id = ".(int)$link_id;
$res = Database::query($sql);
$row = array();
if (Database::num_rows($res) > 0) {
@ -624,6 +614,81 @@ function get_user_certificate_content($user_id, $course_code, $is_preview = fals
return array('content' => $new_content_html, 'variables'=>$content_html['variables']);
}
function create_default_course_gradebook() {
if (api_is_allowed_to_edit(true, true)) {
$course_code = api_get_course_id();
$session_id = api_get_session_id();
$t = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$sql = "SELECT * FROM $t WHERE course_code = '".Database::escape_string($course_code)."' ";
if (!empty($session_id)) {
$sql .= " AND session_id = ".(int)$session_id;
} else {
$sql .= " AND (session_id IS NULL OR session_id = 0) ";
}
$sql .= " ORDER BY id";
$res = Database::query($sql);
if (Database::num_rows($res)<1){
//there is no unique category for this course+session combination,
$cat = new Category();
if (!empty($session_id)) {
$my_session_id=api_get_session_id();
$s_name = api_get_session_name($my_session_id);
$cat->set_name($course_code.' - '.get_lang('Session').' '.$s_name);
$cat->set_session_id($session_id);
} else {
$cat->set_name($course_code);
}
$cat->set_course_code($course_code);
$cat->set_description(null);
$cat->set_user_id(api_get_user_id());
$cat->set_parent_id(0);
$cat->set_weight(100);
$cat->set_visible(0);
$cat->add();
$category_id = $cat->get_id();
unset ($cat);
} else {
$row = Database::fetch_array($res);
$category_id = $row['id'];
}
}
return $category_id;
}
function load_gradebook_select_in_tool($form) {
$course_code = api_get_course_id();
$session_id = api_get_session_id();
create_default_course_gradebook();
//Cat list
$all_categories = Category :: load(null, null, $course_code, null, null, $session_id, false);
$select_gradebook = $form->addElement('select', 'category_id', get_lang('SelectGradebook'));
if (!empty($all_categories)) {
foreach ($all_categories as $my_cat) {
if ($my_cat->get_course_code() == api_get_course_id()) {
$grade_model_id = $my_cat->get_grade_model_id();
if (empty($grade_model_id)) {
if ($my_cat->get_parent_id() == 0) {
//$default_weight = $my_cat->get_weight();
$select_gradebook->addoption(get_lang('Default'), $my_cat->get_id());
$cats_added[] = $my_cat->get_id();
} else {
$select_gradebook->addoption($my_cat->get_name(), $my_cat->get_id());
$cats_added[] = $my_cat->get_id();
}
} else {
$select_gradebook->addoption(get_lang('Select'), 0);
}
/*if ($this->evaluation_object->get_category_id() == $my_cat->get_id()) {
$default_weight = $my_cat->get_weight();
} */
}
}
}
}
function export_pdf_flatview($cat, $users, $alleval, $alllinks, $params = array()) {
// Beginning of PDF report creation

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

@ -20,6 +20,7 @@ class Attendance
private $attendance_qualify_title;
private $attendance_weight;
private $course_int_id;
public $category_id;
// constants
const DONE_ATTENDANCE_LOG_TYPE = 'done_attendance_sheet';
@ -154,8 +155,8 @@ class Attendance
} else {
$is_locked_attendance = self::is_locked_attendance($attendance[0]);
if ($is_locked_attendance) {
$actions .= Display::return_icon('edit_na.gif',get_lang('Edit')).'&nbsp;';
$actions .= Display::return_icon('delete_na.gif',get_lang('Delete'));
$actions .= Display::return_icon('edit_na.png',get_lang('Edit')).'&nbsp;';
$actions .= Display::return_icon('delete_na.png',get_lang('Delete'));
} else {
$actions .= '<a href="index.php?'.api_get_cidreq().'&action=attendance_edit&attendance_id='.$attendance[0].$param_gradebook.'">'.Display::return_icon('edit.png',get_lang('Edit'), array(), ICON_SIZE_SMALL).'</a>&nbsp;';
$actions .= '<a onclick="javascript:if(!confirm(\''.get_lang('AreYouSureToDelete').'\')) return false;" href="index.php?'.api_get_cidreq().'&action=attendance_delete&attendance_id='.$attendance[0].$param_gradebook.'">'.Display::return_icon('delete.png',get_lang('Delete'), array(), ICON_SIZE_SMALL).'</a>';
@ -245,11 +246,12 @@ class Attendance
api_item_property_update($_course, TOOL_ATTENDANCE, $last_id,"AttendanceAdded", $user_id);
}
// add link to gradebook
if ($link_to_gradebook) {
if ($link_to_gradebook && !empty($this->category_id)) {
$description = '';
$link_id=is_resource_in_course_gradebook($course_code,7,$last_id,$session_id);
if (!$link_id) {
add_resource_to_course_gradebook($course_code, 7, $last_id, $title_gradebook,$weight_calification,$value_calification,$description,time(),1,$session_id);
$link_info = is_resource_in_course_gradebook($course_code,7,$last_id,$session_id);
$link_id = $link_info['id'];
if (!$link_info) {
add_resource_to_course_gradebook($this->category_id, $course_code, 7, $last_id, $title_gradebook,$weight_calification,$value_calification,$description,1,$session_id);
} else {
Database::query('UPDATE '.$table_link.' SET weight='.$weight_calification.' WHERE id='.$link_id.'');
}
@ -289,11 +291,11 @@ class Attendance
api_item_property_update($_course, TOOL_ATTENDANCE, $attendance_id,"AttendanceUpdated", $user_id);
// add link to gradebook
if ($link_to_gradebook) {
if ($link_to_gradebook && !empty($this->category_id)) {
$description = '';
$link_id=is_resource_in_course_gradebook($course_code,7,$attendance_id,$session_id);
if (!$link_id) {
add_resource_to_course_gradebook($course_code, 7, $attendance_id, $title_gradebook,$weight_calification,$value_calification,$description,time(),1,$session_id);
add_resource_to_course_gradebook($this->category_id, $course_code, 7, $attendance_id, $title_gradebook,$weight_calification,$value_calification,$description,1,$session_id);
} else {
Database::query('UPDATE '.$table_link.' SET weight='.$weight_calification.' WHERE id='.$link_id.'');
}
@ -1050,6 +1052,11 @@ class Attendance
* @param bool
*/
public function is_locked_attendance($attendance_id) {
//use gradebook lock
$result = api_resource_is_locked_by_gradebook($attendance_id);
return $result;
/*
$attendance_id = intval($attendance_id);
$tbl_attendance = Database::get_course_table(TABLE_ATTENDANCE);
$course_id = api_get_course_int_id();
@ -1061,7 +1068,7 @@ class Attendance
if (Database::num_rows($rs) > 0) {
$result = true;
}
return $result;
return $result;*/
}
/**

@ -5732,9 +5732,32 @@ function api_get_course_table_condition($and = true) {
* @param int the item id (tool id, exercise id, lp id)
*
*/
function api_course_item_is_blocked_by_gradebook($course_id, $tool_id, $item_id) {
function api_resource_is_locked_by_gradebook($item_id, $course_code = null) {
if (api_is_platform_admin()) {
return false;
}
if (api_get_setting('gradebook_locking_enabled') == 'true') {
//$course_id
if (empty($course_code)) {
$course_code = api_get_course_id();
}
$table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
$item_id = intval($item_id);
$sql = "SELECT locked FROM $table WHERE locked = 1 AND ref_id = $item_id AND type = 1 AND course_code = '$course_code' ";
$result = Database::query($sql);
if (Database::num_rows($result)) {
return true;
}
}
return false;
}
function block_course_item_locked_by_gradebook($item_id, $course_code = null) {
if (api_is_platform_admin()) {
return false;
}
if (api_resource_is_locked_by_gradebook($item_id, $course_code)) {
$message = Display::return_message(get_lang('ResourceLockedByGradebook'), 'warning');
api_not_allowed(true, $message);
}
}

@ -923,9 +923,9 @@ class learnpath {
}
}*/
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$link_id = is_resource_in_course_gradebook(api_get_course_id(), 4 , $id, api_get_session_id());
if ($link_id !== false) {
remove_resource_from_course_gradebook($link_id);
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 4 , $id, api_get_session_id());
if ($link_info !== false) {
remove_resource_from_course_gradebook($link_info['id']);
}
if (api_get_setting('search_enabled') == 'true') {

@ -47,7 +47,26 @@ function setFocus(){
$(window).load(function () {
setFocus();
});
</script>';
</script>
<style>
form .label {
padding: 1px 3px 2px;
font-size: 100%;
font-weight: normal;
color: #ffffff;
text-transform: none;
background: none;
border-radius: none;
color: #404040;
float: left;
line-height: 18px;
padding-top: 6px;
text-align: right;
width: 150px;
text-shadow:none;
}
</style>';
// Flag to allow for anonymous user - needs to be set before global.inc.php.
$use_anonymous = true;

@ -97,8 +97,10 @@ if ($_GET['action'] == 'edit' && isset($survey_id) && is_numeric($survey_id)) {
$defaults['survey_id'] = $survey_id;
$defaults['anonymous'] = $survey_data['anonymous'];
$gradebook_link_id = is_resource_in_course_gradebook($course_id, $gradebook_link_type, $survey_id, $session_id);
if ($gradebook_link_id) {
$link_info = is_resource_in_course_gradebook($course_id, $gradebook_link_type, $survey_id, $session_id);
$gradebook_link_id = $link_info['id'];
if ($link_info) {
if ($sql_result_array = Database::fetch_array(Database::query('SELECT weight FROM '.$table_gradebook_link.' WHERE id='.$gradebook_link_id))) {
$defaults['survey_qualify_gradebook'] = $gradebook_link_id;
$defaults['survey_weight'] = number_format($sql_result_array['weight'], 2, '.', '');
@ -303,9 +305,10 @@ if ($form->validate()) {
$date = time(); // TODO: Maybe time zones implementation is needed here.
$visible = 1; // 1 = visible
$gradebook_link_id = is_resource_in_course_gradebook($course_id, $gradebook_link_type, $survey_id, $session_id);
$link_info = is_resource_in_course_gradebook($course_id, $gradebook_link_type, $survey_id, $session_id);
$gradebook_link_id = $link_info['id'];
if (!$gradebook_link_id) {
add_resource_to_course_gradebook($course_id, $gradebook_link_type, $survey_id, $title_gradebook, $survey_weight, $max_score, $description_gradebook, time(), 1, $session_id);
add_resource_to_course_gradebook($course_id, $gradebook_link_type, $survey_id, $title_gradebook, $survey_weight, $max_score, $description_gradebook, 1, $session_id);
} else {
Database::query('UPDATE '.$table_gradebook_link.' SET weight='.$survey_weight.' WHERE id='.$gradebook_link_id);
}

@ -364,7 +364,9 @@ function display_student_publications_list($id, $link_target_parameter, $dateFor
}
if (empty($my_folder_data)) {
$work_in_gradebook_link_id = is_resource_in_course_gradebook(api_get_course_id(), 3 , $id, api_get_session_id());
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 3 , $id, api_get_session_id());
$work_in_gradebook_link_id = $link_info['id'];
if ($work_in_gradebook_link_id) {
if ($is_allowed_to_edit)
if (intval($my_folder_data['qualification']) == 0) {
@ -466,7 +468,9 @@ function display_student_publications_list($id, $link_target_parameter, $dateFor
$is_assignment = $row['has_properties'];
$id2 = $row['id']; //work id
if ($is_allowed_to_edit) {
$locked = api_resource_is_locked_by_gradebook($id2);
if ($is_allowed_to_edit && $locked == false) {
// form edit directory
if (!empty($edit_dir) && $edit_dir == $id2) {
@ -486,16 +490,11 @@ function display_student_publications_list($id, $link_target_parameter, $dateFor
$form_folder->add_html_editor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'work', 'Width' => '80%', 'Height' => '200'));
$there_is_a_end_date = false;
$form_folder -> addElement('html', '<div class="row">
<div class="label">&nbsp;</div>
<div class="formw">
<a href="javascript://" onclick="javascript: return plus();" >
$form_folder -> addElement('advanced_settings', '<a href="javascript://" onclick="javascript: return plus();" >
<span id="plus">&nbsp;<img style="vertical-align:middle;" src="../img/div_show.gif" alt="" />
&nbsp;'.get_lang('AdvancedParameters').'
</span>
</a>
</div>
</div> ');
</a>');
$form_folder->addElement('html', '<div id="options" style="display: none;">');
if (empty($default)) {
@ -511,15 +510,28 @@ function display_student_publications_list($id, $link_target_parameter, $dateFor
$form_folder -> addGroup($qualification_input, 'qualification', get_lang('QualificationNumeric'));
if ((int)$row['weight'] == 0) {
$form_folder -> addElement('checkbox', 'make_calification', null, get_lang('MakeQualifiable'), 'onclick="javascript: if(this.checked){document.getElementById(\'option3\').style.display = \'block\';}else{document.getElementById(\'option3\').style.display = \'none\';}"');
$form_folder -> addElement('html', '<div id=\'option3\' style="display:none">');
//Loading gradebook select
load_gradebook_select_in_tool($form_folder);
$weight_input2[] = FormValidator :: createElement('text', 'weight');
$form_folder -> addGroup($weight_input2, 'weight', get_lang('WeightInTheGradebook'), 'size="10"');
$form_folder -> addElement('html', '</div>');
} else {
$weight_input[] = FormValidator :: createElement('text', 'weight');
//Loading gradebook select
load_gradebook_select_in_tool($form_folder);
$form_folder -> addGroup($weight_input, 'weight', get_lang('WeightInTheGradebook'), 'size="10"');
}
$link_info = is_resource_in_course_gradebook(api_get_course_id(), LINK_STUDENTPUBLICATION, $id2);
$defaults['category_id'] = $link_info['category_id'];
if ($homework['expires_on'] != '0000-00-00 00:00:00') {
$homework['expires_on'] = api_get_local_time($homework['expires_on']);
@ -615,8 +627,7 @@ function display_student_publications_list($id, $link_target_parameter, $dateFor
$values = $form_folder->exportValues();
$work_id = $values['work_id'];
//$values = $values['my_group'];
$dir_name = replace_dangerous_char($values['dir_name']);
$dir_name = disable_dangerous_file($dir_name);
@ -658,23 +669,24 @@ function display_student_publications_list($id, $link_target_parameter, $dateFor
Database::query($sql);
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$link_id = is_resource_in_course_gradebook(api_get_course_id(), 3 , $row['id'], api_get_session_id());
if ($link_id !== false) {
$course_code = api_get_course_id();
Database::query('UPDATE '.Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK).' SET weight = '."'".Database::escape_string((float)$_POST['weight']['weight'])."'".'
WHERE course_code = "'.$course_code.'" AND id = '.$link_id);
}
//we are changing the current work and we want add them into gradebook
if (isset($_POST['make_calification']) && $_POST['make_calification'] == 1) {
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/gradebookitem.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/evaluation.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/abstractlink.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$resource_name = $_POST['dir_name'];
add_resource_to_course_gradebook(api_get_course_id(), 3, $row['id'], $resource_name, (float)$_POST['weight']['weight'], (float)$_POST['qualification']['qualification'], $_POST['description'] , time(), 1, api_get_session_id());
}
if (isset($_POST['make_calification']) && $_POST['make_calification'] == 1 && !empty($_POST['category_id'])) {
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 3 , $row['id'], api_get_session_id());
$link_id = $link_info['id'];
if ($link_info !== false) {
$course_code = api_get_course_id();
Database::query('UPDATE '.Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK).' SET weight = '."'".Database::escape_string((float)$_POST['weight']['weight'])."'".'
WHERE course_code = "'.$course_code.'" AND id = '.$link_id);
}
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/gradebookitem.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/evaluation.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/abstractlink.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$resource_name = $_POST['dir_name'];
add_resource_to_course_gradebook($_POST['category_id'], api_get_course_id(), 3, $row['id'], $resource_name, (float)$_POST['weight']['weight'], (float)$_POST['qualification']['qualification'], $_POST['description'], 1, api_get_session_id());
}
update_dir_name($work_data, $dir_name, $values['dir_name']);
@ -760,9 +772,10 @@ function display_student_publications_list($id, $link_target_parameter, $dateFor
$add_to_name = '';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$link_id = is_resource_in_course_gradebook(api_get_course_id(), 3 , $id2 , api_get_session_id());
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 3 , $id2 , api_get_session_id());
$link_id = $link_info['id'];
$count = 0;
if ($link_id !== false) {
if ($link_info !== false) {
$gradebook_data = get_resource_from_course_gradebook($link_id);
$count = $gradebook_data['weight'];
}
@ -798,8 +811,14 @@ function display_student_publications_list($id, $link_target_parameter, $dateFor
if ($origin != 'learnpath') {
if ($is_allowed_to_edit) {
$action .= '<a href="'.api_get_self().'?cidReq='.api_get_course_id().'&origin='.$origin.'&gradebook='.$gradebook.'&edit_dir='.$id2.'">'.Display::return_icon('edit.png', get_lang('Modify'), array(), ICON_SIZE_SMALL).'</a>';
$action .= ' <a href="'.api_get_self().'?'.api_get_cidreq().'&origin='.$origin.'&gradebook='.$gradebook.'&delete_dir='.$id2.'" onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'), ENT_QUOTES))."'".')) return false;" title="'.get_lang('DirDelete').'" >'.Display::return_icon('delete.png',get_lang('DirDelete'),'',ICON_SIZE_SMALL).'</a>';
if (api_resource_is_locked_by_gradebook($id2)) {
$action .= Display::return_icon('edit_na.png', get_lang('Edit'), array(), ICON_SIZE_SMALL);
$action .= Display::return_icon('delete_na.png', get_lang('Delete'), array(), ICON_SIZE_SMALL);
} else {
$action .= '<a href="'.api_get_self().'?cidReq='.api_get_course_id().'&origin='.$origin.'&gradebook='.$gradebook.'&edit_dir='.$id2.'">'.Display::return_icon('edit.png', get_lang('Modify'), array(), ICON_SIZE_SMALL).'</a>';
$action .= ' <a href="'.api_get_self().'?'.api_get_cidreq().'&origin='.$origin.'&gradebook='.$gradebook.'&delete_dir='.$id2.'" onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'), ENT_QUOTES))."'".')) return false;" title="'.get_lang('DirDelete').'" >'.Display::return_icon('delete.png',get_lang('DirDelete'),'',ICON_SIZE_SMALL).'</a>';
}
$row[] = $action;
} else {
$row[] = '';
@ -1539,6 +1558,8 @@ function get_work_user_list($start, $limit, $column, $direction, $work_id, $wher
$work_data = get_work_data_by_id($work_id);
$is_allowed_to_edit = api_is_allowed_to_edit(null, true);
$condition_session = api_get_session_condition($session_id);
$locked = api_resource_is_locked_by_gradebook($work_id);
if (!empty($work_data)) {
@ -1627,8 +1648,7 @@ function get_work_user_list($start, $limit, $column, $direction, $work_id, $wher
//Firstname, lastname, username
$work['firstname'] = Display::div($work['firstname'], array('class' => $class));
$work['lastname'] = Display::div($work['lastname'], array('class' => $class));
$work['username'] = Display::div($work['username'], array('class' => $class));
$work['username'] = Display::div($work['username'], array('class' => $class));
//Type
$work['type'] = build_document_icon_tag('file', $work['file']);
@ -1652,23 +1672,38 @@ function get_work_user_list($start, $limit, $column, $direction, $work_id, $wher
$url = api_get_path(WEB_CODE_PATH).'work/work.php?'.api_get_cidreq().'&id='.$work_id.'&origin='.$origin.'&gradebook='.Security::remove_XSS($_GET['gradebook']);
$action = '';
if ($is_allowed_to_edit) {
if ($qualification_exists) {
$action .= '<a href="'.$url.'&amp;action=edit&item_id='.$item_id.'&amp;parent_id='.$work['parent_id'].'" title="'.get_lang('Modify').'" >'.
Display::return_icon('rate_work.png', get_lang('CorrectAndRate'),array(), ICON_SIZE_SMALL).'</a>';
if ($locked) {
if ($qualification_exists) {
$action .= Display::return_icon('rate_work_na.png', get_lang('CorrectAndRate'),array(), ICON_SIZE_SMALL);
} else {
$action .= Display::return_icon('edit_na.png', get_lang('Comment'),array(), ICON_SIZE_SMALL);
}
} else {
$action .= '<a href="'.$url.'&amp;action=edit&item_id='.$item_id.'&gradebook='.Security::remove_XSS($_GET['gradebook']).'&amp;parent_id='.$work['parent_id'].'" title="'.get_lang('Modify').'" >'.
Display::return_icon('edit.png', get_lang('Comment'),array(), ICON_SIZE_SMALL).'</a>';
if ($qualification_exists) {
$action .= '<a href="'.$url.'&amp;action=edit&item_id='.$item_id.'&amp;parent_id='.$work['parent_id'].'" title="'.get_lang('Modify').'" >'.
Display::return_icon('rate_work.png', get_lang('CorrectAndRate'),array(), ICON_SIZE_SMALL).'</a>';
} else {
$action .= '<a href="'.$url.'&amp;action=edit&item_id='.$item_id.'&gradebook='.Security::remove_XSS($_GET['gradebook']).'&amp;parent_id='.$work['parent_id'].'" title="'.get_lang('Modify').'" >'.
Display::return_icon('edit.png', get_lang('Comment'),array(), ICON_SIZE_SMALL).'</a>';
}
}
if ($work['contains_file']) {
$action .= '<a href="'.$url.'&amp;action=move&item_id='.$item_id.'" title="'.get_lang('Move').'">'.Display::return_icon('move.png', get_lang('Move'),array(), ICON_SIZE_SMALL).'</a>';
if ($locked) {
$action .= Display::return_icon('move_na.png', get_lang('Move'),array(), ICON_SIZE_SMALL);
} else {
$action .= '<a href="'.$url.'&amp;action=move&item_id='.$item_id.'" title="'.get_lang('Move').'">'.Display::return_icon('move.png', get_lang('Move'),array(), ICON_SIZE_SMALL).'</a>';
}
}
if ($work['accepted'] == '1') {
$action .= '<a href="'.$url.'&amp;action=make_invisible&item_id='.$item_id.'&amp;'.$sort_params.'" title="'.get_lang('Invisible').'" >'.Display::return_icon('visible.png', get_lang('Invisible'),array(), ICON_SIZE_SMALL).'</a>';
} else {
$action .= '<a href="'.$url.'&amp;action=make_visible&item_id='.$item_id.'&amp;'.$sort_params.'" title="'.get_lang('Visible').'" >'.Display::return_icon('invisible.png', get_lang('Visible'),array(), ICON_SIZE_SMALL).'</a> ';
}
$action .= '<a href="'.$url.'&amp;action=delete&amp;item_id='.$item_id.'" onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'),ENT_QUOTES))."'".')) return false;" title="'.get_lang('Delete').'" >'.Display::return_icon('delete.png', get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>';
if ($locked) {
$action .= Display::return_icon('delete_na.png', get_lang('Delete'),'',ICON_SIZE_SMALL);
} else {
$action .= '<a href="'.$url.'&amp;action=delete&amp;item_id='.$item_id.'" onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'),ENT_QUOTES))."'".')) return false;" title="'.get_lang('Delete').'" >'.Display::return_icon('delete.png', get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>';
}
} elseif ($is_author && (empty($work['qualificator_id']) || $work['qualificator_id'] == 0)) {
if (api_is_allowed_to_session_edit(false, true)) {
$action .= '<a href="'.$url.'&amp;action=edit&item_id='.$item_id.'" title="'.get_lang('Modify').'" >'.Display::return_icon('edit.png', get_lang('Modify'),array(), ICON_SIZE_SMALL).'</a>';
@ -1688,18 +1723,12 @@ function get_work_user_list($start, $limit, $column, $direction, $work_id, $wher
} else {
$qualificator_id = Display::label(get_lang('Revised'), 'success');
}
$work['qualificator_id'] = $qualificator_id;
$work['actions'] = $link_to_download.$action;
$work['qualificator_id'] = $qualificator_id;
$work['actions'] = $link_to_download.$action;
$works[] = $work;
}
}
return $works;
return $works;
}
}

@ -41,7 +41,7 @@
/* INIT SECTION */
$language_file = array('exercice', 'work', 'document', 'admin');
$language_file = array('exercice', 'work', 'document', 'admin', 'gradebook');
require_once '../inc/global.inc.php';
$current_course_tool = TOOL_STUDENTPUBLICATION;
@ -370,7 +370,7 @@ switch ($action) {
case 'edit':
case 'upload_form': //can be add or edit work
$is_author = false;
if (empty($item_id)) {
if (empty($item_id)) {
$parent_data = get_work_data_by_id($work_id);
$parent_data['qualification'] = intval($parent_data['qualification']);
@ -494,8 +494,12 @@ switch ($action) {
//fixes bug when showing modification form
if (!empty($work_id)) {
if ( $is_allowed_to_edit) {
$form->display();
if ($is_allowed_to_edit) {
if (api_resource_is_locked_by_gradebook($work_id)) {
echo Display::display_warning_message(get_lang('ResourceLockedByGradebook'));
} else {
$form->display();
}
} elseif ($is_author) {
if (empty($work_item['qualificator_id']) || $work_item['qualificator_id'] == 0) {
$form->display();
@ -758,12 +762,17 @@ switch ($action) {
$form->addElement('html', '<div id="options" style="display: none;">');
//QualificationOfAssignment
$form->addElement('text', 'qualification_value', get_lang('QualificationNumeric'));
$form->addElement('checkbox', 'make_calification', null, get_lang('MakeQualifiable'), array('id' =>'make_calification_id', 'onclick' => "javascript: if(this.checked){document.getElementById('option1').style.display='block';}else{document.getElementById('option1').style.display='none';}"));
$form->addElement('html', '<div id="option1" style="display: none;">');
//Loading gradebook select
load_gradebook_select_in_tool($form);
$form->addElement('text', 'weight', get_lang('WeightInTheGradebook'));
$form->addElement('html', '</div>');
@ -888,20 +897,20 @@ switch ($action) {
$sql_add_publication = "UPDATE $work_table SET has_properties = $inserted_id, view_properties = 0 WHERE c_id = $course_id AND id = $id";
Database::query($sql_add_publication);
}
if (isset($_POST['make_calification']) && $_POST['make_calification'] == 1) {
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/gradebookitem.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/evaluation.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/abstractlink.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
//$resource_name = (empty($_POST['qualification_name'])) ? $_POST['new_dir'] : $_POST['qualification_name'];
$resource_name = $_POST['new_dir'];
add_resource_to_course_gradebook(api_get_course_id(), 3, $id, $resource_name, $_POST['weight'], $_POST['qualification_value'], $_POST['description'], time(), 1, api_get_session_id());
}
// end features
if (!empty($_POST['category_id'])) {
if (isset($_POST['make_calification']) && $_POST['make_calification'] == 1) {
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/gradebookitem.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/evaluation.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/abstractlink.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$resource_name = $_POST['new_dir'];
add_resource_to_course_gradebook($_POST['category_id'], api_get_course_id(), 3, $id, $resource_name, $_POST['weight'], $_POST['qualification_value'], $_POST['description'], 1, api_get_session_id());
}
}
if (api_get_course_setting('email_alert_students_on_new_homework') == 1) {
send_email_on_homework_creation(api_get_course_id());
}
@ -1012,30 +1021,38 @@ switch ($action) {
/* Delete dir command */
if ($is_allowed_to_edit && !empty($_REQUEST['delete_dir'])) {
if ($is_allowed_to_edit && !empty($_REQUEST['delete_dir'])) {
$delete_dir_id = intval($_REQUEST['delete_dir']);
$work_to_delete = get_work_data_by_id($delete_dir_id);
del_dir($delete_dir_id);
// gets calendar_id from student_publication_assigment
$sql = "SELECT add_to_calendar FROM $TSTDPUBASG WHERE c_id = $course_id AND publication_id ='$delete_dir_id'";
$res = Database::query($sql);
$calendar_id = Database::fetch_row($res);
$locked = api_resource_is_locked_by_gradebook($delete_dir_id);
// delete from agenda if it exists
if (!empty($calendar_id[0])) {
$t_agenda = Database::get_course_table(TABLE_AGENDA);
$sql = "DELETE FROM $t_agenda WHERE c_id = $course_id AND id ='".$calendar_id[0]."'";
Database::query($sql);
}
$sql = "DELETE FROM $TSTDPUBASG WHERE c_id = $course_id AND publication_id ='$delete_dir_id'";
Database::query($sql);
$link_id = is_resource_in_course_gradebook(api_get_course_id(), 3 , $delete_dir_id, api_get_session_id());
if ($link_id !== false) {
remove_resource_from_course_gradebook($link_id);
}
Display :: display_confirmation_message(get_lang('DirDeleted') . ': '.$work_to_delete['title']);
if ($locked == false) {
$work_to_delete = get_work_data_by_id($delete_dir_id);
del_dir($delete_dir_id);
// gets calendar_id from student_publication_assigment
$sql = "SELECT add_to_calendar FROM $TSTDPUBASG WHERE c_id = $course_id AND publication_id ='$delete_dir_id'";
$res = Database::query($sql);
$calendar_id = Database::fetch_row($res);
// delete from agenda if it exists
if (!empty($calendar_id[0])) {
$t_agenda = Database::get_course_table(TABLE_AGENDA);
$sql = "DELETE FROM $t_agenda WHERE c_id = $course_id AND id ='".$calendar_id[0]."'";
Database::query($sql);
}
$sql = "DELETE FROM $TSTDPUBASG WHERE c_id = $course_id AND publication_id ='$delete_dir_id'";
Database::query($sql);
$link_info = is_resource_in_course_gradebook(api_get_course_id(), 3 , $delete_dir_id, api_get_session_id());
$link_id = $link_info['id'];
if ($link_info !== false) {
remove_resource_from_course_gradebook($link_id);
}
Display :: display_confirmation_message(get_lang('DirDeleted') . ': '.$work_to_delete['title']);
} else {
Display::display_warning_message(get_lang('ResourceLockedByGradebook'));
}
}
/* DELETE WORK COMMAND */
@ -1044,9 +1061,10 @@ switch ($action) {
$file_deleted = false;
$is_author = user_is_author($item_id);
$work_data = get_work_data_by_id($item_id);
if ($is_allowed_to_edit || ($is_author && api_get_course_setting('student_delete_own_publication') == 1 && $work_data['qualificator_id'] == 0)) {
$work_data = get_work_data_by_id($item_id);
$locked = api_resource_is_locked_by_gradebook($work_data['parent_id']);
if ( ($is_allowed_to_edit && $locked == false) || ($locked == false AND $is_author && api_get_course_setting('student_delete_own_publication') == 1 && $work_data['qualificator_id'] == 0)) {
//we found the current user is the author
$queryString1 = "SELECT url, contains_file FROM " . $work_table . " WHERE c_id = $course_id AND id = $item_id";
$result1 = Database::query($queryString1);

Loading…
Cancel
Save