Re: [limesurvey-developers] Quotas on lime 2.05+
The leading Open Source survey tool
Brought to you by:
c_schmitz
From: Andrea S. <si...@op...> - 2015-03-26 10:13:03
|
Il 26/03/2015 10:37, Andrea Suisani ha scritto: > All, [snip] >>> http://bugs.limesurvey.org/view.php?id=9587 >> >> fixed by d25b7357dddbee3d02a1fa21e975098fe2ce5f8b. >> >> kudos to Denis. > > I think that the problem is still there. > > The aforementioned commit fix the problem only because qlimit was setted to 0 > in the test-case survey, and 0 is treated as a special case in the code > (https://github.com/LimeSurvey/LimeSurvey/commit/d25b7357dddbee3d02a1fa21e975098fe2ce5f8b#diff-4f4265af29f654380fbda47407b84a09R1956) > > if((int)$aQuotaInfo['qlimit'] < 1){ > $aMatchedQuotas[]=$aQuotaInfo; > }else{ > $iCompleted=getQuotaCompletedCount($surveyid, $aQuotaInfo['id']);// Return a string > if(ctype_digit($iCompleted) && ((int)$iCompleted >= (int)$aQuotaInfo['qlimit'])) // This remove invalid quota and not completed > $aMatchedQuotas[]=$aQuotaInfo; > } > > if qlimit is > 0 the code in the else branch will be executed > and ctype_digit($isCompleted) will be always retun false due to > the fact the $iCompleted, in case you're using postgres, is a > an integer rather than a string. > > A workaround could be dropping the ctype_digit check on $iCompelted > assuming that it will be always castable to int (as the code > already doeas in the 'if' condition). A "thinko" here, in the main 'if' condition there's no cast of $iCompleted to int. Nonetheless I think that the proposed workaorund is still valid. [snip] regards, Andrea |