Tweaked the changes from changeset r15580 so as to avoid introducing a backwards incompatible context change to the change_list_results template. Refs #13126. Thanks to Sean Brant for the report.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15593 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2011-02-20 13:43:52 +00:00
parent 1073a83f2c
commit 674062c355
2 changed files with 13 additions and 4 deletions

View File

@ -17,9 +17,9 @@
<tbody> <tbody>
{% for result in results %} {% for result in results %}
{% if result.form.non_field_errors %} {% if result.form.non_field_errors %}
<tr><td colspan="{{ result.row|length }}">{{ result.form.non_field_errors }}</td></tr> <tr><td colspan="{{ result|length }}">{{ result.form.non_field_errors }}</td></tr>
{% endif %} {% endif %}
<tr class="{% cycle 'row1' 'row2' %}">{% for item in result.row %}{{ item }}{% endfor %}</tr> <tr class="{% cycle 'row1' 'row2' %}">{% for item in result %}{{ item }}{% endfor %}</tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>

View File

@ -195,13 +195,22 @@ def items_for_result(cl, result, form):
if form and not form[cl.model._meta.pk.name].is_hidden: if form and not form[cl.model._meta.pk.name].is_hidden:
yield mark_safe(u'<td>%s</td>' % force_unicode(form[cl.model._meta.pk.name])) yield mark_safe(u'<td>%s</td>' % force_unicode(form[cl.model._meta.pk.name]))
class ResultList(list):
# Wrapper class used to return items in a list_editable
# changelist, annotated with the form object for error
# reporting purposes. Needed to maintain backwards
# compatibility with existing admin templates.
def __init__(self, form, *items):
self.form = form
super(ResultList, self).__init__(*items)
def results(cl): def results(cl):
if cl.formset: if cl.formset:
for res, form in zip(cl.result_list, cl.formset.forms): for res, form in zip(cl.result_list, cl.formset.forms):
yield {'row': list(items_for_result(cl, res, form)), 'form': form} yield ResultList(form, items_for_result(cl, res, form))
else: else:
for res in cl.result_list: for res in cl.result_list:
yield {'row': list(items_for_result(cl, res, None)), 'form': None} yield ResultList(None, items_for_result(cl, res, None))
def result_hidden_fields(cl): def result_hidden_fields(cl):
if cl.formset: if cl.formset: