View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
04206Bug reportsData Entry (non public)public2010-03-24 06:17
Reporterharsha Assigned Toharsha  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version1.87+ 
Target Version1.87+Fixed in Version1.87+ 
Summary04206: Array (Multi Flexible) (Numbers) - Not work correctly
Description

While defining Array (Multi Flexible)(Numbers) type questions if user specify a value greater than 10 as the min value and no value for max value , the (Multi Flexible)(Numbers) drop down is not shown.

It works only for min values less than 10 if max value is not provided.

If it is given both min and max values provided min < max all are working fine.

Hence we need to carefully handle these scenarios. When user specify only one value for min or max we better provide +10 or -10 respectively as the range.

Steps To Reproduce

-create a question of type Array(Multi Flexible)(Numbers)
-specify a min value greater than 10 using advance options.
-activate the survey and go to data entry screen
-No values in the dropdowns :(

TagsNo tags attached.
Attached Files
ArrayMultiFlexNumber.patch (5,716 bytes)   
Index: qanda.php
===================================================================
--- qanda.php	(revision 8503)
+++ qanda.php	(working copy)
@@ -5965,22 +5965,24 @@
 	$lquery = "SELECT * FROM {$dbprefix}labels WHERE lid=$lid  AND language='".$_SESSION['s_lang']."' ORDER BY sortorder, code";
 
 	$qidattributes=getQuestionAttributes($ia[0]);
-    if (trim($qidattributes['multiflexible_max'])!='')
-	{
-		$maxvalue=$qidattributes['multiflexible_max'];
-	}
-	else
-	{
-		$maxvalue=10;
-	}
-    if (trim($qidattributes['multiflexible_min'])!='')
-	{
-		$minvalue=$qidattributes['multiflexible_min'];
-	}
-	else
-	{
-		if(isset($minvalue['value']) && $minvalue['value'] == 0) {$minvalue = 0;} else {$minvalue=1;}
-	}
+	if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min']) ==''){
+         $maxvalue=$qidattributes['multiflexible_max'];
+	     if(isset($minvalue['value']) && $minvalue['value'] == 0) {$minvalue = 0;} else {$minvalue=1;}
+    }
+    if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max']) ==''){
+         $minvalue=$qidattributes['multiflexible_min'];
+         $maxvalue=$qidattributes['multiflexible_min'] + 10;         		
+    }	
+	if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max']) ==''){
+		 if(isset($minvalue['value']) && $minvalue['value'] == 0) {$minvalue = 0;} else {$minvalue=1;}
+         $maxvalue=10;         		
+    }
+	if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max']) !=''){
+         if($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']){
+             $minvalue=$qidattributes['multiflexible_min'];
+             $maxvalue=$qidattributes['multiflexible_max'];     
+         }
+    }
 
     if (trim($qidattributes['multiflexible_step'])!='')
 	{
Index: admin/dataentry.php
===================================================================
--- admin/dataentry.php	(revision 8503)
+++ admin/dataentry.php	(working copy)
@@ -1465,19 +1465,19 @@
 						break;
 					case ":": //ARRAY (Multi Flexi) (Numbers)
                     	$qidattributes=getQuestionAttributes($fnames[$i][7]);
-                        if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min'] =='')) {
+                        if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min']) ==''){
                     		$maxvalue=$qidattributes['multiflexible_max'];
                     		$minvalue=1;
                         }
-                        if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max'] =='' )) {
+                        if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max']) ==''){
                     		$minvalue=$qidattributes['multiflexible_min'];
-                    		$maxvalue=10 ;         		
+                    		$maxvalue=$qidattributes['multiflexible_min'] + 10;         		
                         }	
-					    if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max'] =='' )) {
+					    if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max']) ==''){
                     		$minvalue=1;
                     		$maxvalue=10;         		
                         }
-						if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max'] !='' )) {
+						if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max']) !=''){
                     		if($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']){
                     			$minvalue=$qidattributes['multiflexible_min'];
                     			$maxvalue=$qidattributes['multiflexible_max'];     
@@ -2754,19 +2754,19 @@
 					break;
 					case ":": //ARRAY (Multi Flexi)
                     	$qidattributes=getQuestionAttributes($deqrow['qid']);
-				        if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min'] =='')) {
+				        if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min']) =='') {
                     		$maxvalue=$qidattributes['multiflexible_max'];
                     		$minvalue=1;
                         }
-                        if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max'] =='' )) {
+                        if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max']) =='') {
                     		$minvalue=$qidattributes['multiflexible_min'];
-                    		$maxvalue=10;       		
+                    		$maxvalue=$qidattributes['multiflexible_min'] + 10;       		
                         }
-				        if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max'] =='' )) {
+				        if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max']) =='') {
                     		$minvalue=1;
                     		$maxvalue=10;         		
                         }
