Fixed #33679 -- Fixed the last inline's id in admin for users without add permissions.
This commit is contained in:
parent
faab9e6769
commit
dddc8bc47d
|
@ -12,7 +12,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 inline_admin_form.original or inline_admin_form.show_url %} has_original{% endif %}{% if forloop.last and inline_admin_formset.has_add_permission %} empty-form last-related{% endif %}" id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}">
|
||||
{% for inline_admin_form in inline_admin_formset %}<div class="inline-related{% if inline_admin_form.original or inline_admin_form.show_url %} has_original{% endif %}{% if forloop.last and inline_admin_formset.has_add_permission %} empty-form last-related{% endif %}" id="{{ inline_admin_formset.formset.prefix }}-{% if forloop.last and inline_admin_formset.has_add_permission %}empty{% else %}{{ forloop.counter0 }}{% endif %}">
|
||||
<h3><b>{{ inline_admin_formset.opts.verbose_name|capfirst }}:</b> <span class="inline_label">{% if inline_admin_form.original %}{{ inline_admin_form.original }}{% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %} <a href="{% url inline_admin_form.model_admin.opts|admin_urlname:'change' inline_admin_form.original.pk|admin_urlquote %}" class="{% if inline_admin_formset.has_change_permission %}inlinechangelink{% else %}inlineviewlink{% endif %}">{% if inline_admin_formset.has_change_permission %}{% translate "Change" %}{% else %}{% translate "View" %}{% endif %}</a>{% endif %}
|
||||
{% else %}#{{ forloop.counter }}{% endif %}</span>
|
||||
{% if inline_admin_form.show_url %}<a href="{{ inline_admin_form.absolute_url }}">{% translate "View on site" %}</a>{% endif %}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<tr class="row-form-errors"><td colspan="{{ inline_admin_form|cell_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr>
|
||||
{% endif %}
|
||||
<tr class="form-row {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}{% if forloop.last and inline_admin_formset.has_add_permission %} empty-form{% endif %}"
|
||||
id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}">
|
||||
id="{{ inline_admin_formset.formset.prefix }}-{% if forloop.last and inline_admin_formset.has_add_permission %}empty{% else %}{{ forloop.counter0 }}{% endif %}">
|
||||
<td class="original">
|
||||
{% if inline_admin_form.original or inline_admin_form.show_url %}<p>
|
||||
{% if inline_admin_form.original %}
|
||||
|
|
|
@ -2694,6 +2694,20 @@ class AdminViewPermissionsTest(TestCase):
|
|||
formset = response.context["inline_admin_formsets"][0]
|
||||
self.assertEqual(len(formset.forms), 3)
|
||||
|
||||
def test_change_view_with_view_only_last_inline(self):
|
||||
self.viewuser.user_permissions.add(
|
||||
get_perm(Section, get_permission_codename("view", Section._meta))
|
||||
)
|
||||
self.client.force_login(self.viewuser)
|
||||
response = self.client.get(
|
||||
reverse("admin:admin_views_section_change", args=(self.s1.pk,))
|
||||
)
|
||||
self.assertEqual(len(response.context["inline_admin_formsets"]), 1)
|
||||
formset = response.context["inline_admin_formsets"][0]
|
||||
self.assertEqual(len(formset.forms), 3)
|
||||
# The last inline is not marked as empty.
|
||||
self.assertContains(response, 'id="article_set-2"')
|
||||
|
||||
def test_change_view_with_view_and_add_inlines(self):
|
||||
"""User has view and add permissions on the inline model."""
|
||||
self.viewuser.user_permissions.add(
|
||||
|
|
Loading…
Reference in New Issue