Changeset 4255
- Timestamp:
- 12/28/06 18:25:26 (2 years ago)
- Files:
-
- django/branches/generic-auth/AUTHORS (modified) (2 diffs)
- django/branches/generic-auth/django/conf/global_settings.py (modified) (1 diff)
- django/branches/generic-auth/django/conf/project_template/settings.py (modified) (1 diff)
- django/branches/generic-auth/django/contrib/admin/templates/admin/base.html (modified) (1 diff)
- django/branches/generic-auth/django/contrib/admin/templates/admin/change_form.html (modified) (2 diffs)
- django/branches/generic-auth/django/contrib/admin/templates/admin/change_list.html (modified) (1 diff)
- django/branches/generic-auth/django/contrib/admin/views/auth.py (modified) (2 diffs)
- django/branches/generic-auth/django/contrib/admin/views/main.py (modified) (3 diffs)
- django/branches/generic-auth/django/contrib/admin/views/template.py (modified) (2 diffs)
- django/branches/generic-auth/django/contrib/auth/forms.py (modified) (5 diffs)
- django/branches/generic-auth/django/contrib/auth/views.py (modified) (4 diffs)
- django/branches/generic-auth/django/contrib/comments/views/comments.py (modified) (5 diffs)
- django/branches/generic-auth/django/contrib/csrf/middleware.py (modified) (1 diff)
- django/branches/generic-auth/django/core/handlers/base.py (modified) (1 diff)
- django/branches/generic-auth/django/db/backends/postgresql/base.py (modified) (3 diffs)
- django/branches/generic-auth/django/db/models/fields/generic.py (modified) (2 diffs)
- django/branches/generic-auth/django/db/models/fields/__init__.py (modified) (25 diffs)
- django/branches/generic-auth/django/db/models/fields/related.py (modified) (13 diffs)
- django/branches/generic-auth/django/db/models/manipulators.py (modified) (4 diffs)
- django/branches/generic-auth/django/forms/__init__.py (modified) (1 diff)
- django/branches/generic-auth/django/newforms/extras (copied) (copied from django/trunk/django/newforms/extras)
- django/branches/generic-auth/django/newforms/extras/__init__.py (copied) (copied from django/trunk/django/newforms/extras/__init__.py)
- django/branches/generic-auth/django/newforms/extras/widgets.py (copied) (copied from django/trunk/django/newforms/extras/widgets.py)
- django/branches/generic-auth/django/newforms/fields.py (modified) (18 diffs)
- django/branches/generic-auth/django/newforms/forms.py (modified) (12 diffs)
- django/branches/generic-auth/django/newforms/__init__.py (modified) (1 diff)
- django/branches/generic-auth/django/newforms/models.py (modified) (1 diff)
- django/branches/generic-auth/django/newforms/widgets.py (modified) (7 diffs)
- django/branches/generic-auth/django/oldforms (copied) (copied from django/trunk/django/oldforms)
- django/branches/generic-auth/django/oldforms/__init__.py (copied) (copied from django/trunk/django/oldforms/__init__.py)
- django/branches/generic-auth/django/utils/dateformat.py (modified) (2 diffs)
- django/branches/generic-auth/django/utils/text.py (modified) (1 diff)
- django/branches/generic-auth/django/views/generic/create_update.py (modified) (3 diffs)
- django/branches/generic-auth/docs/contributing.txt (modified) (4 diffs)
- django/branches/generic-auth/docs/csrf.txt (modified) (6 diffs)
- django/branches/generic-auth/docs/db-api.txt (modified) (1 diff)
- django/branches/generic-auth/docs/forms.txt (modified) (2 diffs)
- django/branches/generic-auth/docs/generic_views.txt (modified) (2 diffs)
- django/branches/generic-auth/docs/legacy_databases.txt (modified) (2 diffs)
- django/branches/generic-auth/docs/newforms.txt (modified) (4 diffs)
- django/branches/generic-auth/docs/redirects.txt (modified) (1 diff)
- django/branches/generic-auth/docs/settings.txt (modified) (1 diff)
- django/branches/generic-auth/setup.py (modified) (1 diff)
- django/branches/generic-auth/tests/modeltests/basic/models.py (modified) (5 diffs)
- django/branches/generic-auth/tests/modeltests/many_to_many/models.py (modified) (1 diff)
- django/branches/generic-auth/tests/modeltests/model_forms (copied) (copied from django/trunk/tests/modeltests/model_forms)
- django/branches/generic-auth/tests/modeltests/model_forms/__init__.py (copied) (copied from django/trunk/tests/modeltests/model_forms/__init__.py)
- django/branches/generic-auth/tests/modeltests/model_forms/models.py (copied) (copied from django/trunk/tests/modeltests/model_forms/models.py)
- django/branches/generic-auth/tests/regressiontests/forms/tests.py (modified) (49 diffs)
- django/branches/generic-auth/tests/runtests.py (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/generic-auth/AUTHORS
r4149 r4255 119 119 Petar Marić 120 120 mark@junklight.com 121 Yasushi Masuda <whosaysni@gmail.com> 121 122 mattycakes@gmail.com 122 123 Jason McBrayer <http://www.carcosa.net/jason/> 123 124 mccutchen@gmail.com 124 125 michael.mcewan@gmail.com 126 mitakummaa@gmail.com 125 127 mmarshall 126 128 Eric Moritz <http://eric.themoritzfamily.com/> … … 161 163 Joe Topjian <http://joe.terrarum.net/geek/code/python/django/> 162 164 Karen Tracey <graybark@bellsouth.net> 165 Makoto Tsuyuki <mtsuyuki@gmail.com> 163 166 Amit Upadhyay 164 167 Geert Vanderkelen django/branches/generic-auth/django/conf/global_settings.py
r4063 r4255 26 26 27 27 # Local time zone for this installation. All choices can be found here: 28 # http://www.postgresql.org/docs/ current/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE28 # http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE 29 29 TIME_ZONE = 'America/Chicago' 30 30 django/branches/generic-auth/django/conf/project_template/settings.py
r4026 r4255 18 18 19 19 # Local time zone for this installation. All choices can be found here: 20 # http://www.postgresql.org/docs/ current/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE20 # http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE 21 21 TIME_ZONE = 'America/Chicago' 22 22 django/branches/generic-auth/django/contrib/admin/templates/admin/base.html
r4026 r4255 39 39 {% block pretitle %}{% endblock %} 40 40 {% block content_title %}{% if title %}<h1>{{ title|escape }}</h1>{% endif %}{% endblock %} 41 {% block content %}{{ content }}{% endblock %} 41 {% block content %} 42 {% block object-tools %}{% endblock %} 43 {{ content }} 44 {% endblock %} 42 45 {% block sidebar %}{% endblock %} 43 46 <br class="clear" /> django/branches/generic-auth/django/contrib/admin/templates/admin/change_form.html
r4026 r4255 17 17 {% endif %}{% endblock %} 18 18 {% block content %}<div id="content-main"> 19 {% block object-tools %} 19 20 {% if change %}{% if not is_popup %} 20 21 <ul class="object-tools"><li><a href="history/" class="historylink">{% trans "History" %}</a></li> … … 22 23 </ul> 23 24 {% endif %}{% endif %} 25 {% endblock %} 24 26 <form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post" id="{{ opts.module_name }}_form">{% block form_top %}{% endblock %} 25 27 <div> django/branches/generic-auth/django/contrib/admin/templates/admin/change_list.html
r4024 r4255 8 8 {% block content %} 9 9 <div id="content-main"> 10 {% block object-tools %} 10 11 {% if has_add_permission %} 11 12 <ul class="object-tools"><li><a href="add/{% if is_popup %}?_popup=1{% endif %}" class="addlink">{% blocktrans with cl.opts.verbose_name|escape as name %}Add {{ name }}{% endblocktrans %}</a></li></ul> 12 13 {% endif %} 14 {% endblock %} 13 15 <div class="module{% if cl.has_filters %} filtered{% endif %}" id="changelist"> 14 16 {% block search %}{% search_form cl %}{% endblock %} django/branches/generic-auth/django/contrib/admin/views/auth.py
r4026 r4255 3 3 from django.contrib.auth.models import User 4 4 from django.core.exceptions import PermissionDenied 5 from django import forms, template5 from django import oldforms, template 6 6 from django.shortcuts import render_to_response 7 7 from django.http import HttpResponseRedirect … … 25 25 else: 26 26 errors = new_data = {} 27 form = forms.FormWrapper(manipulator, new_data, errors)27 form = oldforms.FormWrapper(manipulator, new_data, errors) 28 28 return render_to_response('admin/auth/user/add_form.html', { 29 29 'title': _('Add user'), django/branches/generic-auth/django/contrib/admin/views/main.py
r4184 r4255 1 from django import forms, template1 from django import oldforms, template 2 2 from django.conf import settings 3 3 from django.contrib.auth import has_permission … … 289 289 290 290 # Populate the FormWrapper. 291 form = forms.FormWrapper(manipulator, new_data, errors)291 form = oldforms.FormWrapper(manipulator, new_data, errors) 292 292 293 293 c = template.RequestContext(request, { … … 380 380 381 381 # Populate the FormWrapper. 382 form = forms.FormWrapper(manipulator, new_data, errors)382 form = oldforms.FormWrapper(manipulator, new_data, errors) 383 383 form.original = manipulator.original_object 384 384 form.order_objects = [] django/branches/generic-auth/django/contrib/admin/views/template.py
r4026 r4255 1 1 from django.contrib.admin.views.decorators import staff_member_required 2 2 from django.core import validators 3 from django import template, forms3 from django import template, oldforms 4 4 from django.template import loader 5 5 from django.shortcuts import render_to_response … … 26 26 return render_to_response('admin/template_validator.html', { 27 27 'title': 'Template validator', 28 'form': forms.FormWrapper(manipulator, new_data, errors),28 'form': oldforms.FormWrapper(manipulator, new_data, errors), 29 29 }, context_instance=template.RequestContext(request)) 30 30 template_validator = staff_member_required(template_validator) 31 31 32 class TemplateValidator( forms.Manipulator):32 class TemplateValidator(oldforms.Manipulator): 33 33 def __init__(self, settings_modules): 34 34 self.settings_modules = settings_modules 35 35 site_list = Site.objects.in_bulk(settings_modules.keys()).values() 36 36 self.fields = ( 37 forms.SelectField('site', is_required=True, choices=[(s.id, s.name) for s in site_list]),38 forms.LargeTextField('template', is_required=True, rows=25, validator_list=[self.isValidTemplate]),37 oldforms.SelectField('site', is_required=True, choices=[(s.id, s.name) for s in site_list]), 38 oldforms.LargeTextField('template', is_required=True, rows=25, validator_list=[self.isValidTemplate]), 39 39 ) 40 40 django/branches/generic-auth/django/contrib/auth/forms.py
r4026 r4255 4 4 from django.template import Context, loader 5 5 from django.core import validators 6 from django import forms6 from django import oldforms 7 7 8 class UserCreationForm( forms.Manipulator):8 class UserCreationForm(oldforms.Manipulator): 9 9 "A form that creates a user, with no privileges, from the given username and password." 10 10 def __init__(self): 11 11 self.fields = ( 12 forms.TextField(field_name='username', length=30, maxlength=30, is_required=True,12 oldforms.TextField(field_name='username', length=30, maxlength=30, is_required=True, 13 13 validator_list=[validators.isAlphaNumeric, self.isValidUsername]), 14 forms.PasswordField(field_name='password1', length=30, maxlength=60, is_required=True),15 forms.PasswordField(field_name='password2', length=30, maxlength=60, is_required=True,14 oldforms.PasswordField(field_name='password1', length=30, maxlength=60, is_required=True), 15 oldforms.PasswordField(field_name='password2', length=30, maxlength=60, is_required=True, 16 16 validator_list=[validators.AlwaysMatchesOtherField('password1', _("The two password fields didn't match."))]), 17 17 ) … … 28 28 return User.objects.create_user(new_data['username'], '', new_data['password1']) 29 29 30 class AuthenticationForm( forms.Manipulator):30 class AuthenticationForm(oldforms.Manipulator): 31 31 """ 32 32 Base class for authenticating users. Extend this to get a form that accepts … … 42 42 self.request = request 43 43 self.fields = [ 44 forms.TextField(field_name="username", length=15, maxlength=30, is_required=True,44 oldforms.TextField(field_name="username", length=15, maxlength=30, is_required=True, 45 45 validator_list=[self.isValidUser, self.hasCookiesEnabled]), 46 forms.PasswordField(field_name="password", length=15, maxlength=30, is_required=True),46 oldforms.PasswordField(field_name="password", length=15, maxlength=30, is_required=True), 47 47 ] 48 48 self.user_cache = None … … 69 69 return self.user_cache 70 70 71 class PasswordResetForm( forms.Manipulator):71 class PasswordResetForm(oldforms.Manipulator): 72 72 "A form that lets a user request a password reset" 73 73 def __init__(self): 74 74 self.fields = ( 75 forms.EmailField(field_name="email", length=40, is_required=True,75 oldforms.EmailField(field_name="email", length=40, is_required=True, 76 76 validator_list=[self.isValidUserEmail]), 77 77 ) … … 106 106 send_mail('Password reset on %s' % site_name, t.render(Context(c)), None, [self.user_cache.email]) 107 107 108 class PasswordChangeForm( forms.Manipulator):108 class PasswordChangeForm(oldforms.Manipulator): 109 109 "A form that lets a user change his password." 110 110 def __init__(self, user): 111 111 self.user = user 112 112 self.fields = ( 113 forms.PasswordField(field_name="old_password", length=30, maxlength=30, is_required=True,113 oldforms.PasswordField(field_name="old_password", length=30, maxlength=30, is_required=True, 114 114 validator_list=[self.isValidOldPassword]), 115 forms.PasswordField(field_name="new_password1", length=30, maxlength=30, is_required=True,115 oldforms.PasswordField(field_name="new_password1", length=30, maxlength=30, is_required=True, 116 116 validator_list=[validators.AlwaysMatchesOtherField('new_password2', _("The two 'new password' fields didn't match."))]), 117 forms.PasswordField(field_name="new_password2", length=30, maxlength=30, is_required=True),117 oldforms.PasswordField(field_name="new_password2", length=30, maxlength=30, is_required=True), 118 118 ) 119 119 django/branches/generic-auth/django/contrib/auth/views.py
r4024 r4255 1 1 from django.contrib.auth.forms import AuthenticationForm 2 2 from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm 3 from django import forms3 from django import oldforms 4 4 from django.shortcuts import render_to_response 5 5 from django.template import RequestContext … … 27 27 request.session.set_test_cookie() 28 28 return render_to_response(template_name, { 29 'form': forms.FormWrapper(manipulator, request.POST, errors),29 'form': oldforms.FormWrapper(manipulator, request.POST, errors), 30 30 REDIRECT_FIELD_NAME: redirect_to, 31 31 'site_name': Site.objects.get_current().name, … … 63 63 form.save(email_template_name=email_template_name) 64 64 return HttpResponseRedirect('%sdone/' % request.path) 65 return render_to_response(template_name, {'form': forms.FormWrapper(form, new_data, errors)},65 return render_to_response(template_name, {'form': oldforms.FormWrapper(form, new_data, errors)}, 66 66 context_instance=RequestContext(request)) 67 67 … … 78 78 form.save(new_data) 79 79 return HttpResponseRedirect('%sdone/' % request.path) 80 return render_to_response(template_name, {'form': forms.FormWrapper(form, new_data, errors)},80 return render_to_response(template_name, {'form': oldforms.FormWrapper(form, new_data, errors)}, 81 81 context_instance=RequestContext(request)) 82 82 password_change = login_required(password_change) django/branches/generic-auth/django/contrib/comments/views/comments.py
r4026 r4255 1 1 from django.core import validators 2 from django import forms2 from django import oldforms 3 3 from django.core.mail import mail_admins, mail_managers 4 4 from django.http import Http404 … … 29 29 return [] 30 30 self.fields.extend([ 31 forms.LargeTextField(field_name="comment", maxlength=3000, is_required=True,31 oldforms.LargeTextField(field_name="comment", maxlength=3000, is_required=True, 32 32 validator_list=[self.hasNoProfanities]), 33 forms.RadioSelectField(field_name="rating1", choices=choices,33 oldforms.RadioSelectField(field_name="rating1", choices=choices, 34 34 is_required=ratings_required and num_rating_choices > 0, 35 35 validator_list=get_validator_list(1), 36 36 ), 37 forms.RadioSelectField(field_name="rating2", choices=choices,37 oldforms.RadioSelectField(field_name="rating2", choices=choices, 38 38 is_required=ratings_required and num_rating_choices > 1, 39 39 validator_list=get_validator_list(2), 40 40 ), 41 forms.RadioSelectField(field_name="rating3", choices=choices,41 oldforms.RadioSelectField(field_name="rating3", choices=choices, 42 42 is_required=ratings_required and num_rating_choices > 2, 43 43 validator_list=get_validator_list(3), 44 44 ), 45 forms.RadioSelectField(field_name="rating4", choices=choices,45 oldforms.RadioSelectField(field_name="rating4", choices=choices, 46 46 is_required=ratings_required and num_rating_choices > 3, 47 47 validator_list=get_validator_list(4), 48 48 ), 49 forms.RadioSelectField(field_name="rating5", choices=choices,49 oldforms.RadioSelectField(field_name="rating5", choices=choices, 50 50 is_required=ratings_required and num_rating_choices > 4, 51 51 validator_list=get_validator_list(5), 52 52 ), 53 forms.RadioSelectField(field_name="rating6", choices=choices,53 oldforms.RadioSelectField(field_name="rating6", choices=choices, 54 54 is_required=ratings_required and num_rating_choices > 5, 55 55 validator_list=get_validator_list(6), 56 56 ), 57 forms.RadioSelectField(field_name="rating7", choices=choices,57 oldforms.RadioSelectField(field_name="rating7", choices=choices, 58 58 is_required=ratings_required and num_rating_choices > 6, 59 59 validator_list=get_validator_list(7), 60 60 ), 61 forms.RadioSelectField(field_name="rating8", choices=choices,61 oldforms.RadioSelectField(field_name="rating8", choices=choices, 62 62 is_required=ratings_required and num_rating_choices > 7, 63 63 validator_list=get_validator_list(8), … … 118 118 return c 119 119 120 class PublicFreeCommentManipulator( forms.Manipulator):120 class PublicFreeCommentManipulator(oldforms.Manipulator): 121 121 "Manipulator that handles public free (unregistered) comments" 122 122 def __init__(self): 123 123 self.fields = ( 124 forms.TextField(field_name="person_name", maxlength=50, is_required=True,124 oldforms.TextField(field_name="person_name", maxlength=50, is_required=True, 125 125 validator_list=[self.hasNoProfanities]), 126 forms.LargeTextField(field_name="comment", maxlength=3000, is_required=True,126 oldforms.LargeTextField(field_name="comment", maxlength=3000, is_required=True, 127 127 validator_list=[self.hasNoProfanities]), 128 128 ) … … 222 222 login(request, manipulator.get_user()) 223 223 if errors or request.POST.has_key('preview'): 224 class CommentFormWrapper( forms.FormWrapper):224 class CommentFormWrapper(oldforms.FormWrapper): 225 225 def __init__(self, manipulator, new_data, errors, rating_choices): 226 forms.FormWrapper.__init__(self, manipulator, new_data, errors)226 oldforms.FormWrapper.__init__(self, manipulator, new_data, errors) 227 227 self.rating_choices = rating_choices 228 228 def ratings(self): … … 303 303 return render_to_response('comments/free_preview.html', { 304 304 'comment': comment, 305 'comment_form': forms.FormWrapper(manipulator, new_data, errors),305 'comment_form': oldforms.FormWrapper(manipulator, new_data, errors), 306 306 'options': options, 307 307 'target': target, django/branches/generic-auth/django/contrib/csrf/middleware.py
r2900 r4255 12 12 import itertools 13 13 14 _ERROR_MSG = "<h1>403 Forbidden</h1><p>Cross Site Request Forgery detected. Request aborted.</p>"14 _ERROR_MSG = '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><body><h1>403 Forbidden</h1><p>Cross Site Request Forgery detected. Request aborted.</p></body></html>' 15 15 16 16 _POST_FORM_RE = \ django/branches/generic-auth/django/core/handlers/base.py
r4149 r4255 61 61 return response 62 62 63 resolver = urlresolvers.RegexURLResolver(r'^/', settings.ROOT_URLCONF) 63 # Get urlconf from request object, if available. Otherwise use default. 64 urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF) 65 66 resolver = urlresolvers.RegexURLResolver(r'^/', urlconf) 64 67 try: 65 68 callback, callback_args, callback_kwargs = resolver.resolve(request.path) django/branches/generic-auth/django/db/backends/postgresql/base.py
r4063 r4255 20 20 # Import copy of _thread_local.py from Python 2.4 21 21 from django.utils._threading_local import local 22 23 def smart_basestring(s, charset): 24 if isinstance(s, unicode): 25 return s.encode(charset) 26 return s 27 28 class UnicodeCursorWrapper(object): 29 """ 30 A thin wrapper around psycopg cursors that allows them to accept Unicode 31 strings as params. 32 33 This is necessary because psycopg doesn't apply any DB quoting to 34 parameters that are Unicode strings. If a param is Unicode, this will 35 convert it to a bytestring using DEFAULT_CHARSET before passing it to 36 psycopg. 37 """ 38 def __init__(self, cursor, charset): 39 self.cursor = cursor 40 self.charset = charset 41 42 def execute(self, sql, params=()): 43 return self.cursor.execute(sql, [smart_basestring(p, self.charset) for p in params]) 44 45 def executemany(self, sql, param_list): 46 new_param_list = [[smart_basestring(p, self.charset) for p in params] for params in param_list] 47 return self.cursor.executemany(sql, new_param_list) 48 49 def __getattr__(self, attr): 50 if self.__dict__.has_key(attr): 51 return self.__dict__[attr] 52 else: 53 return getattr(self.cursor, attr) 22 54 23 55 class DatabaseWrapper(local): … … 46 78 cursor = self.connection.cursor() 47 79 cursor.execute("SET TIME ZONE %s", [settings.TIME_ZONE]) 80 cursor = UnicodeCursorWrapper(cursor, settings.DEFAULT_CHARSET) 48 81 if settings.DEBUG: 49 82 return util.CursorDebugWrapper(cursor, self) … … 119 152 Database.register_type(Database.new_type((1082,), "DATE", util.typecast_date)) 120 153 except AttributeError: 121 raise Exception, "You appear to be using psycopg version 2 , which isn't supported yet, because it's still in beta. Use psycopg version 1 instead: http://initd.org/projects/psycopg1"154 raise Exception, "You appear to be using psycopg version 2. Set your DATABASE_ENGINE to 'postgresql_psycopg2' instead of 'postgresql'." 122 155 Database.register_type(Database.new_type((1083,1266), "TIME", util.typecast_time)) 123 156 Database.register_type(Database.new_type((1114,1184), "TIMESTAMP", util.typecast_timestamp)) django/branches/generic-auth/django/db/models/fields/generic.py
r4026 r4255 3 3 """ 4 4 5 from django import forms5 from django import oldforms 6 6 from django.core.exceptions import ObjectDoesNotExist 7 7 from django.db import backend … … 99 99 def get_manipulator_field_objs(self): 100 100 choices = self.get_choices_default() 101 return [curry( forms.SelectMultipleField, size=min(max(len(choices), 5), 15), choices=choices)]101 return [curry(oldforms.SelectMultipleField, size=min(max(len(choices), 5), 15), choices=choices)] 102 102 103 103 def get_choices_default(self): django/branches/generic-auth/django/db/models/fields/__init__.py
r4149 r4255 3 3 from django.conf import settings 4 4 from django.core import validators 5 from django import forms 5 from django import oldforms 6 from django import newforms as forms 6 7 from django.core.exceptions import ObjectDoesNotExist 7 8 from django.utils.functional import curry … … 207 208 if self.choices: 208 209 if self.radio_admin: 209 field_objs = [ forms.RadioSelectField]210 field_objs = [oldforms.RadioSelectField] 210 211 params['ul_class'] = get_ul_class(self.radio_admin) 211 212 else: 212 field_objs = [ forms.SelectField]213 field_objs = [oldforms.SelectField] 213 214 214 215 params['choices'] = self.get_choices_default() … … 219 220 def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True): 220 221 """ 221 Returns a list of forms.FormField instances for this field. It222 Returns a list of oldforms.FormField instances for this field. It 222 223 calculates the choices at runtime, not at compile time. 223 224 … … 334 335 choices = property(_get_choices) 335 336 337 def formfield(self, initial=None): 338 "Returns a django.newforms.Field instance for this database Field." 339 # TODO: This is just a temporary default during development. 340 return forms.CharField(required=not self.blank, label=capfirst(self.verbose_name), initial=initial) 341 342 def value_from_object(self, obj): 343 "Returns the value of this field in the given model instance." 344 return getattr(obj, self.attname) 345 336 346 class AutoField(Field): 337 347 empty_strings_allowed = False … … 355 365 356 366 def get_manipulator_field_objs(self): 357 return [ forms.HiddenField]367 return [oldforms.HiddenField] 358 368 359 369 def get_manipulator_new_data(self, new_data, rel=False): … … 370 380 cls._meta.has_auto_field = True 371 381 382 def formfield(self, initial=None): 383 return None 384 372 385 class BooleanField(Field): 373 386 def __init__(self, *args, **kwargs): … … 382 395 383 396 def get_manipulator_field_objs(self): 384 return [forms.CheckboxField] 397 return [oldforms.CheckboxField] 398 399 def formfield(self, initial=None): 400 return forms.BooleanField(required=not self.blank, label=capfirst(self.verbose_name), initial=initial) 385 401 386 402 class CharField(Field): 387 403 def get_manipulator_field_objs(self): 388 return [ forms.TextField]404 return [oldforms.TextField] 389 405 390 406 def to_python(self, value): … … 398 414 return str(value) 399 415 416 def formfield(self, initial=None): 417 return forms.CharField(max_length=self.maxlength, required=not self.blank, label=capfirst(self.verbose_name), initial=initial) 418 400 419 # TODO: Maybe move this into contrib, because it's specialized. 401 420 class CommaSeparatedIntegerField(CharField): 402 421 def get_manipulator_field_objs(self): 403 return [ forms.CommaSeparatedIntegerField]422 return [oldforms.CommaSeparatedIntegerField] 404 423 405 424 class DateField(Field): … … 463 482 464 483 def get_manipulator_field_objs(self): 465 return [ forms.DateField]466 467 def flatten_data(self, follow, obj =None):484 return [oldforms.DateField] 485 486 def flatten_data(self, follow, obj=None): 468 487 val = self._get_val_from_obj(obj) 469 488 return {self.attname: (val is not None and val.strftime("%Y-%m-%d") or '')} 489 490 def formfield(self, initial=None): 491 return forms.DateField(required=not self.blank, label=capfirst(self.verbose_name), initial=initial) 470 492 471 493 class DateTimeField(DateField): … … 504 526 505 527 def get_manipulator_field_objs(self): 506 return [ forms.DateField,forms.TimeField]528 return [oldforms.DateField, oldforms.TimeField] 507 529 508 530 def get_manipulator_field_names(self, name_prefix): … … 527 549 time_field: (val is not None and val.strftime("%H:%M:%S") or '')} 528 550 551 def formfield(self, initial=None): 552 return forms.DateTimeField(required=not self.blank, label=capfirst(self.verbose_name), initial=initial) 553 529 554 class EmailField(CharField): 530 555 def __init__(self, *args, **kwargs): … … 536 561 537 562 def get_manipulator_field_objs(self): 538 return [ forms.EmailField]563 return [oldforms.EmailField] 539 564 540 565 def validate(self, field_data, all_data): 541 566 validators.isValidEmail(field_data, all_data) 567 568 def formfield(self, initial=None): 569 return forms.EmailField(required=not self.blank, label=capfirst(self.verbose_name), initial=initial) 542 570 543 571 class FileField(Field): … … 600 628 601 629 def get_manipulator_field_objs(self): 602 return [ forms.FileUploadField,forms.HiddenField]630 return [oldforms.FileUploadField, oldforms.HiddenField] 603 631 604 632 def get_manipulator_field_names(self, name_prefix): … … 628 656 629 657 def get_manipulator_field_objs(self): 630 return [curry( forms.FilePathField, path=self.path, match=self.match, recursive=self.recursive)]658 return [curry(oldforms.FilePathField, path=self.path, match=self.match, recursive=self.recursive)] 631 659 632 660 class FloatField(Field): … … 637 665 638 666 def get_manipulator_field_objs(self): 639 return [curry( forms.FloatField, max_digits=self.max_digits, decimal_places=self.decimal_places)]667 return [curry(oldforms.FloatField, max_digits=self.max_digits, decimal_places=self.decimal_places)] 640 668 641 669 class ImageField(FileField): … … 645 673 646 674 def get_manipulator_field_objs(self): 647 return [ forms.ImageUploadField,forms.HiddenField]675 return [oldforms.ImageUploadField, oldforms.HiddenField] 648 676 649 677 def contribute_to_class(self, cls, name): … … 671 699 empty_strings_allowed = False 672 700 def get_manipulator_field_objs(self): 673 return [forms.IntegerField] 701 return [oldforms.IntegerField] 702 703 def formfield(self, initial=None): 704 return forms.IntegerField(required=not self.blank, label=capfirst(self.verbose_name), initial=initial) 674 705 675 706 class IPAddressField(Field): … … 679 710 680 711 def get_manipulator_field_objs(self): 681 return [ forms.IPAddressField]712 return [oldforms.IPAddressField] 682 713 683 714 def validate(self, field_data, all_data): … … 690 721 691 722 def get_manipulator_field_objs(self): 692 return [ forms.NullBooleanField]723 return [oldforms.NullBooleanField] 693 724 694 725 class PhoneNumberField(IntegerField): 695 726 def get_manipulator_field_objs(self): 696 return [ forms.PhoneNumberField]727 return [oldforms.PhoneNumberField] 697 728 698 729 def validate(self, field_data, all_data): … … 701 732 class PositiveIntegerField(IntegerField): 702 733 def get_manipulator_field_objs(self): 703 return [ forms.PositiveIntegerField]734 return [oldforms.PositiveIntegerField] 704 735 705 736 class PositiveSmallIntegerField(IntegerField): 706 737 def get_manipulator_field_objs(self): 707 return [ forms.PositiveSmallIntegerField]738 return [oldforms.PositiveSmallIntegerField] 708 739 709 740 class SlugField(Field): … … 717 748 718 749 def get_manipulator_field_objs(self): 719 return [ forms.TextField]750 return [oldforms.TextField] 720 751 721 752 class SmallIntegerField(IntegerField): 722 753 def get_manipulator_field_objs(self): 723 return [ forms.SmallIntegerField]754 return [oldforms.SmallIntegerField] 724 755 725 756 class TextField(Field): 726 757 def get_manipulator_field_objs(self): 727 return [ forms.LargeTextField]758 return [oldforms.LargeTextField] 728 759 729 760 class TimeField(Field): … … 761 792 762 793 def get_manipulator_field_objs(self): 763 return [ forms.TimeField]794 return [oldforms.TimeField] 764 795 765 796 def flatten_data(self,follow, obj = None): 766 797 val = self._get_val_from_obj(obj) 767 798 return {self.attname: (val is not None and val.strftime("%H:%M:%S") or '')} 799 800 def formfield(self, initial=None): 801 return forms.TimeField(required=not self.blank, label=capfirst(self.verbose_name), initial=initial) 768 802 769 803 class URLField(Field): … … 771 805 if verify_exists: 772 806 kwargs.setdefault('validator_list', []).append(validators.isExistingURL) 807 self.verify_exists = verify_exists 773 808 Field.__init__(self, verbose_name, name, **kwargs) 774 809 775 810 def get_manipulator_field_objs(self): 776 return [forms.URLField] 811 return [oldforms.URLField] 812 813 def formfield(self, initial=None): 814 return forms.URLField(required=not self.blank, verify_exists=self.verify_exists, label=capfirst(self.verbose_name), initial=initial) 777 815 778 816 class USStateField(Field): 779 817 def get_manipulator_field_objs(self): 780 return [ forms.USStateField]818 return [oldforms.USStateField] 781 819 782 820 class XMLField(TextField): … … 789 827 790 828 def get_manipulator_field_objs(self): 791 return [curry( forms.XMLLargeTextField, schema_path=self.schema_path)]829 return [curry(oldforms.XMLLargeTextField, schema_path=self.schema_path)] 792 830 793 831 class OrderingField(IntegerField): … … 802 840 803 841 def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True): 804 return [ forms.HiddenField(name_prefix + self.name)]842 return [oldforms.HiddenField(name_prefix + self.name)]
