Project

General

Profile

Bug #7171

Pbl sur la reprise d'un exercice avec nombre de tentatives infini/ bug on Resumption of an exercise with infinite number of attempts

Added by Gaelle R about 5 years ago. Updated about 5 years ago.

Status:
Bug resolved
Priority:
Normal
Assignee:
Category:
Exercises
Target version:
Start date:
23/05/2014
Due date:
% Done:

100%

Estimated time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

Bonjour,

Nous sommes en train de travailler sur la 1.9.8 de Chamilo.
Le problème qui va être décrit a été observé sous FF, Chrome et IE (Dernières versions en cours).
Nous créons un exercice de quelques questions QCM. Dans les paramètres avancés, nous choisissons Tentatives maximum = infini
Je commence l'exercice, réponds à la question 1 et utilise le bouton "quitter" sur la question 2.
Autre procédure qui conduit au même résultat : je ferme complètement le navigateur.
Lorsque je reviens sur l'exercice, la plate-forme renvoie l'information suivante "Vous avez atteint le nombre maximum de tentatives pour cet exercice. En tant qu'administrateur de ce cours, vous pouvez toutefois essayer à nouveau, mais veuillez noter que vos résultats ne s'afficheront pas sur la page de résultats"
Si je fais le même essai en tant qu'élève, j'ai un message qui me dit que j'ai atteint la limite de 0 tentatives. La propriété infini ne semble pas prise en compte car je ne peux reprendre et terminer un exercice quitté. Bizarre ! Bizarre ! On est d'accord qu'infini = ilimité :roll: ?
Y a t-il une configuration à faire dans la plate-forme que nous n'aurions pas vu ?
Merci pour votre réponse.

Hello,

We are working on 1.9.8 of Chamilo.
The problem which is going to be described was observed under FF, Chrome-plate and IE ( Last current versions).
We create an exercise of some questions MCQ. In the advanced parameters, we choose Attempts maximum = infinity
I begin the exercise, answer the question 1 and use the button "to leave" on the question 2.
Other procedure which leads to the same result : I close completely the browser.
When I return on the exercise, the platform sends back the following information " you reached the maximum number of attempts for this exercise. As administrator of this course, you can however try again, but please note that your results will not display on the page of results(profits) "
If I make the same try as student, I have a message which tells me that I reached the limit of 0 attempts. The property infinity does not seem taken into account because I cannot take back and end a left exercise. Strange! Strange! We agree that infinity = ilimité :roll:
Is there a configuration in the platform that we would not have seen ?
Thank you for your answer.

History

#1

Updated by Andre Boivin about 5 years ago

Nous avons le même problème, je croyais être le seul. De plus, une enseignante m'affirme que ce ne sont que certains élèves qui sont affectés. Moi je me suis inscrit à son cours comme un élève bidon et je n'ai pas le problème.

#2

Updated by serge bayol about 5 years ago

Bonjour,
Je travaille à la résolution de ce problème que j'ai découvert ce matin et relayé par Gaëlle. J'espère que Yannick pourra confirmer qu'il s'agit d'un bug. Le problème c'est que je ne sais pas les raisons ou les objectifs qui ont amenés à modifier le code. De fait il est difficile d'intervenir sans risquer d'altérer le fonctionnement de ce script. J'espère malgré tout apporter une solution rapidement (quelques jours).
Si quelqu'un peut m'apporter des éléments sur l'architecture de ce script.
Serge

Hello,
I'm working on solving this problem that I discovered this morning and relayed by Gaëlle. I hope Yannick can confirm that this is a bug. The problem is that i dont know the reasons or goals which require to modify the code. In fact it is difficult to change the code without the risk of damaging the functioning of the script. I hope despite all to provide a solution quickly (a few days).
If anyone can provide me some informations on the architecture of the script and is goal.
Serge

#3

Updated by Yannick Warnier about 5 years ago

Serge, est-ce que tu as identifié spécifiquement le code responsable de ce comportement (non souhaité)?

#4

Updated by Yannick Warnier about 5 years ago

  • Assignee changed from Yannick Warnier to Julio Montoya
#5

Updated by serge bayol about 5 years ago

Bonjour Yannick,

Dans overview.php ligne 248 => 250

if (!empty($exercise_url_button) && ($countNotFinished == 0 || api_is_allowed_to_edit())) {
$html .= Display::div(Display::div($exercise_url_button, array('class'=>'exercise_overview_options span12')), array('class'=>' row'));
}

$countNotFinished indique un exercice non terminé mais ne devrait pas empécher l'affichage du boutton suivant ou alors devrait diriger vers la question surlaquelle l'élève s'est arrété.

A confirmer, je regarde cela de plus près.

#6

Updated by Julio Montoya about 5 years ago

  • Status changed from New to Assigned

Testing ...

#7

