From d2d63014552ee05c49384976d19696372dccd764 Mon Sep 17 00:00:00 2001 From: Zain Memon Date: Thu, 2 Jul 2009 07:19:44 +0000 Subject: [PATCH] [soc2009/admin-ui] A far better way to implement adding inlines using javascript. Instead of handling all the prefix incrementing in Javascript and losing any default values, added a way to generate a template form that can be cloned every time a new inline is added. This is for stacked inlines. Support for tabular and selector inlines coming next. git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/admin-ui@11152 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/admin/helpers.py | 2 + django/contrib/admin/media/css/base.css | 4 ++ .../templates/admin/edit_inline/stacked.html | 68 ++++++++----------- django/forms/formsets.py | 21 +++++- django/forms/models.py | 5 +- 5 files changed, 55 insertions(+), 45 deletions(-) diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index 40437c0cdb..8fe7390367 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -114,6 +114,8 @@ class InlineAdminFormSet(object): yield InlineAdminForm(self.formset, form, self.fieldsets, self.opts.prepopulated_fields, original) for form in self.formset.extra_forms: yield InlineAdminForm(self.formset, form, self.fieldsets, self.opts.prepopulated_fields, None) + + yield InlineAdminForm(self.formset, self.formset.empty_form, self.fieldsets, self.opts.prepopulated_fields, None) def fields(self): fk = getattr(self.formset, "fk", None) diff --git a/django/contrib/admin/media/css/base.css b/django/contrib/admin/media/css/base.css index 289b624a43..d7fc72cb5f 100644 --- a/django/contrib/admin/media/css/base.css +++ b/django/contrib/admin/media/css/base.css @@ -350,6 +350,10 @@ table.orderable-initalized .order-cell, body>tr>td.order-cell { background-color: #F6F6F6; } +.empty_form { + display: none; +} + /* FORM DEFAULTS */ input, textarea, select { diff --git a/django/contrib/admin/templates/admin/edit_inline/stacked.html b/django/contrib/admin/templates/admin/edit_inline/stacked.html index adc20400e6..0be4cc5681 100644 --- a/django/contrib/admin/templates/admin/edit_inline/stacked.html +++ b/django/contrib/admin/templates/admin/edit_inline/stacked.html @@ -5,7 +5,7 @@ {{ inline_admin_formset.formset.non_form_errors }} {% for inline_admin_form in inline_admin_formset %} -
+

{{ inline_admin_formset.opts.verbose_name|title }}: {% if inline_admin_form.original %}{{ inline_admin_form.original }}{% else %} #{{ forloop.counter }}{% endif %} {% if inline_admin_formset.formset.can_delete and inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }} {{ inline_admin_form.deletion_field.label_tag }}{% endif %}

@@ -22,62 +22,48 @@
{% endfor %} -