diff options
| author | Brian Rosner <brosner@gmail.com> | 2008-10-21 20:25:45 +0000 |
|---|---|---|
| committer | Brian Rosner <brosner@gmail.com> | 2008-10-21 20:25:45 +0000 |
| commit | 5e5af8a8aae3c860f2b9463b2a5df713fc53d6d0 (patch) | |
| tree | 0fd503da78c9325ef29710475e4f5ec612999ad1 | |
| parent | ae43d11838c783797805774a76cd15ff6ea565ba (diff) | |
Display non_field_errors of inline forms in the admin. This was a presentation bug.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@9243 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/contrib/admin/helpers.py | 10 | ||||
| -rw-r--r-- | django/contrib/admin/options.py | 3 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/edit_inline/stacked.html | 1 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/edit_inline/tabular.html | 4 |
4 files changed, 16 insertions, 2 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index 00e1f88dab..a0d3237806 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -129,6 +129,16 @@ class InlineAdminForm(AdminForm): self.original.content_type_id = ContentType.objects.get_for_model(original).pk self.show_url = original and hasattr(original, 'get_absolute_url') super(InlineAdminForm, self).__init__(form, fieldsets, prepopulated_fields) + + def field_count(self): + # tabular.html uses this function for colspan value. + num_of_fields = 1 # always has at least one field + num_of_fields += len(self.fieldsets[0][1]["fields"]) + if self.formset.can_order: + num_of_fields += 1 + if self.formset.can_delete: + num_of_fields += 1 + return num_of_fields def pk_field(self): return AdminField(self.form, self.formset._pk_field.name, False) diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 019bfe9789..c9d9489680 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -585,6 +585,7 @@ class ModelAdmin(BaseModelAdmin): change_message = self.construct_change_message(request, form, formsets) self.log_change(request, new_object, change_message) return self.response_change(request, new_object) + else: form = ModelForm(instance=obj) for FormSet in self.get_formsets(request, obj): @@ -600,7 +601,7 @@ class ModelAdmin(BaseModelAdmin): inline_admin_formset = helpers.InlineAdminFormSet(inline, formset, fieldsets) inline_admin_formsets.append(inline_admin_formset) media = media + inline_admin_formset.media - + context = { 'title': _('Change %s') % force_unicode(opts.verbose_name), 'adminform': adminForm, diff --git a/django/contrib/admin/templates/admin/edit_inline/stacked.html b/django/contrib/admin/templates/admin/edit_inline/stacked.html index ecc3dca8ac..840c1293e1 100644 --- a/django/contrib/admin/templates/admin/edit_inline/stacked.html +++ b/django/contrib/admin/templates/admin/edit_inline/stacked.html @@ -12,6 +12,7 @@ {% if inline_admin_form.show_url %} <p><a href="../../../r/{{ inline_admin_form.original.content_type_id }}/{{ inline_admin_form.original.id }}/">{% trans "View on site" %}</a></p> {% endif %} + {% if inline_admin_form.form.non_field_errors %}{{ inline_admin_form.form.non_field_errors }}{% endif %} {% for fieldset in inline_admin_form %} {% include "admin/includes/fieldset.html" %} diff --git a/django/contrib/admin/templates/admin/edit_inline/tabular.html b/django/contrib/admin/templates/admin/edit_inline/tabular.html index e21cf10dea..25dbe763f8 100644 --- a/django/contrib/admin/templates/admin/edit_inline/tabular.html +++ b/django/contrib/admin/templates/admin/edit_inline/tabular.html @@ -16,7 +16,9 @@ </tr></thead> {% for inline_admin_form in inline_admin_formset %} - + {% if inline_admin_form.form.non_field_errors %} + <tr><td colspan="{{ inline_admin_form.field_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr> + {% endif %} <tr class="{% cycle row1,row2 %} {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}"> <td class="original"> |
