From 5ef767c4e11a795a33739619a6b6dbd21c59d90a Mon Sep 17 00:00:00 2001 From: Sean Brant Date: Mon, 2 Dec 2013 16:28:16 -0600 Subject: [PATCH 1/3] Handles unlimited range numbers WTForms uses -1 to denote not min/max value. This makes the range and rangelength validators incorrect. This patch falls back to min/max and minlength/maxlength validation when one of the range values is -1. --- wtformsparsleyjs/core.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/wtformsparsleyjs/core.py b/wtformsparsleyjs/core.py index 20ba6cc..be7ac41 100644 --- a/wtformsparsleyjs/core.py +++ b/wtformsparsleyjs/core.py @@ -76,12 +76,22 @@ def _ip_address_kwargs(kwargs): r'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b$' +def _range_kwargs(kwargs, vali, suffix=''): + if vali.min > 0 and vali.max > 0: + kwargs[u'data-range' + suffix] = u'[' + str(vali.min) + u',' + str(vali.max) + u']' + else: + if vali.min > 0: + kwargs[u'data-min' + suffix] = str(vali.min) + if vali.max > 0: + kwargs[u'data-max' + suffix] = str(vali.max) + + def _length_kwargs(kwargs, vali): - kwargs[u'data-rangelength'] = u'[' + str(vali.min) + u',' + str(vali.max) + u']' + _range_kwargs(kwargs, vali, suffix='length') def _number_range_kwargs(kwargs, vali): - kwargs[u'data-range'] = u'[' + str(vali.min) + u',' + str(vali.max) + u']' + _range_kwargs(kwargs, vali) def _required_kwargs(kwargs): From bc9ed5ffdcc870baf4189aa30e0ac2bd720bab2c Mon Sep 17 00:00:00 2001 From: Sean Brant Date: Tue, 3 Dec 2013 15:16:12 -0600 Subject: [PATCH 2/3] Revert "Handles unlimited range numbers" This reverts commit 5ef767c4e11a795a33739619a6b6dbd21c59d90a. --- wtformsparsleyjs/core.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/wtformsparsleyjs/core.py b/wtformsparsleyjs/core.py index be7ac41..20ba6cc 100644 --- a/wtformsparsleyjs/core.py +++ b/wtformsparsleyjs/core.py @@ -76,22 +76,12 @@ def _ip_address_kwargs(kwargs): r'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b$' -def _range_kwargs(kwargs, vali, suffix=''): - if vali.min > 0 and vali.max > 0: - kwargs[u'data-range' + suffix] = u'[' + str(vali.min) + u',' + str(vali.max) + u']' - else: - if vali.min > 0: - kwargs[u'data-min' + suffix] = str(vali.min) - if vali.max > 0: - kwargs[u'data-max' + suffix] = str(vali.max) - - def _length_kwargs(kwargs, vali): - _range_kwargs(kwargs, vali, suffix='length') + kwargs[u'data-rangelength'] = u'[' + str(vali.min) + u',' + str(vali.max) + u']' def _number_range_kwargs(kwargs, vali): - _range_kwargs(kwargs, vali) + kwargs[u'data-range'] = u'[' + str(vali.min) + u',' + str(vali.max) + u']' def _required_kwargs(kwargs): From 3d1e03874408d7118a138b3c03195f972d87072d Mon Sep 17 00:00:00 2001 From: Sean Brant Date: Tue, 3 Dec 2013 15:18:57 -0600 Subject: [PATCH 3/3] Handles unlimited rangelength values WTForms uses -1 to denote no minlength/maxlength value. This makes the rangelength validators incorrect. This patch falls back to minlength/maxlength validation when one of the length values is -1. --- wtformsparsleyjs/core.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/wtformsparsleyjs/core.py b/wtformsparsleyjs/core.py index 20ba6cc..fcc2781 100644 --- a/wtformsparsleyjs/core.py +++ b/wtformsparsleyjs/core.py @@ -77,7 +77,15 @@ def _ip_address_kwargs(kwargs): def _length_kwargs(kwargs, vali): - kwargs[u'data-rangelength'] = u'[' + str(vali.min) + u',' + str(vali.max) + u']' + default_number = -1 + + if vali.max != default_number and vali.min != default_number: + kwargs[u'data-rangelength'] = u'[' + str(vali.min) + u',' + str(vali.max) + u']' + else: + if vali.max == default_number: + kwargs[u'data-minlength'] = str(vali.min) + if vali.min == default_number: + kwargs[u'data-maxlength'] = str(vali.max) def _number_range_kwargs(kwargs, vali):