Merge branch '1.11.x' of github.com:chamilo/chamilo-lms into 1.11.x

pull/2731/head
Yannick Warnier 7 years ago
commit 13963ba00a
  1. 2
      app/Migrations/Schema/V111/Version20160715122300.php
  2. BIN
      main/img/icons/128/add_doodle.png
  3. BIN
      main/img/icons/22/add_doodle.png
  4. BIN
      main/img/icons/32/add_doodle.png
  5. BIN
      main/img/icons/48/add_doodle.png
  6. BIN
      main/img/icons/64/add_doodle.png
  7. 2218
      main/img/icons/svg/add_doodle.svg
  8. 13
      main/lp/learnpath.class.php
  9. 53
      main/lp/learnpathItem.class.php
  10. 4
      main/lp/lp_content.php
  11. 1
      main/lp/lp_controller.php
  12. 2
      main/lp/lp_edit_item_prereq.php
  13. 2
      main/survey/create_new_survey.php
  14. 1
      main/survey/surveyUtil.class.php
  15. 1
      main/survey/survey_invite.php
  16. 2
      main/survey/survey_list.php

@ -23,7 +23,7 @@ class Version20160715122300 extends AbstractMigrationChamilo
$this->addSql('ALTER TABLE c_student_publication CHANGE session_id session_id INT DEFAULT NULL');
$this->addSql('UPDATE c_student_publication SET session_id = NULL WHERE session_id = 0');
// Fix not existing session id
$this->addSql('DELETE FROM c_student_publication WHERE session_id not in (SELECT id FROM session)');
$this->addSql('DELETE FROM c_student_publication WHERE session_id <> NULL AND session_id not in (SELECT id FROM session)');
$this->addSql('ALTER TABLE c_student_publication ADD CONSTRAINT fk_session FOREIGN KEY (session_id) REFERENCES session (id)');
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 76 KiB

