View Issue Details

IDProjectCategoryView StatusLast Update
14955Bug reports[All Projects] Conditionspublic2019-06-13 13:34
Reportergabrieljenik Assigned To 
PrioritynoneSeveritymajor 
Status newResolutionopen 
Product Version3.15.x 
Target VersionFixed in Version 
Summary14955: Question relevance is not reassessed after group is shown
Description

Sample Survey Structure:

GA - Always shown
QA1 - Always shown
QA2 - Always shown
GB - Shown if QA2 > 1
QB1 - Shown if QA1 > 1

As how the questions are answered (ordered), GB will be shown after QA2 is answered.
QB1 is expected to be shown, but its not.

Additional Information

I have debugged and seen that its relevance is not evaluated when QA1 is answered as its group not shown at that time.
Suggestion: Revealuate questions' relevance when its parent group is shown.

TagsNo tags attached.
Complete LimeSurvey version number (& build)Version 3.15.9+190214
I will donate to the project if issue is resolvedNo
Browser
Database & DB-VersionMysql
Server OS (if known)
Webserver software & version (if known)
PHP Version7

Relationships

related to 14467 assignedcdorin EM : relevance not being recalculated after conditions updated if question are shown before 
related to 14465 closedDenisChenu EM relevance not being recalculated after conditions changed (Full survey included) 

Activities

DenisChenu

DenisChenu

2019-05-30 14:16

developer   ~52250

I think it's already resolved in 3.17 : Please send a sample lss

https://github.com/LimeSurvey/LimeSurvey/blob/c058ddae78ef5c4ae95e9531a1aa8a9aaa7a2265/docs/release_notes.txt#L294
https://github.com/LimeSurvey/LimeSurvey/commit/24b57b56847d205fd42d3171a1955420a1576979

gabrieljenik

gabrieljenik

2019-06-02 15:26

partner  

limesurvey_survey_126764.lss (15,718 bytes)
gabrieljenik

gabrieljenik

2019-06-02 15:26

partner   ~52264

Please find attached sample.
Retested with Version 3.17.4+190529

I saw the github change.
I believe the relevance of child questions should be reevaluated when its group is shown (relevance: on).
At least, i believve that's the issue here.

Thanks!

DenisChenu

DenisChenu

2019-06-02 17:41

developer   ~52265

Yes, confirm the issue … it's not the same but is near https://bugs.limesurvey.org/view.php?id=14467 … meaning : order of expression have an importance .

I mean : the function to hide/show Question happen before the function hide/show group …

Can be fixed adding group relevance to question .

Or to check all condition when group appear …

There are surely othis issue with such things like that:

G2Q1 : Show G2Q2 (Yes/No) Default value to Y
G2Q2 : relevance set to G2Q1 == "Y" (must be shown by default)

DenisChenu

DenisChenu

2019-06-02 17:47

developer   ~52266

PS : seems there are a «start point of checking for All in one survey» here : https://github.com/LimeSurvey/LimeSurvey/blob/5ff4910ea13e97a057bd6ab784b1ab1902ffe622/application/helpers/expressions/em_manager_helper.php#L7824-L7826

But like the other : only for equation …

DenisChenu

DenisChenu

2019-06-02 17:51

developer   ~52267

Ou … better solution :

When checking of question must be shown : current JS test relevanceOfQuestion && relevanceOfGroup BUT : it muts test only relevanceOfQuestion because we can show question inside a hidden group

But : it seems to be …

if ((LEMval('showQuestion.NAOK')  == 'Y'))
{
  $('#question10967').trigger('relevance:on');
  relChange10967=true;
  $('#relevance10967').val('1');
}
else {
  $('#question10967').trigger('relevance:off');
  if ($('#relevance10967').val()=='1') { relChange10967=true; }
  $('#relevance10967').val('0');
}
gabrieljenik

gabrieljenik

2019-06-03 21:00

partner   ~52282

Not sure if I should reply something.
I think I agree with you :)

As per this line:

$('#relevance10967').val('1');

Not sure why is that set

DenisChenu

DenisChenu

2019-06-04 09:50

developer   ~52285

#relevance10967 is used to check QCODE.relevanceStatus , if it's 0 : QCODE.NAOK send null in all condition.

In fact : checking group.relevance && question.relevance is needed if the question is used in another question …

Recheck all question relevance when a group is shown can be done BUT :
JS relevance system is linked to an update of another question : https://github.com/LimeSurvey/LimeSurvey/blob/5ff4910ea13e97a057bd6ab784b1ab1902ffe622/application/helpers/expressions/em_manager_helper.php#L7839-L7840 (sgqa)

This is needed to check if sgqa is used in this function …

Else : you get JS loop : https://bugs.limesurvey.org/view.php?id=14958

Issue History

Date Modified Username Field Change
2019-05-29 18:28 gabrieljenik New Issue
2019-05-30 14:16 DenisChenu Note Added: 52250
2019-05-30 14:16 DenisChenu Relationship added related to 14467
2019-05-30 14:16 DenisChenu Relationship added related to 14465
2019-06-02 15:26 gabrieljenik File Added: limesurvey_survey_126764.lss
2019-06-02 15:26 gabrieljenik Note Added: 52264
2019-06-02 17:41 DenisChenu Note Added: 52265
2019-06-02 17:47 DenisChenu Note Added: 52266
2019-06-02 17:51 DenisChenu Note Added: 52267
2019-06-03 21:00 gabrieljenik Note Added: 52282
2019-06-04 09:50 DenisChenu Note Added: 52285