summaryrefslogtreecommitdiff
path: root/django/newforms
diff options
context:
space:
mode:
authorJeremy Dunck <jdunck@gmail.com>2007-06-25 19:33:37 +0000
committerJeremy Dunck <jdunck@gmail.com>2007-06-25 19:33:37 +0000
commitfc779fe55aec84994e7e761c743716ba03484bcc (patch)
treed139f5ce44133e630c7bb1b965baa3120ba23c99 /django/newforms
parentb0a56a9919d2304fa08b71373b53fdfb5ca72de9 (diff)
gis: Merged revisions 5491-5539 via svnmerge from
http://code.djangoproject.com/svn/django/trunk git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@5540 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/newforms')
-rw-r--r--django/newforms/fields.py22
-rw-r--r--django/newforms/forms.py2
-rw-r--r--django/newforms/widgets.py7
3 files changed, 19 insertions, 12 deletions
diff --git a/django/newforms/fields.py b/django/newforms/fields.py
index b73dd181e6..167281a061 100644
--- a/django/newforms/fields.py
+++ b/django/newforms/fields.py
@@ -27,9 +27,9 @@ __all__ = (
EMPTY_VALUES = (None, '')
try:
- set # Only available in Python 2.4+
+ set
except NameError:
- from sets import Set as set # Python 2.3 fallback
+ from sets import Set as set # Python 2.3 fallback
try:
from decimal import Decimal
@@ -516,11 +516,13 @@ class MultiValueField(Field):
"""
clean_data = []
errors = ErrorList()
- if self.required and not value:
- raise ValidationError(gettext(u'This field is required.'))
- elif not self.required and not value:
- return self.compress([])
- if not isinstance(value, (list, tuple)):
+ if not value or isinstance(value, (list, tuple)):
+ if not value or not [v for v in value if v not in EMPTY_VALUES]:
+ if self.required:
+ raise ValidationError(gettext(u'This field is required.'))
+ else:
+ return self.compress([])
+ else:
raise ValidationError(gettext(u'Enter a list of values.'))
for i, field in enumerate(self.fields):
try:
@@ -558,5 +560,11 @@ class SplitDateTimeField(MultiValueField):
def compress(self, data_list):
if data_list:
+ # Raise a validation error if time or date is empty
+ # (possible if SplitDateTimeField has required=False).
+ if data_list[0] in EMPTY_VALUES:
+ raise ValidationError(gettext(u'Enter a valid date.'))
+ if data_list[1] in EMPTY_VALUES:
+ raise ValidationError(gettext(u'Enter a valid time.'))
return datetime.datetime.combine(*data_list)
return None
diff --git a/django/newforms/forms.py b/django/newforms/forms.py
index 6ebebded4b..1ea1c73d9a 100644
--- a/django/newforms/forms.py
+++ b/django/newforms/forms.py
@@ -159,7 +159,7 @@ class BaseForm(StrAndUnicode):
def as_p(self):
"Returns this form rendered as HTML <p>s."
- return self._html_output(u'<p>%(label)s %(field)s%(help_text)s</p>', u'<p>%s</p>', '</p>', u' %s', True)
+ return self._html_output(u'<p>%(label)s %(field)s%(help_text)s</p>', u'%s', '</p>', u' %s', True)
def non_field_errors(self):
"""
diff --git a/django/newforms/widgets.py b/django/newforms/widgets.py
index 6ee3177a25..d4b5f596d1 100644
--- a/django/newforms/widgets.py
+++ b/django/newforms/widgets.py
@@ -3,16 +3,15 @@ HTML Widget classes
"""
try:
- set # Only available in Python 2.4+
+ set
except NameError:
- from sets import Set as set # Python 2.3 fallback
-from itertools import chain
+ from sets import Set as set # Python 2.3 fallback
+from itertools import chain
from django.utils.datastructures import MultiValueDict
from django.utils.html import escape
from django.utils.translation import gettext
from django.utils.encoding import StrAndUnicode, smart_unicode
-
from util import flatatt
__all__ = (