-						if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max'] !='' )) {
+						if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max']) !='') {
                     		if($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']){
                     			$minvalue=$qidattributes['multiflexible_min'];
                     			$maxvalue=$qidattributes['multiflexible_max'];     

ArrayMultiFlexNumber.patch (5,716 bytes)   
limesurvey_group_6.csv (3,164 bytes)   
# LimeSurvey Group Dump
# DBVersion 142
# This is a dumped group from the LimeSurvey Script
# http://www.limesurvey.org/
# Do not change this header!

#
# GROUPS TABLE
#
"gid","sid","group_name","group_order","description","language"
"6","51718","default","0","","en"

#
# QUESTIONS TABLE
#
"qid","sid","gid","type","title","question","preg","help","other","mandatory","lid","lid1","question_order","language"
"29","51718","6",":","3","No Min and Max values specified<br />","","","N","N","8","0","2","en"
"27","51718","6",":","1","Only Max value is set (value = 15)<br />","","","N","N","8","0","0","en"
"28","51718","6",":","2","Only Min value is set (value = 4)<br />","","","N","N","8","0","1","en"
"30","51718","6",":","4","Both min and max values are specified (min = 5 , max = 20)<br />","","","N","N","8","0","3","en"

#
# ANSWERS TABLE
#
"qid","code","answer","default_value","assessment_value","sortorder","language"
"29","1","test","N","0","1","en"
"27","1","test","N","0","0","en"
"27","2","test2","N","0","1","en"
"28","1","test","N","0","1","en"
"30","1","test","N","0","1","en"

#
# CONDITIONS TABLE
#

#
# LABELSETS TABLE
#
"lid","label_name","languages"
"8","simple","en"

#
# LABELS TABLE
#
"lid","code","title","sortorder","assessment_value","language"
"8","11111","option1","0","0","en"
"8","11112","option2","1","4","en"
"8","11111","option1","0","0","en"
"8","11112","option2","1","4","en"
"8","11111","option1","0","0","en"
"8","11112","option2","1","4","en"
"8","11111","option1","0","0","en"
"8","11112","option2","1","4","en"

#
# QUESTION_ATTRIBUTES TABLE
#
"qaid","qid","attribute","value"
"303","29","hidden","0"
"302","29","array_filter_exclude",""
"301","29","array_filter",""
"300","29","answer_width",""
"304","29","multiflexible_max",""
"305","29","multiflexible_min",""
"306","29","multiflexible_step",""
"307","29","multiflexible_checkbox","0"
"308","29","page_break","0"
"309","29","public_statistics","0"
"310","29","random_order","0"
"311","29","scale_export","0"
"285","27","public_statistics","0"
"284","27","page_break","0"
"283","27","multiflexible_checkbox","0"
"282","27","multiflexible_step",""
"281","27","multiflexible_min",""
"280","27","multiflexible_max","15"
"279","27","hidden","0"
"278","27","array_filter_exclude",""
"277","27","array_filter",""
"276","27","answer_width",""
"287","27","scale_export","0"
"286","27","random_order","0"
"299","28","scale_export","0"
"298","28","random_order","0"
"297","28","public_statistics","0"
"296","28","page_break","0"
"295","28","multiflexible_checkbox","0"
"294","28","multiflexible_step",""
"293","28","multiflexible_min","4"
"292","28","multiflexible_max",""
"291","28","hidden","0"
"290","28","array_filter_exclude",""
"289","28","array_filter",""
"288","28","answer_width",""
"312","30","answer_width",""
"313","30","array_filter",""
"314","30","array_filter_exclude",""
"315","30","hidden","0"
"316","30","multiflexible_max","20"
"317","30","multiflexible_min","5"
"318","30","multiflexible_step",""
"319","30","multiflexible_checkbox","0"
"320","30","page_break","0"
"321","30","public_statistics","0"
"322","30","random_order","0"
"323","30","scale_export","0"
limesurvey_group_6.csv (3,164 bytes)   
ArrayMultiFlexNumbers.patch (7,715 bytes)   
Index: qanda.php
===================================================================
--- qanda.php	(revision 8503)
+++ qanda.php	(working copy)
@@ -5965,22 +5965,24 @@
 	$lquery = "SELECT * FROM {$dbprefix}labels WHERE lid=$lid  AND language='".$_SESSION['s_lang']."' ORDER BY sortorder, code";
 
 	$qidattributes=getQuestionAttributes($ia[0]);
-    if (trim($qidattributes['multiflexible_max'])!='')
-	{
-		$maxvalue=$qidattributes['multiflexible_max'];
-	}
-	else
-	{
-		$maxvalue=10;
-	}
-    if (trim($qidattributes['multiflexible_min'])!='')
-	{
-		$minvalue=$qidattributes['multiflexible_min'];
-	}
-	else
-	{
-		if(isset($minvalue['value']) && $minvalue['value'] == 0) {$minvalue = 0;} else {$minvalue=1;}
-	}
+	if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min']) ==''){
+         $maxvalue=$qidattributes['multiflexible_max'];
+	     if(isset($minvalue['value']) && $minvalue['value'] == 0) {$minvalue = 0;} else {$minvalue=1;}
+    }
+    if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max']) ==''){
+         $minvalue=$qidattributes['multiflexible_min'];
+         $maxvalue=$qidattributes['multiflexible_min'] + 10;         		
+    }	
+	if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max']) ==''){
+		 if(isset($minvalue['value']) && $minvalue['value'] == 0) {$minvalue = 0;} else {$minvalue=1;}
+         $maxvalue=10;         		
+    }
+	if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max']) !=''){
+         if($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']){
+             $minvalue=$qidattributes['multiflexible_min'];
+             $maxvalue=$qidattributes['multiflexible_max'];     
+         }
+    }
 
     if (trim($qidattributes['multiflexible_step'])!='')
 	{
Index: admin/dataentry.php
===================================================================
--- admin/dataentry.php	(revision 8503)
+++ admin/dataentry.php	(working copy)
@@ -1465,19 +1465,19 @@
 						break;
 					case ":": //ARRAY (Multi Flexi) (Numbers)
                     	$qidattributes=getQuestionAttributes($fnames[$i][7]);
-                        if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min'] =='')) {
+                        if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min']) ==''){
                     		$maxvalue=$qidattributes['multiflexible_max'];
                     		$minvalue=1;
                         }
