From ae683dc30953af2b3d429558cd06012a2a5ad3b3 Mon Sep 17 00:00:00 2001 From: ian Date: Tue, 3 May 2016 17:06:24 -0700 Subject: [PATCH 1/5] updated validation to not use question name --- expfactory/survey.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/expfactory/survey.py b/expfactory/survey.py index 3b6b627..8f2d120 100644 --- a/expfactory/survey.py +++ b/expfactory/survey.py @@ -299,9 +299,10 @@ def parse_validation(required_counts): validation = "%s if ( state.stepIndex === %s ) {\n" %(validation,page_number) else: validation = "%s else if ( state.stepIndex === %s ) {\n" %(validation,page_number) - validation = "%s if (($.unique($('.page%s.required[type=number],.page3.required:text').map(function(){return this.name})).map(function() {return $('[name*=' + this + '].required[type=number], [name*=' + this + '].required:text').filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($('.page%s.required:not([type=number]):not(:text)').map(function(){return this.name})).map(function() {return $('[name*=' + this + '].required:checked').length > 0}).get().indexOf(false) != -1)){\nis_required($('.page%s.required:not(checked)'));\nreturn false;\n" % (validation, page_number, page_number, page_number) + validation = "%s if (($.unique($('.page%s.required[type=number],.page%s.required:text').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required[type=number], [meta-text*="' + this + '"].required:text').filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($('.page%s.required:not([type=number]):not(:text)').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required:checked').length > 0}).get().indexOf(false) != -1)){\nis_required($('.page%s.required:not(checked)'));\nreturn false;\n" % (validation, page_number, page_number, page_number) + # If we are at the last page, passing validation should enable the submit if page_number == pages[-1]: validation = '%s } else {\nexpfactory_finished=true;\n' %(validation) From 052d555a4c6902db57421d1792332249bc99356c Mon Sep 17 00:00:00 2001 From: ian Date: Wed, 4 May 2016 10:22:44 -0700 Subject: [PATCH 2/5] fixed validation. Besides fixing the update to validation to not include name, there was another bug with the validation where page3 remained hardcoded. That has been fixed --- expfactory/survey.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expfactory/survey.py b/expfactory/survey.py index 8f2d120..8bc101d 100644 --- a/expfactory/survey.py +++ b/expfactory/survey.py @@ -299,7 +299,7 @@ def parse_validation(required_counts): validation = "%s if ( state.stepIndex === %s ) {\n" %(validation,page_number) else: validation = "%s else if ( state.stepIndex === %s ) {\n" %(validation,page_number) - validation = "%s if (($.unique($('.page%s.required[type=number],.page%s.required:text').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required[type=number], [meta-text*="' + this + '"].required:text').filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($('.page%s.required:not([type=number]):not(:text)').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required:checked').length > 0}).get().indexOf(false) != -1)){\nis_required($('.page%s.required:not(checked)'));\nreturn false;\n" % (validation, page_number, page_number, page_number) + validation = "%s if (($.unique($('.page%s.required[type=number],.page%s.required:text').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required[type=number], [meta-text*="' + this + '"].required:text').filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($('.page%s.required:not([type=number]):not(:text)').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required:checked').length > 0}).get().indexOf(false) != -1)){\nis_required($('.page%s.required:not(checked)'));\nreturn false;\n" % (validation, page_number, page_number, page_number, page_number) From 012b0464518e43d882f5c94e9916104852e25b69 Mon Sep 17 00:00:00 2001 From: ian Date: Thu, 5 May 2016 19:12:48 -0700 Subject: [PATCH 3/5] escaped offending quotation marks --- expfactory/survey.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expfactory/survey.py b/expfactory/survey.py index 8bc101d..a1d100c 100644 --- a/expfactory/survey.py +++ b/expfactory/survey.py @@ -299,7 +299,7 @@ def parse_validation(required_counts): validation = "%s if ( state.stepIndex === %s ) {\n" %(validation,page_number) else: validation = "%s else if ( state.stepIndex === %s ) {\n" %(validation,page_number) - validation = "%s if (($.unique($('.page%s.required[type=number],.page%s.required:text').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required[type=number], [meta-text*="' + this + '"].required:text').filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($('.page%s.required:not([type=number]):not(:text)').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required:checked').length > 0}).get().indexOf(false) != -1)){\nis_required($('.page%s.required:not(checked)'));\nreturn false;\n" % (validation, page_number, page_number, page_number, page_number) + validation = "%s if (($.unique($('.page%s.required[type=number],.page%s.required:text').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*=\"' + this + '\"].required[type=number], [meta-text*=\"' + this + '\"].required:text').filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($('.page%s.required:not([type=number]):not(:text)').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*=\"' + this + '\"].required:checked').length > 0}).get().indexOf(false) != -1)){\nis_required($('.page%s.required:not(checked)'));\nreturn false;\n" % (validation, page_number, page_number, page_number, page_number) From f7a3beddf5588c7d602fe82617bf40d73ec0bc2e Mon Sep 17 00:00:00 2001 From: ian Date: Thu, 5 May 2016 19:20:20 -0700 Subject: [PATCH 4/5] actually triple quote syntax is probably better --- expfactory/survey.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expfactory/survey.py b/expfactory/survey.py index a1d100c..b475611 100644 --- a/expfactory/survey.py +++ b/expfactory/survey.py @@ -299,7 +299,7 @@ def parse_validation(required_counts): validation = "%s if ( state.stepIndex === %s ) {\n" %(validation,page_number) else: validation = "%s else if ( state.stepIndex === %s ) {\n" %(validation,page_number) - validation = "%s if (($.unique($('.page%s.required[type=number],.page%s.required:text').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*=\"' + this + '\"].required[type=number], [meta-text*=\"' + this + '\"].required:text').filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($('.page%s.required:not([type=number]):not(:text)').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*=\"' + this + '\"].required:checked').length > 0}).get().indexOf(false) != -1)){\nis_required($('.page%s.required:not(checked)'));\nreturn false;\n" % (validation, page_number, page_number, page_number, page_number) + validation = """%s if (($.unique($('.page%s.required[type=number],.page%s.required:text').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required[type=number], [meta-text*="' + this + '"].required:text').filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($('.page%s.required:not([type=number]):not(:text)').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required:checked').length > 0}).get().indexOf(false) != -1)){\nis_required($('.page%s.required:not(checked)'));\nreturn false;\n""" % (validation, page_number, page_number, page_number, page_number) From 482dcfe7a3b344463ce765cf4b2b308c9f119f89 Mon Sep 17 00:00:00 2001 From: ian Date: Thu, 5 May 2016 19:55:08 -0700 Subject: [PATCH 5/5] changed quotation use again to work --- expfactory/survey.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expfactory/survey.py b/expfactory/survey.py index b475611..c77fd01 100644 --- a/expfactory/survey.py +++ b/expfactory/survey.py @@ -299,7 +299,7 @@ def parse_validation(required_counts): validation = "%s if ( state.stepIndex === %s ) {\n" %(validation,page_number) else: validation = "%s else if ( state.stepIndex === %s ) {\n" %(validation,page_number) - validation = """%s if (($.unique($('.page%s.required[type=number],.page%s.required:text').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required[type=number], [meta-text*="' + this + '"].required:text').filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($('.page%s.required:not([type=number]):not(:text)').map(function(){return $(this).attr('meta-text')})).map(function() {return $('[meta-text*="' + this + '"].required:checked').length > 0}).get().indexOf(false) != -1)){\nis_required($('.page%s.required:not(checked)'));\nreturn false;\n""" % (validation, page_number, page_number, page_number, page_number) + validation = '%s if (($.unique($(`.page%s.required[type=number],.page%s.required:text`).map(function(){return $(this).attr(`meta-text`)})).map(function() {return $(`[meta-text*="` + this + `"].required[type=number], [meta-text*="` + this + `"].required:text`).filter(function() { return $(this).val();}).length > 0}).get().indexOf(false) != -1) || ($.unique($(`.page%s.required:not([type=number]):not(:text)`).map(function(){return $(this).attr(`meta-text`)})).map(function() {return $(`[meta-text*="` + this + `"].required:checked`).length > 0}).get().indexOf(false) != -1)){\nis_required($(`.page%s.required:not(checked)`));\nreturn false;\n' % (validation, page_number, page_number, page_number, page_number)