@ -10290,8 +10290,10 @@ class learnpath
public function display_item_prerequisites_form($item_id = 0)
{
$course_id = api_get_course_int_id();
$item_id = (int) $item_id;
$tbl_lp_item = Database::get_course_table(TABLE_LP_ITEM);
$item_id = intval($item_id);
/* Current prerequisite */
$sql = "SELECT * FROM $tbl_lp_item
WHERE iid = $item_id";
@ -10329,10 +10331,13 @@ class learnpath
$selectedMinScore = [];
$selectedMaxScore = [];
$masteryScore = [];
while ($row = Database::fetch_array($result)) {
if ($row['id'] == $item_id) {
$selectedMinScore[$row['prerequisite']] = $row['prerequisite_min_score'];
$selectedMaxScore[$row['prerequisite']] = $row['prerequisite_max_score'];
$masteryScore[$row['prerequisite']] = $row['mastery_score'];
}
$arrLP[] = [
'id' => $row['iid'],
@ -10366,6 +10371,7 @@ class learnpath
$selectedMaxScoreValue = isset($selectedMaxScore[$item['id']]) ? $selectedMaxScore[$item['id']] : $item['max_score'];
$selectedMinScoreValue = isset($selectedMinScore[$item['id']]) ? $selectedMinScore[$item['id']] : 0;
$masteryScoreAsMinValue = isset($masteryScore[$item['id']]) ? $masteryScore[$item['id']] : 0;
$return .= '<tr>';
$return .= '<td '.(($item['item_type'] != TOOL_QUIZ && $item['item_type'] != TOOL_HOTPOTATOES) ? ' colspan="3"' : '').'>';
@ -10398,6 +10404,11 @@ class learnpath
$lpItemObj->update();
$item['max_score'] = $lpItemObj->max_score;
if (empty($selectedMinScoreValue) && !empty($masteryScoreAsMinValue)) {
// Backwards compatibility with 1.9.x use mastery_score as min value
$selectedMinScoreValue = $masteryScoreAsMinValue;
}
$return .= '<td>';
$return .= '<input
class="form-control"

@ -2175,10 +2175,9 @@ class learnpathItem
break;
}
}
if (empty($this->prereq_alert) && !$andstatus) {
$this->prereq_alert = get_lang(
'LearnpathPrereqNotCompleted'
);
$this->prereq_alert = get_lang('LearnpathPrereqNotCompleted');
}
return $andstatus;
@ -2452,7 +2451,7 @@ class learnpathItem
/** @var learnpathItem $itemToCheck */
$itemToCheck = $items[$refs_list[$prereqs_string]];
if ($itemToCheck->type == 'quiz') {
if ($itemToCheck->type === 'quiz') {
// 1. Checking the status in current items.
$status = $itemToCheck->get_status(true);
$returnstatus = $status == $this->possible_status[2] || $status == $this->possible_status[3];
@ -2496,10 +2495,18 @@ class learnpathItem
LIMIT 0, 1';
$rs_quiz = Database::query($sql);
if ($quiz = Database::fetch_array($rs_quiz)) {
$minScore = $items[$refs_list[$this->get_id(
)]]->getPrerequisiteMinScore();
$maxScore = $items[$refs_list[$this->get_id(
)]]->getPrerequisiteMaxScore();
/** @var learnpathItem $myItemToCheck */
$myItemToCheck = $items[$refs_list[$this->get_id()]];
$minScore = $myItemToCheck->getPrerequisiteMinScore();
$maxScore = $myItemToCheck->getPrerequisiteMaxScore();
if (empty($minScore)) {
// Try with mastery_score
$masteryScoreAsMin = $myItemToCheck->get_mastery_score();
if (!empty($masteryScoreAsMin)) {
$minScore = $masteryScoreAsMin;
}
}
if (isset($minScore) && isset($minScore)) {
// Taking min/max prerequisites values see BT#5776
@ -2545,19 +2552,29 @@ class learnpathItem
exe_exo_id = '.$items[$refs_list[$prereqs_string]]->path.' AND
exe_user_id = '.$user_id.' AND
orig_lp_id = '.$this->lp_id.' AND
orig_lp_item_id = '.$prereqs_string.' ';
orig_lp_item_id = '.$prereqs_string;
$rs_quiz = Database::query($sql);
if (Database::num_rows($rs_quiz) > 0) {
while ($quiz = Database::fetch_array($rs_quiz)) {
$minScore = $items[$refs_list[$this->get_id(
)]]->getPrerequisiteMinScore();
$maxScore = $items[$refs_list[$this->get_id(
)]]->getPrerequisiteMaxScore();
/** @var learnpathItem $myItemToCheck */
$myItemToCheck = $items[$refs_list[$this->get_id()]];
$minScore = $myItemToCheck->getPrerequisiteMinScore();
$maxScore = $myItemToCheck->getPrerequisiteMaxScore();
if (empty($minScore)) {
// Try with mastery_score
$masteryScoreAsMin = $myItemToCheck->get_mastery_score();
if (!empty($masteryScoreAsMin)) {
$minScore = $masteryScoreAsMin;
}
}
if (isset($minScore) && isset($minScore)) {
// Taking min/max prerequisites values see BT#5776
if ($quiz['exe_result'] >= $minScore && $quiz['exe_result'] <= $maxScore) {
if ($quiz['exe_result'] >= $minScore &&
$quiz['exe_result'] <= $maxScore
) {
$returnstatus = true;
break;
} else {
@ -2575,9 +2592,7 @@ class learnpathItem
$returnstatus = true;
break;
} else {
$this->prereq_alert = get_lang(
'LearnpathPrereqNotCompleted'
);
$this->prereq_alert = get_lang('LearnpathPrereqNotCompleted');
$returnstatus = false;
}
}
@ -2728,9 +2743,7 @@ class learnpathItem
}
}
if (!$orstatus && empty($this->prereq_alert)) {
$this->prereq_alert = get_lang(
'LearnpathPrereqNotCompleted'
);
$this->prereq_alert = get_lang('LearnpathPrereqNotCompleted');
}
return $orstatus;

@ -62,7 +62,7 @@ if ($dir) {
$src = $learnPath->fixBlockedLinks($src);
break;
}
$src = 'blank.php?error=prerequisites&prerequisite_message='.$learnPath->error;
$src = 'blank.php?error=prerequisites&prerequisite_message='.Security::remove_XSS($learnPath->error);
break;
case 2:
$learnPath->stop_previous_item();
@ -72,7 +72,7 @@ if ($dir) {
$src = $learnPath->get_link('http', $lpItemId);
$learnPath->start_current_item(); // starts time counter manually if asset
} else {
$src = 'blank.php?error=prerequisites&prerequisite_message='.$learnPath->error;
$src = 'blank.php?error=prerequisites&prerequisite_message='.Security::remove_XSS($learnPath->error);
}
break;
case 3:

@ -757,6 +757,7 @@ switch ($action) {
$is_success = true;
}
Display::addFlash(Display::return_message(get_lang('Updated')));
$url = api_get_self().'?action=add_item&type=step&lp_id='.intval($_SESSION['oLP']->lp_id).'&'.api_get_cidreq();
header('Location: '.$url);
exit;

@ -25,7 +25,7 @@ $learnpath_id = isset($_REQUEST['lp_id']) ? (int) $_REQUEST['lp_id'] : null;
$submit = isset($_POST['submit_button']) ? $_POST['submit_button'] : null;
/* MAIN CODE */
if ((!$is_allowed_to_edit) || ($isStudentView)) {
if ((!$is_allowed_to_edit) || $isStudentView) {
error_log('New LP - User not authorized in lp_edit_item_prereq.php');
header('location:lp_controller.php?action=view&lp_id='.$learnpath_id);
exit;

@ -16,6 +16,8 @@
*/
require_once __DIR__.'/../inc/global.inc.php';
$_course = api_get_course_info();
$this_section = SECTION_COURSES;
$allowSurveyAvailabilityDatetime = api_get_configuration_value('allow_survey_availability_datetime');

@ -1845,7 +1845,6 @@ class SurveyUtil
foreach ($questions as $key => &$question) {
if (is_array($allowed_question_types)) {
if (in_array($question['type'], $allowed_question_types)) {
//echo '<option value="'.$question['question_id'].'"';
if (isset($_GET['xaxis']) && $_GET['xaxis'] == $question['question_id']) {
$defaults['xaxis'] = $question['question_id'];
}

@ -23,6 +23,7 @@ if (!api_is_allowed_to_edit(false, true)) {
}
$course_id = api_get_course_int_id();
$_course = api_get_course_info();
// Getting the survey information
$survey_id = Security::remove_XSS($_GET['survey_id']);

@ -189,7 +189,7 @@ if (!api_is_session_general_coach() || $extend_rights_for_coachs == 'true') {
echo '<a href="'.api_get_path(WEB_CODE_PATH).'survey/create_new_survey.php?'.api_get_cidreq().'&amp;action=add">'.
Display::return_icon('new_survey.png', get_lang('CreateNewSurvey'), '', ICON_SIZE_MEDIUM).'</a> ';
$url = api_get_path(WEB_CODE_PATH).'survey/create_meeting.php?'.api_get_cidreq();
echo Display::url(Display::return_icon('add.png', get_lang('CreateNewSurvey'), '', ICON_SIZE_MEDIUM), $url);
echo Display::url(Display::return_icon('add_doodle.png', get_lang('CreateNewSurveyDoodle'), '', ICON_SIZE_MEDIUM), $url);
}
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;search=advanced">'.
Display::return_icon('search.png', get_lang('Search'), '', ICON_SIZE_MEDIUM).'</a>';

Loading…
Cancel
Save