From fc779fe55aec84994e7e761c743716ba03484bcc Mon Sep 17 00:00:00 2001
From: Jeremy Dunck
Date: Mon, 25 Jun 2007 19:33:37 +0000
Subject: 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
---
django/newforms/fields.py | 22 +++++++++++++++-------
django/newforms/forms.py | 2 +-
django/newforms/widgets.py | 7 +++----
3 files changed, 19 insertions(+), 12 deletions(-)
(limited to 'django/newforms')
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 s."
- return self._html_output(u'
%(label)s %(field)s%(help_text)s
', u'%s
', '
', u' %s', True)
+ return self._html_output(u'%(label)s %(field)s%(help_text)s
', u'%s', '', 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__ = (
--
cgit v1.3