Skip to content

Commit

Permalink
Fixed validation when date is not required (plus tests)
Browse files Browse the repository at this point in the history
  • Loading branch information
keul committed Sep 22, 2017
1 parent bebd64b commit 343414c
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions Products/PloneFormGen/content/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -514,12 +514,18 @@ def __init__(self, oid, **kwargs):
security.declareProtected(ModifyPortalContent, 'setFgShowHM')
def setFgShowHM(self, value, **kw):
""" set show_hm """
if not type(value) == BooleanType:
value = value == '1'

if type(value) == BooleanType:
self.fgField.widget.show_hm = value
if not value:
self.fgField.widget._properties['pattern_options']['time'] = value
self.fgField.widget.pattern_options['time'] = value
else:
self.fgField.widget.show_hm = value == '1'

try:
del self.fgField.widget.pattern_options['time']
del self.fgField.widget._properties['pattern_options']['time']
except KeyError:
pass
self.fgShowHM = value


Expand Down Expand Up @@ -597,18 +603,15 @@ def htmlValue(self, REQUEST):
def specialValidator(self, value, field, REQUEST, errors):
""" Archetypes isn't validating non-required dates --
so we need to.
BBB: this not seem true anymore on Plone 5
"""
fname = field.getName()
if value and not field.required:
value = value or REQUEST.form.get(fname)
if value or field.required:
try:
DateTime(value)
except (DateTimeSyntaxError, DateError):
return "Validation failed(isValidDate): this is not a valid date."
elif not value:
try:
DateTime(REQUEST.form.get(fname))
except (DateTimeSyntaxError, DateError):
return "Validation failed(isValidDate): this is not a valid date."
return 0


Expand Down

0 comments on commit 343414c

Please sign in to comment.