Changeset 4405
- Timestamp:
- 01/23/07 14:26:35 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/newforms-admin/django/contrib/admin/options.py
r4402 r4405 208 208 widget = widgets.FilteredSelectMultiple(db_field.verbose_name, db_field.rel.filter_interface-1) 209 209 return db_field.formfield(widget=widget, **kwargs) 210 # For DateTimeFields, use a special field and widget. 211 if isinstance(db_field, models.DateTimeField): 212 return forms.SplitDateTimeField(required=not db_field.blank, 213 widget=widgets.AdminSplitDateTime(), label=capfirst(db_field.verbose_name), **kwargs) 210 214 return db_field.formfield(**kwargs) 211 215 django/branches/newforms-admin/django/contrib/admin/widgets.py
r4391 r4405 4 4 5 5 from django import newforms as forms 6 import datetime 6 7 7 8 class FilteredSelectMultiple(forms.SelectMultiple): … … 20 21 from django.conf import settings 21 22 output = [super(FilteredSelectMultiple, self).render(name, value, attrs, choices)] 22 output.append( '<script type="text/javascript">addEvent(window, "load", function(e) {')23 output.append(u'<script type="text/javascript">addEvent(window, "load", function(e) {') 23 24 # TODO: "id_" is hard-coded here. This should instead use the correct 24 25 # API to determine the ID dynamically. 25 output.append( 'SelectFilter.init("id_%s", "%s", %s, "%s"); });</script>\n' % \26 output.append(u'SelectFilter.init("id_%s", "%s", %s, "%s"); });</script>\n' % \ 26 27 (name, self.verbose_name.replace('"', '\\"'), int(self.is_stacked), settings.ADMIN_MEDIA_PREFIX)) 27 return ''.join(output) 28 return u''.join(output) 29 30 class AdminSplitDateTime(forms.SplitDateTimeWidget): 31 """ 32 A SplitDateTime Widget that has some admin-specific styling. 33 """ 34 def __init__(self, attrs=None): 35 widgets = [forms.TextInput(attrs={'class': 'vDateField', 'size': '10'}), 36 forms.TextInput(attrs={'class': 'vTimeField', 'size': '8'})] 37 # Note that we're calling MultiWidget, not SplitDateTimeWidget, because 38 # we want to define widgets. 39 forms.MultiWidget.__init__(self, widgets, attrs) 40 41 def format_output(self, rendered_widgets): 42 return u'<p class="datetime">%s %s<br />%s %s</p>' % \ 43 (_('Date:'), rendered_widgets[0], _('Time:'), rendered_widgets[1])
