#14303: admin inline form id attribute numbering order and uniqueness is lost
----------------------------------+-----------------------------------------
Reporter: m0nonoke | Owner: nobody
Status: new | Milestone: 1.3
Component: django.contrib.admin | Version: SVN
Keywords: inline javascript | Stage: Unreviewed
Has_patch: 0 |
----------------------------------+-----------------------------------------
Inline forms that are added using the "Add another ..." button created by
contrib/admin/media/js/inlines.js lose their id attribute ordering and
uniqueness if they are deleted out of reverse order.
To demonstrate the effect take the following steps:
1. Create an admin form eg. MyAdmin with a tabular inline form eg.
MyInline.
2. Add 3 or more inline forms using the "Add another MyInline button"
3. The HTML for the formset looks something like <tr id="myinline_set-0"
class="dynamic-myinline_ser row1"> where myinline_set is the prefix. For 4
forms the ids are therefore myinline_set-0, myinline_set-1,
myinline_set-2, myinline_set-3.
4. Delete the second form using the delete link. The ids are now
myinline_set-0, myinline_set-2, myinline_set-3.
5. Add another inline using the "Add another MyInline button". The ids now
show The ids are now myinline_set-0, myinline_set-2, myinline_set-3,
myinline_set-3.
It looks like the problem occurs because of the way the id is computed in
contrib/admin/media/js/inlines.js.
{{{
# contrib/admin/media/js/inlines.js Line 59-62
59 row.removeClass(options.emptyCssClass)
60 .addClass(options.formCssClass)
61 .attr("id", options.prefix + "-" + nextIndex)
62 .insertBefore($(template));
}}}
nextIndex is just the TOTAL_FORMS value of the management form plus one.
The solution would involve resetting the values for all inline forms.
--
Ticket URL: <http://code.djangoproject.com/ticket/14303>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
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.