Updated by Julio Montoya about 5 years ago

  • Status changed from Assigned to Needs testing
  • Assignee deleted (Julio Montoya)
  • % Done changed from 0 to 50

The error appears because of this change:

https://github.com/chamilo/chamilo-lms/commit/6618eccefa90642f24c6785d1280fbb123984d70

I make some changes so it should work now.

#8

Updated by Andre Boivin about 5 years ago

  • Status changed from Needs testing to Needs more info
  • Assignee set to Julio Montoya

Meme problème avec les 2 nouveaux fichiers :
Désolé, vous ne pouvez pas tenter le questionnaire 'Document principal ou secondaire' car vous avez déjà atteint la limite de 0 tentatives. Vous avez essayé de résoudre ce questionnaire plus tôt.

J'ai eu 3 autres enseignants qui m'ont relaté le problème...

#9

Updated by serge bayol about 5 years ago

La modification de Julio améliore le fonctionnement cependant il reste 2 bugs:

1]Comme le mentionne Andre le message qui s'affiche n'est pas cohérent "vous avez déjà atteint la limite de 0 tentatives" mais à présent le bouton "Démmarer le test" s'affiche correctement.

2]Lorsque un exercice a été tenté et terminé on ne peut plus le rententé car aucun bouton ne s'affiche

info : il faut aussi modifier l'appel de la nouvelle function "get_attempt_count_incomplete()" dans le fichier exercice.class.php => ligne 3855

Je travaille sur le message incohérent du compteur. je poste quand je peux ! =====
Julio modification improves the functioning but it remains two bugs:

1] As mentioned Andre the message that appears is not consistent "you've reached the limit of 0 attempts" but now "Démmarer test" button is displayed correctly.

2] When an exercise has been attempted and completed it is no longer to make a new attempt because no button is displayed

info: you must also change the call of the new function "get_attempt_count_incomplete ()" in the file exercice.class.php => Online 3855

I work on the wrong message counter. I post when I can!

#10

Updated by serge bayol about 5 years ago

Hello,
I did a change in the code that need to be tested. I can't publish on github so i put here the changed lines.
This change avoid the corrupted message of reached limit of 0
In my view i compare the variable $counter (which represent the number of completed attempt in place of $countNotFinished which represent the attempt not terminated) and $objExercise->selectAttempts() (which is the max attempts allowed).
As the case we display the message of max attempt limit reached for the spefic case of unlimited attempt (0 in database) i exclude the case where max attempt ($objExercise->selectAttempts()) is equal to 0 =======================================================
i move up the 2 lines :

$attempts = get_exercise_results_by_user(api_get_user_id(), $objExercise->id, api_get_course_id(), api_get_session_id(), $learnpath_id, $learnpath_item_id, 'desc');
$counter = count($attempts);
above these lines :
if ($counter >= $objExercise->selectAttempts() && !api_is_allowed_to_edit() && !($objExercise->selectAttempts()==0)) {
    $message = Display::display_warning_message(sprintf(get_lang('ReachedMaxAttempts'),$objExercise->selectTitle(),$objExercise->selectAttempts()).' '.get_lang('YouTriedToResolveThisExerciseEarlier'));
} elseif ($counter >= $objExercise->selectAttempts() && api_is_allowed_to_edit() && !($objExercise->selectAttempts()==0)) {
    $message = Display::display_warning_message(get_lang('ReachedMaxAttemptsAdmin'));
}
=======================================================

could you confirm if working for you thanks
#11

Updated by Julio Montoya about 5 years ago

  • Assignee deleted (Julio Montoya)

These are the changes I made:

https://github.com/chamilo/chamilo-lms/commit/9051b29273719759a99474943b3b6616a7d13e7a

And is working form me, can you please test in http://stable.chamilo.org (admin/admin) so I can debug the error you mention.

#12

Updated by serge bayol about 5 years ago

it's working fine ! thanks
I need to understand what you did now ...

#13

Updated by serge bayol about 5 years ago

Hello,
i looked at the code and saw you stopped using the code with the notion of "started" but "not terminated". Do you expect reusing this notion for future developments ? like scorm compatibility ?
Thanks anyway

#14

Updated by Andre Boivin about 5 years ago

Ok fonctionne bien sur www.ticfp.qc.ca
Merci!

#15

Updated by Yannick Warnier about 5 years ago

serge bayol wrote:

i looked at the code and saw you stopped using the code with the notion of "started" but "not terminated". Do you expect reusing this notion for future developments ? like scorm compatibility ?

Serge, I'm not sure this is important for SCORM compatibility, as exercises from SCORM are managed through their own implementation (unless you are talking about exporting to SCORM)

#16

Updated by Yannick Warnier about 5 years ago

  • Status changed from Needs more info to Bug resolved
  • Assignee set to Julio Montoya
  • % Done changed from 50 to 100

Also available in: Atom PDF