-                        if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max'] =='' )) {
+                        if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max']) ==''){
                     		$minvalue=$qidattributes['multiflexible_min'];
-                    		$maxvalue=10 ;         		
+                    		$maxvalue=$qidattributes['multiflexible_min'] + 10;         		
                         }	
-					    if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max'] =='' )) {
+					    if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max']) ==''){
                     		$minvalue=1;
                     		$maxvalue=10;         		
                         }
-						if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max'] !='' )) {
+						if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max']) !=''){
                     		if($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']){
                     			$minvalue=$qidattributes['multiflexible_min'];
                     			$maxvalue=$qidattributes['multiflexible_max'];     
@@ -2754,19 +2754,19 @@
 					break;
 					case ":": //ARRAY (Multi Flexi)
                     	$qidattributes=getQuestionAttributes($deqrow['qid']);
-				        if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min'] =='')) {
+				        if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min']) =='') {
                     		$maxvalue=$qidattributes['multiflexible_max'];
                     		$minvalue=1;
                         }
-                        if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max'] =='' )) {
+                        if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max']) =='') {
                     		$minvalue=$qidattributes['multiflexible_min'];
-                    		$maxvalue=10;       		
+                    		$maxvalue=$qidattributes['multiflexible_min'] + 10;       		
                         }
-				        if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max'] =='' )) {
+				        if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max']) =='') {
                     		$minvalue=1;
                     		$maxvalue=10;         		
                         }
-						if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max'] !='' )) {
+						if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max']) !='') {
                     		if($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']){
                     			$minvalue=$qidattributes['multiflexible_min'];
                     			$maxvalue=$qidattributes['multiflexible_max'];     
Index: admin/printablesurvey.php
===================================================================
--- admin/printablesurvey.php	(revision 8503)
+++ admin/printablesurvey.php	(working copy)
@@ -1368,18 +1368,25 @@
 // ==================================================================
 			case ":": //ARRAY (Multi Flexible) (Numbers)
 				$headstyle="style='padding-left: 20px; padding-right: 7px'";
-                if (trim($qidattributes['multiflexible_max'])!='') {
-					$maxvalue=$qidattributes['multiflexible_max'];
-				}
-				else
-				{
-					$maxvalue=10;
-				}
-                if (trim($qidattributes['multiflexible_min'])!='') {
-					$minvalue=$qidattributes['multiflexible_min'];
-				} else {
-					$minvalue=1;
-				}
+				if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min']) =='') {
+                    $maxvalue=$qidattributes['multiflexible_max'];
+                    $minvalue=1;
+                }
+                if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max']) =='') {
+                    $minvalue=$qidattributes['multiflexible_min'];
+                    $maxvalue=$qidattributes['multiflexible_min'] + 10;       		
+                }
+				if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max']) =='') {
+                    $minvalue=1;
+                    $maxvalue=10;         		
+                }
+				if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max']) !='') {
+                    if($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']){
+                    	$minvalue=$qidattributes['multiflexible_min'];
+                    	$maxvalue=$qidattributes['multiflexible_max'];     
+                     }
+                }
+				
                 if (trim($qidattributes['multiflexible_step'])!='') {
 					$stepvalue=$qidattributes['multiflexible_step'];
 				}

