Improve ajax prerequisite result see BT#5776

pull/2483/head
jmontoyaa 8 years ago
parent d513a7a8f0
commit 553b10aba8
  1. 3
      main/inc/ajax/lp.ajax.php
  2. 2
      main/lang/english/trad4all.inc.php
  3. 4
      main/lang/french/trad4all.inc.php
  4. 2
      main/lang/spanish/trad4all.inc.php
  5. 56
      main/lp/learnpathItem.class.php
  6. 15
      main/lp/lp_view.php

@ -324,8 +324,9 @@ switch ($action) {
if ($result) { if ($result) {
echo '1'; echo '1';
} else { } else {
echo '0'; echo $lp->error;
} }
$lp->error = '';
exit; exit;
break; break;

@ -8119,4 +8119,6 @@ $PendingSurveys = "Pending surveys";
$NoPendingSurveys = "No pending surveys"; $NoPendingSurveys = "No pending surveys";
$HottestSessions = "Most popular sessions"; $HottestSessions = "Most popular sessions";
$LPItemCanBeAccessed = "Item can be viewed - Prerequisites completed"; $LPItemCanBeAccessed = "Item can be viewed - Prerequisites completed";
$ItemXBlocksThisElement = "Item %s blocks this step";
$YourResultAtXBlocksThisElement = "Your result at %s blocks this step";
?> ?>

@ -8055,5 +8055,7 @@ $DocumentXHasBeenAddedToDocumentInYourCourseXByUserX = "Un nouveau document %s a
$PendingSurveys = "Enquêtes en attente"; $PendingSurveys = "Enquêtes en attente";
$NoPendingSurveys = "Pas d'enquête en attente"; $NoPendingSurveys = "Pas d'enquête en attente";
$HottestSessions = "Sessions les plus populaires"; $HottestSessions = "Sessions les plus populaires";
$LPItemCanBeAccessed = "Item accessible - prérequis complété"; $LPItemCanBeAccessed = "Etape accessible";
$ItemXBlocksThisElement = "L'absence de consultation de l'étape \"%s\" ne vous permet pas d'accéder à celle-ci";
$YourResultAtXBlocksThisElement = "Votre score à l'étape \"%s\" ne vous permet d'accéder à celle-ci";
?> ?>

@ -8143,4 +8143,6 @@ $PendingSurveys = "Encuestas pendientes";
$NoPendingSurveys = "Sin encuestas pendientes"; $NoPendingSurveys = "Sin encuestas pendientes";
$HottestSessions = "Sesiones más populares"; $HottestSessions = "Sesiones más populares";
$LPItemCanBeAccessed = "Item accesible - prerequisitos completados."; $LPItemCanBeAccessed = "Item accesible - prerequisitos completados.";
$ItemXBlocksThisElement = "El item \"%s\" bloquea este paso";
$YourResultAtXBlocksThisElement = "El resultado en el item \"%s\" bloquea esta etapa.";
?> ?>

@ -2111,6 +2111,7 @@ class learnpathItem
return false; return false;
} }
while (strpos($prereqs_string, '(') !== false) { while (strpos($prereqs_string, '(') !== false) {
// Remove any () set and replace with its value. // Remove any () set and replace with its value.
$matches = []; $matches = [];
@ -2435,7 +2436,7 @@ class learnpathItem
} }
} else { } else {
// Nothing found there either. Now return the // Nothing found there either. Now return the
// value of the corresponding resource completion status. // value of the corresponding resource completion status.
if (self::DEBUG > 1) { if (self::DEBUG > 1) {
error_log( error_log(
'New LP - Didnt find any group, returning value for '.$prereqs_string, 'New LP - Didnt find any group, returning value for '.$prereqs_string,
@ -2446,12 +2447,19 @@ class learnpathItem
if (isset($refs_list[$prereqs_string]) && if (isset($refs_list[$prereqs_string]) &&
isset($items[$refs_list[$prereqs_string]]) isset($items[$refs_list[$prereqs_string]])
) { ) {
if ($items[$refs_list[$prereqs_string]]->type == 'quiz') { /** @var learnpathItem $itemToCheck */
$itemToCheck = $items[$refs_list[$prereqs_string]];
if ($itemToCheck->type == 'quiz') {
// 1. Checking the status in current items. // 1. Checking the status in current items.
$status = $items[$refs_list[$prereqs_string]]->get_status(true); $status = $itemToCheck->get_status(true);
$returnstatus = $status == $this->possible_status[2] || $status == $this->possible_status[3]; $returnstatus = $status == $this->possible_status[2] || $status == $this->possible_status[3];
if (!$returnstatus) { if (!$returnstatus) {
$explanation = sprintf(
get_lang('ItemXBlocksThisElement'),
$itemToCheck->get_title()
);
$this->prereq_alert = $explanation;
if (self::DEBUG > 1) { if (self::DEBUG > 1) {
error_log( error_log(
'New LP - Prerequisite '.$prereqs_string.' not complete', 'New LP - Prerequisite '.$prereqs_string.' not complete',
@ -2494,7 +2502,11 @@ class learnpathItem
) { ) {
$returnstatus = true; $returnstatus = true;
} else { } else {
$this->prereq_alert = get_lang('LearnpathPrereqNotCompleted'); $explanation = sprintf(
get_lang('YourResultAtXBlocksThisElement'),
$itemToCheck->get_title()
);
$this->prereq_alert = $explanation;
$returnstatus = false; $returnstatus = false;
} }
} else { } else {
@ -2504,14 +2516,16 @@ class learnpathItem
) { ) {
$returnstatus = true; $returnstatus = true;
} else { } else {
$this->prereq_alert = get_lang('LearnpathPrereqNotCompleted'); $explanation = sprintf(
get_lang('YourResultAtXBlocksThisElement'),
$itemToCheck->get_title()
);
$this->prereq_alert = $explanation;
$returnstatus = false; $returnstatus = false;
} }
} }
} else { } else {
$this->prereq_alert = get_lang( $this->prereq_alert = get_lang('LearnpathPrereqNotCompleted');
'LearnpathPrereqNotCompleted'
);
$returnstatus = false; $returnstatus = false;
} }
} }
@ -2538,7 +2552,11 @@ class learnpathItem
$returnstatus = true; $returnstatus = true;
break; break;
} else { } else {
$this->prereq_alert = get_lang('LearnpathPrereqNotCompleted'); $explanation = sprintf(
get_lang('YourResultAtXBlocksThisElement'),
$itemToCheck->get_title()
);
$this->prereq_alert = $explanation;
$returnstatus = false; $returnstatus = false;
} }
} else { } else {
@ -2546,26 +2564,27 @@ class learnpathItem
$returnstatus = true; $returnstatus = true;
break; break;
} else { } else {
$this->prereq_alert = get_lang( $this->prereq_alert = get_lang('LearnpathPrereqNotCompleted');
'LearnpathPrereqNotCompleted'
);
$returnstatus = false; $returnstatus = false;
} }
} }
} }
} else { } else {
$this->prereq_alert = get_lang( $this->prereq_alert = get_lang('LearnpathPrereqNotCompleted');
'LearnpathPrereqNotCompleted'
);
$returnstatus = false; $returnstatus = false;
} }
} }
return $returnstatus; return $returnstatus;
} else { } else {
$status = $items[$refs_list[$prereqs_string]]->get_status(false); $status = $itemToCheck->get_status(false);
$returnstatus = $status == $this->possible_status[2] || $status == $this->possible_status[3]; $returnstatus = $status == $this->possible_status[2] || $status == $this->possible_status[3];
if (!$returnstatus) { if (!$returnstatus) {
$explanation = sprintf(
get_lang('ItemXBlocksThisElement'),
$itemToCheck->get_title()
);
$this->prereq_alert = $explanation;
if (self::DEBUG > 1) { if (self::DEBUG > 1) {
error_log( error_log(
'New LP - Prerequisite '.$prereqs_string.' not complete', 'New LP - Prerequisite '.$prereqs_string.' not complete',
@ -2689,16 +2708,13 @@ class learnpathItem
$status = $items[$refs_list[$list[0]]]->get_status(true); $status = $items[$refs_list[$list[0]]]->get_status(true);
$returnstatus = $status == 'completed' || $status == 'passed'; $returnstatus = $status == 'completed' || $status == 'passed';
if (!$returnstatus && empty($this->prereq_alert)) { if (!$returnstatus && empty($this->prereq_alert)) {
$this->prereq_alert = get_lang( $this->prereq_alert = get_lang('LearnpathPrereqNotCompleted');
'LearnpathPrereqNotCompleted'
);
} }
return $returnstatus; return $returnstatus;
} }
} }
} }
if (empty($this->prereq_alert)) { if (empty($this->prereq_alert)) {
$this->prereq_alert = get_lang('LearnpathPrereqNotCompleted'); $this->prereq_alert = get_lang('LearnpathPrereqNotCompleted');
} }

@ -131,7 +131,7 @@ $(document).ready(function() {
$("div#log_content").empty(); $("div#log_content").empty();
}); });
$(".scorm_item_normal").qtip({ $(".scorm_item_normal").qtip({
content: { content: {
text: function(event, api) { text: function(event, api) {
var item = $(this); var item = $(this);
@ -144,13 +144,14 @@ $(document).ready(function() {
async: false async: false
}) })
.then(function(content) { .then(function(content) {
if (content == 0) { if (content == 1) {
textToShow = "'.addslashes(get_lang('LearnpathPrereqNotCompleted')).'";
} else {
textToShow = "'.addslashes(get_lang('LPItemCanBeAccessed')).'"; textToShow = "'.addslashes(get_lang('LPItemCanBeAccessed')).'";
} api.set("style.classes", "qtip-green qtip-shadow");
// Set the tooltip content upon successful retrieval } else {
//api.set(\'content.text\', "content"); textToShow = content;
api.set("style.classes", "qtip-red qtip-shadow");
}
return textToShow; return textToShow;
}); });
return textToShow; return textToShow;

Loading…
Cancel
Save