Changeset 8385
- Timestamp:
- 08/15/08 12:38:39 (4 months ago)
- Files:
-
- django/trunk/django/contrib/admin/options.py (modified) (2 diffs)
- django/trunk/django/contrib/admin/templates/admin/change_form.html (modified) (1 diff)
- django/trunk/django/contrib/admin/templates/admin/prepopulated_fields_js.html (added)
- django/trunk/django/contrib/admin/templatetags/admin_modify.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/contrib/admin/options.py
r8384 r8385 823 823 if self.verbose_name_plural is None: 824 824 self.verbose_name_plural = self.model._meta.verbose_name_plural 825 826 def _media(self): 827 from django.conf import settings 828 js = [] 829 if self.prepopulated_fields: 830 js.append('js/urlify.js') 831 return forms.Media(js=['%s%s' % (settings.ADMIN_MEDIA_PREFIX, url) for url in js]) 832 media = property(_media) 825 833 826 834 def get_formset(self, request, obj=None): … … 867 875 868 876 def _media(self): 869 media = self. formset.media877 media = self.opts.media + self.formset.media 870 878 for fs in self: 871 879 media = media + fs.media django/trunk/django/contrib/admin/templates/admin/change_form.html
r7967 r8385 59 59 60 60 {# JavaScript for prepopulated fields #} 61 62 {% if add %} 63 <script type="text/javascript"> 64 {% for field in adminform.prepopulated_fields %} 65 document.getElementById("{{ field.field.auto_id }}").onchange = function() { this._changed = true; }; 66 {% for dependency in field.dependencies %} 67 document.getElementById("{{ dependency.auto_id }}").onkeyup = function() { 68 var e = document.getElementById("{{ field.field.auto_id }}"); 69 if (!e._changed) { e.value = URLify({% for innerdep in field.dependencies %}document.getElementById("{{ innerdep.auto_id }}").value{% if not forloop.last %} + ' ' + {% endif %}{% endfor %}, {{ field.field.field.max_length }}); } 70 } 71 {% endfor %} 72 {% endfor %} 73 </script> 74 {% endif %} 61 {% prepopulated_fields_js %} 75 62 76 63 </div> django/trunk/django/contrib/admin/templatetags/admin_modify.py
r7967 r8385 2 2 3 3 register = template.Library() 4 5 def prepopulated_fields_js(context): 6 """ 7 Creates a list of prepopulated_fields that should render Javascript for 8 the prepopulated fields for both the admin form and inlines. 9 """ 10 prepopulated_fields = [] 11 if context["add"]: 12 prepopulated_fields.extend(context["adminform"].prepopulated_fields) 13 for inline_admin_formset in context['inline_admin_formsets']: 14 for inline_admin_form in inline_admin_formset: 15 if inline_admin_form.original is None: 16 prepopulated_fields.extend(inline_admin_form.prepopulated_fields) 17 context.update({"prepopulated_fields": prepopulated_fields}) 18 return context 19 prepopulated_fields_js = register.inclusion_tag('admin/prepopulated_fields_js.html', takes_context=True)(prepopulated_fields_js) 4 20 5 21 def submit_row(context):