ArrayMultiFlexNumbers.patch (7,715 bytes)   
Bug heat4
Complete LimeSurvey version number (& build)8492
I will donate to the project if issue is resolved
BrowserFirefox
Database type & versionMySQL 5.1.33
Server OS (if known)Apache / 2.2.11 Windows)
Webserver software & version (if known)Apache / 2.2.11 (Windows)
PHP VersionPHP Version 5.2.12

Relationships

related to 04188 closedharsha Edit Response - Data Entry - Not working 

Users monitoring this issue

There are no users monitoring this issue.

Activities

harsha

harsha

2010-03-17 18:08

reporter   ~11406

Carsten , please have a look on this issue. After applying the patch just import attached question group to see quickly what i have done. I welcome feedbacks from you.

Thanks
Harsha

c_schmitz

c_schmitz

2010-03-18 20:44

administrator   ~11418

Last edited: 2010-03-18 20:54

Please revert the changes on the case 'only maximum value'.
Please check if the "only minimum value" case is properly reflected when you take the survey.

c_schmitz

c_schmitz

2010-03-19 23:19

administrator   ~11428

Harsha, your commit breaks the number input on data entry and does not fulfill the changes I suggested to you. Please check your changes again.

harsha

harsha

2010-03-20 03:50

reporter   ~11432

Carsten, Scenarios i added are as follows

  • When user specify only max value i set min value to 1 (as before)

  • Yes i removed the logic when only min value specifies as your suggestion people would hardly find situations to specify only a min value. So now it is correct that when user specify a value > 10 as min value , No drop-downs. It works if min < 10.

Shall i add my previous logic for this then , when only min Value specifies max value would be (min + 10) . Is it ok ?

  • Others are working as usual

  • I did not get what do you mean by breaks the number input on data entry.Please give more details on this.

harsha

harsha

2010-03-20 20:28

reporter   ~11434

Carsten, i have added a new patch and sample question group to check those scenarios. Can you please check this and verify.

c_schmitz

c_schmitz

2010-03-20 21:25

administrator   ~11437

Hello Harsha, looks much better.
Data entry and survey at runtime now work as expected. Please also check the printable version - it looks not right yet.

harsha

harsha

2010-03-21 19:04

reporter   ~11457

Sorted , if need any modification or whatever suggestion please tell me.

harsha

harsha

2010-03-24 06:17

reporter   ~11494

Fixed the issue.

Issue History

Date Modified Username Field Change
2010-03-17 13:58 harsha New Issue
2010-03-17 13:58 harsha Status new => assigned
2010-03-17 13:58 harsha Assigned To => harsha
2010-03-17 17:58 harsha File Added: DataEntry-MultiFlexibleNumbers.patch
2010-03-17 17:58 harsha File Added: limesurvey_group_4.csv
2010-03-17 18:01 harsha Relationship added related to 04188
2010-03-17 18:08 harsha Note Added: 11406
2010-03-17 18:08 harsha Assigned To harsha => c_schmitz
2010-03-17 18:08 harsha Status assigned => feedback
2010-03-18 20:44 c_schmitz Status feedback => assigned
2010-03-18 20:44 c_schmitz Assigned To c_schmitz => harsha
2010-03-18 20:44 c_schmitz Note Added: 11418
2010-03-18 20:53 c_schmitz Note Edited: 11418
2010-03-18 20:54 c_schmitz Note Edited: 11418
2010-03-19 23:19 c_schmitz Note Added: 11428
2010-03-20 03:50 harsha Note Added: 11432
2010-03-20 20:12 harsha File Added: ArrayMultiFlexNumber.patch
2010-03-20 20:13 harsha File Added: limesurvey_group_6.csv
2010-03-20 20:28 harsha Note Added: 11434
2010-03-20 20:30 harsha Assigned To harsha => c_schmitz
2010-03-20 20:30 harsha Status assigned => feedback
2010-03-20 21:25 c_schmitz Note Added: 11437
2010-03-20 21:27 c_schmitz File Deleted: DataEntry-MultiFlexibleNumbers.patch
2010-03-20 21:27 c_schmitz File Deleted: limesurvey_group_4.csv
2010-03-20 22:35 harsha File Added: ArrayMultiFlexNumbers.patch
2010-03-21 19:04 harsha Note Added: 11457
2010-03-21 19:04 harsha Status feedback => assigned
2010-03-23 21:09 c_schmitz Status assigned => resolved
2010-03-23 21:09 c_schmitz Resolution open => fixed
2010-03-23 21:09 c_schmitz Assigned To c_schmitz => harsha
2010-03-24 06:17 harsha Note Added: 11494
2010-03-24 06:17 harsha Status resolved => closed
2010-03-24 06:17 harsha Fixed in Version => 1.87+