Author: brosner
Date: 2008-10-21 15:25:45 -0500 (Tue, 21 Oct 2008)
New Revision: 9243

Modified:
   django/trunk/django/contrib/admin/helpers.py
   django/trunk/django/contrib/admin/options.py
   django/trunk/django/contrib/admin/templates/admin/edit_inline/stacked.html
   django/trunk/django/contrib/admin/templates/admin/edit_inline/tabular.html
Log:
Display non_field_errors of inline forms in the admin. This was a presentation 
bug.

Modified: django/trunk/django/contrib/admin/helpers.py
===================================================================
--- django/trunk/django/contrib/admin/helpers.py        2008-10-21 19:06:44 UTC 
(rev 9242)
+++ django/trunk/django/contrib/admin/helpers.py        2008-10-21 20:25:45 UTC 
(rev 9243)
@@ -129,6 +129,16 @@
             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)

Modified: django/trunk/django/contrib/admin/options.py
===================================================================
--- django/trunk/django/contrib/admin/options.py        2008-10-21 19:06:44 UTC 
(rev 9242)
+++ django/trunk/django/contrib/admin/options.py        2008-10-21 20:25:45 UTC 
(rev 9243)
@@ -585,6 +585,7 @@
                 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 @@
             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,

Modified: 
django/trunk/django/contrib/admin/templates/admin/edit_inline/stacked.html
===================================================================
--- django/trunk/django/contrib/admin/templates/admin/edit_inline/stacked.html  
2008-10-21 19:06:44 UTC (rev 9242)
+++ django/trunk/django/contrib/admin/templates/admin/edit_inline/stacked.html  
2008-10-21 20:25:45 UTC (rev 9243)
@@ -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" %}

Modified: 
django/trunk/django/contrib/admin/templates/admin/edit_inline/tabular.html
===================================================================
--- django/trunk/django/contrib/admin/templates/admin/edit_inline/tabular.html  
2008-10-21 19:06:44 UTC (rev 9242)
+++ django/trunk/django/contrib/admin/templates/admin/edit_inline/tabular.html  
2008-10-21 20:25:45 UTC (rev 9243)
@@ -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">


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to