Author: russellm
Date: 2010-05-04 02:23:02 -0500 (Tue, 04 May 2010)
New Revision: 13083

Modified:
   django/trunk/django/contrib/admin/media/js/inlines.js
   django/trunk/django/contrib/admin/media/js/inlines.min.js
   django/trunk/django/contrib/admin/templates/admin/edit_inline/stacked.html
   django/trunk/django/contrib/admin/templates/admin/edit_inline/tabular.html
Log:
Fixed #13459 -- Corrected numbering of tr elements in the admin. Reverts the 
changes introduced in r13068. Thanks to 3point2 for the report and patch.

Modified: django/trunk/django/contrib/admin/media/js/inlines.js
===================================================================
--- django/trunk/django/contrib/admin/media/js/inlines.js       2010-05-04 
06:14:47 UTC (rev 13082)
+++ django/trunk/django/contrib/admin/media/js/inlines.js       2010-05-04 
07:23:02 UTC (rev 13083)
@@ -53,12 +53,12 @@
                        }
                        addButton.click(function() {
                                var totalForms = $("#id_" + options.prefix + 
"-TOTAL_FORMS");
-                               var nextIndex = parseInt(totalForms.val()) + 1;
+                               var nextIndex = parseInt(totalForms.val());
                                var template = $("#" + options.prefix + 
"-empty");
                                var row = template.clone(true);
                                row.removeClass(options.emptyCssClass)
                                    .addClass(options.formCssClass)
-                                   .attr("id", options.prefix + nextIndex)
+                                   .attr("id", options.prefix + "-" + 
nextIndex)
                                    .insertBefore($(template));
                                row.find("*")
                                    .filter(function() {
@@ -93,7 +93,7 @@
                                        updateElementIndex(this, 
options.prefix, totalForms.val());
                                });
                                // Update number of total forms
-                               $(totalForms).val(nextIndex);
+                               $(totalForms).val(nextIndex + 1);
                                // Hide add button in case we've hit the max, 
except we want to add infinitely
                                if ((maxForms.val() != '') && (maxForms.val() 
<= totalForms.val())) {
                                        addButton.parent().hide();

Modified: django/trunk/django/contrib/admin/media/js/inlines.min.js
===================================================================
--- django/trunk/django/contrib/admin/media/js/inlines.min.js   2010-05-04 
06:14:47 UTC (rev 13082)
+++ django/trunk/django/contrib/admin/media/js/inlines.min.js   2010-05-04 
07:23:02 UTC (rev 13083)
@@ -1,6 +1,6 @@
 (function(a){a.fn.formset=function(g){var 
b=a.extend({},a.fn.formset.defaults,g),l=function(e,f,j){var d=new 
RegExp("("+f+"-\\d+)");f=f+"-"+j;a(e).attr("for")&&a(e).attr("for",a(e).attr("for").replace(d,f));if(e.id)e.id=e.id.replace(d,f);if(e.name)e.name=e.name.replace(d,f)};g=a("#id_"+b.prefix+"-TOTAL_FORMS").attr("autocomplete","off");var
 
h=a("#id_"+b.prefix+"-MAX_NUM_FORMS").attr("autocomplete","off");g=h.val()==""||h.val()-g.val()>0;a(this).each(function(){a(this).not("."+b.emptyCssClass).addClass(b.formCssClass)});
-if(a(this).length&&g){var 
i;if(a(this).attr("tagName")=="TR"){g=this.eq(0).children().length;a(this).parent().append('<tr
 class="'+b.addCssClass+'"><td colspan="'+g+'"><a 
href="javascript:void(0)">'+b.addText+"</a></tr>");i=a(this).parent().find("tr:last
 a")}else{a(this).filter(":last").after('<div class="'+b.addCssClass+'"><a 
href="javascript:void(0)">'+b.addText+"</a></div>");i=a(this).filter(":last").next().find("a")}i.click(function(){var
 e=a("#id_"+b.prefix+"-TOTAL_FORMS"),f=parseInt(e.val())+1,
-j=a("#"+b.prefix+"-empty"),d=j.clone(true);d.removeClass(b.emptyCssClass).addClass(b.formCssClass).attr("id",b.prefix+f).insertBefore(a(j));d.find("*").filter(function(){var
 c=a(this);return 
c.attr("id")&&c.attr("id").search(/__prefix__/)>=0}).each(function(){var 
c=a(this);c.attr("id",c.attr("id").replace(/__prefix__/g,f))}).end().filter(function(){var
 c=a(this);return 
c.attr("name")&&c.attr("name").search(/__prefix__/)>=0}).each(function(){var 
c=a(this);c.attr("name",c.attr("name").replace(/__prefix__/g,
-f))});if(d.is("tr"))d.children(":last").append('<div><a 
class="'+b.deleteCssClass+'" 
href="javascript:void(0)">'+b.deleteText+"</a></div>");else 
d.is("ul")||d.is("ol")?d.append('<li><a class="'+b.deleteCssClass+'" 
href="javascript:void(0)">'+b.deleteText+"</a></li>"):d.children(":first").append('<span><a
 class="'+b.deleteCssClass+'" 
href="javascript:void(0)">'+b.deleteText+"</a></span>");d.find("input,select,textarea,label,a").each(function(){l(this,b.prefix,e.val())});a(e).val(f);h.val()!=""&&
+if(a(this).length&&g){var 
i;if(a(this).attr("tagName")=="TR"){g=this.eq(0).children().length;a(this).parent().append('<tr
 class="'+b.addCssClass+'"><td colspan="'+g+'"><a 
href="javascript:void(0)">'+b.addText+"</a></tr>");i=a(this).parent().find("tr:last
 a")}else{a(this).filter(":last").after('<div class="'+b.addCssClass+'"><a 
href="javascript:void(0)">'+b.addText+"</a></div>");i=a(this).filter(":last").next().find("a")}i.click(function(){var
 e=a("#id_"+b.prefix+"-TOTAL_FORMS"),f=parseInt(e.val()),
+j=a("#"+b.prefix+"-empty"),d=j.clone(true);d.removeClass(b.emptyCssClass).addClass(b.formCssClass).attr("id",b.prefix+"-"+f).insertBefore(a(j));d.find("*").filter(function(){var
 c=a(this);return 
c.attr("id")&&c.attr("id").search(/__prefix__/)>=0}).each(function(){var 
c=a(this);c.attr("id",c.attr("id").replace(/__prefix__/g,f))}).end().filter(function(){var
 c=a(this);return 
c.attr("name")&&c.attr("name").search(/__prefix__/)>=0}).each(function(){var 
c=a(this);c.attr("name",c.attr("name").replace(/__prefix__/g,
+f))});if(d.is("tr"))d.children(":last").append('<div><a 
class="'+b.deleteCssClass+'" 
href="javascript:void(0)">'+b.deleteText+"</a></div>");else 
d.is("ul")||d.is("ol")?d.append('<li><a class="'+b.deleteCssClass+'" 
href="javascript:void(0)">'+b.deleteText+"</a></li>"):d.children(":first").append('<span><a
 class="'+b.deleteCssClass+'" 
href="javascript:void(0)">'+b.deleteText+"</a></span>");d.find("input,select,textarea,label,a").each(function(){l(this,b.prefix,e.val())});a(e).val(f+1);h.val()!=""&&
 
h.val()<=e.val()&&i.parent().hide();d.find("a."+b.deleteCssClass).click(function(){var
 
c=a(this).parents("."+b.formCssClass);c.remove();b.removed&&b.removed(c);c=a("."+b.formCssClass);a("#id_"+b.prefix+"-TOTAL_FORMS").val(c.length);if(h.val()==""||h.val()>=c.length)i.parent().show();for(var
 
k=0,m=c.length;k<m;k++)a(c.get(k)).find("input,select,textarea,label,a").each(function(){l(this,b.prefix,k)});return
 false});b.added&&b.added(d);return false})}return 
this};a.fn.formset.defaults={prefix:"form",
 addText:"add 
another",deleteText:"remove",addCssClass:"add-row",deleteCssClass:"delete-row",emptyCssClass:"empty-row",formCssClass:"dynamic-form",added:null,removed:null}})(django.jQuery);

Modified: 
django/trunk/django/contrib/admin/templates/admin/edit_inline/stacked.html
===================================================================
--- django/trunk/django/contrib/admin/templates/admin/edit_inline/stacked.html  
2010-05-04 06:14:47 UTC (rev 13082)
+++ django/trunk/django/contrib/admin/templates/admin/edit_inline/stacked.html  
2010-05-04 07:23:02 UTC (rev 13083)
@@ -4,7 +4,7 @@
 {{ inline_admin_formset.formset.management_form }}
 {{ inline_admin_formset.formset.non_form_errors }}
 
-{% for inline_admin_form in inline_admin_formset %}<div 
class="inline-related{% if forloop.last %} empty-form last-related{% endif %}" 
id="{{ inline_admin_formset.formset.prefix }}{% if not forloop.last %}{{ 
forloop.counter }}{% else %}-empty{% endif %}">
+{% for inline_admin_form in inline_admin_formset %}<div 
class="inline-related{% if forloop.last %} empty-form last-related{% endif %}" 
id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ 
forloop.counter0 }}{% else %}empty{% endif %}">
   <h3><b>{{ inline_admin_formset.opts.verbose_name|title }}:</b>&nbsp;<span 
class="inline_label">{% if inline_admin_form.original %}{{ 
inline_admin_form.original }}{% else %}#{{ forloop.counter }}{% endif %}</span>
     {% if inline_admin_form.show_url %}<a href="../../../r/{{ 
inline_admin_form.original_content_type_id }}/{{ inline_admin_form.original.id 
}}/">{% trans "View on site" %}</a>{% endif %}
     {% if inline_admin_formset.formset.can_delete and 
inline_admin_form.original %}<span class="delete">{{ 
inline_admin_form.deletion_field.field }} {{ 
inline_admin_form.deletion_field.label_tag }}</span>{% endif %}

Modified: 
django/trunk/django/contrib/admin/templates/admin/edit_inline/tabular.html
===================================================================
--- django/trunk/django/contrib/admin/templates/admin/edit_inline/tabular.html  
2010-05-04 06:14:47 UTC (rev 13082)
+++ django/trunk/django/contrib/admin/templates/admin/edit_inline/tabular.html  
2010-05-04 07:23:02 UTC (rev 13083)
@@ -21,7 +21,7 @@
         <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 %}{% if forloop.last %} 
empty-form{% endif %}"
-             id="{{ inline_admin_formset.formset.prefix }}{% if not 
forloop.last %}{{ forloop.counter }}{% else %}-empty{% endif %}">
+             id="{{ inline_admin_formset.formset.prefix }}-{% if not 
forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}">
         <td class="original">
           {% if inline_admin_form.original or inline_admin_form.show_url %}<p>
           {% if inline_admin_form.original %} {{ inline_admin_form.original 
}}{% endif %}

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

Reply via email to