From 28d1e84eafaab93875527203c1bc265585d417d9 Mon Sep 17 00:00:00 2001 From: James O'Toole Date: Sun, 15 Feb 2015 01:48:28 +0000 Subject: [PATCH] Implemented UUID validator, regex is the same as used by WTForms --- wtformsparsleyjs/core.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/wtformsparsleyjs/core.py b/wtformsparsleyjs/core.py index 3edf14a..a8443ef 100644 --- a/wtformsparsleyjs/core.py +++ b/wtformsparsleyjs/core.py @@ -4,7 +4,7 @@ import re import copy from wtforms.validators import Length, NumberRange, Email, EqualTo, IPAddress, \ - Regexp, URL, AnyOf, Optional, InputRequired, MacAddress + Regexp, URL, AnyOf, Optional, InputRequired, MacAddress, UUID try: from wtforms.validators import DataRequired except ImportError: @@ -61,6 +61,8 @@ def parsley_kwargs(field, kwargs): _anyof_kwargs(new_kwargs, vali) if isinstance(vali, MacAddress): _mac_address_kwargs(new_kwargs) + if isinstance(vali, UUID): + _uuid_kwargs(new_kwargs) if isinstance(vali, Optional): pass @@ -141,6 +143,11 @@ def _anyof_kwargs(kwargs, vali): delimiter = _string_seq_delimiter(vali, kwargs) kwargs[u'data-parsley-inlist'] = delimiter.join(vali.values) +def _mac_addresss_kwargs(kwargs): + kwargs[u'data-parsley-pattern'] = '^(?:[0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$' + +def _uuid_kwargs(kwargs): + kwargs[u'data-parsley-pattern'] = '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$' def _trigger_kwargs(kwargs, trigger=u'change'): kwargs[u'data-parsley-trigger'] = trigger @@ -149,10 +156,6 @@ def _trigger_kwargs(kwargs, trigger=u'change'): def _message_kwargs(kwargs, message): kwargs[u'data-parsley-error-message'] = message -def _mac_addresss_kwargs(kwargs): - kwargs[u'data-parsley-pattern'] = '^(?:[0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$' - - class ParsleyInputMixin(Input): def __call__(self, field, **kwargs): kwargs = parsley_kwargs(field, kwargs)