Skip to content

Commit af58552

Browse files
authored
fix: missing add button in empty inlines (#758)
1 parent 46863a5 commit af58552

File tree

2 files changed

+186
-201
lines changed

2 files changed

+186
-201
lines changed

src/unfold/templates/admin/edit_inline/stacked.html

Lines changed: 59 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -13,82 +13,75 @@ <h2 class="bg-gray-100 border border-transparent font-semibold mb-6 px-4 py-3 ro
1313
{{ inline_admin_formset.formset.management_form }}
1414
{% include "unfold/helpers/messages/error.html" with errors=inline_admin_formset.formset.non_form_errors %}
1515

16-
{% if inline_admin_formset.forms|length == 0 %}
17-
<div>
18-
<p class="mb-6 text-sm">
19-
{% trans "No records found." %}
20-
</p>
21-
</div>
22-
{% else %}
23-
<div class="border border-gray-200 mb-6 overflow-hidden rounded-md shadow-sm w-full dark:border-gray-800">
24-
{% for inline_admin_form in inline_admin_formset %}
25-
<div class="inline-related group inline-stacked {% 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 %}">
26-
{% if not inline_admin_formset.opts.hide_title or inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission %}
27-
<h3 class="bg-gray-50 border-b {% if not forloop.first %}border-t{% endif %} border-gray-200 flex font-medium items-center mb-3 px-3 py-2 text-sm dark:bg-white/[.02] dark:border-gray-800">
28-
<span class="mr-2">
29-
{{ inline_admin_formset.opts.verbose_name|capfirst }}:
30-
</span>
3116

32-
<span class="inline_label font-semibold text-font-important-light dark:text-font-important-dark">
33-
{% if inline_admin_form.original and inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %}
34-
<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 %} font-medium text-primary-600 dark:text-primary-500">
35-
{{ inline_admin_form.original }}
36-
</a>
37-
{% else %}
38-
{% if inline_admin_form.original %}
39-
{% with inline_title=inline_admin_form.original.get_inline_title %}
40-
{% if inline_title %}
41-
{{ inline_title }}
42-
{% else %}
43-
{{ inline_admin_form.original }}
44-
{% endif %}
45-
{% endwith %}
17+
<div class="border border-gray-200 mb-6 overflow-hidden rounded-md shadow-sm w-full dark:border-gray-800">
18+
{% for inline_admin_form in inline_admin_formset %}
19+
<div class="inline-related group inline-stacked {% 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 %}">
20+
{% if not inline_admin_formset.opts.hide_title or inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission %}
21+
<h3 class="bg-gray-50 border-b {% if not forloop.first %}border-t{% endif %} border-gray-200 flex font-medium items-center mb-3 px-3 py-2 text-sm dark:bg-white/[.02] dark:border-gray-800">
22+
<span class="mr-2">
23+
{{ inline_admin_formset.opts.verbose_name|capfirst }}:
24+
</span>
4625

47-
{% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %}
48-
<a href="{% url inline_admin_form.model_admin.opts|admin_urlname:'change' inline_admin_form.original.pk|admin_urlquote %}" class="{{ inline_admin_formset.has_change_permission|yesno:'inlinechangelink,inlineviewlink' }} font-medium ml-2 text-primary-600 dark:text-primary-500">
49-
{% if inline_admin_formset.has_change_permission %}
50-
{% translate "Change" %}
51-
{% else %}
52-
{% translate "View" %}
53-
{% endif %}
54-
</a>
26+
<span class="inline_label font-semibold text-font-important-light dark:text-font-important-dark">
27+
{% if inline_admin_form.original and inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %}
28+
<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 %} font-medium text-primary-600 dark:text-primary-500">
29+
{{ inline_admin_form.original }}
30+
</a>
31+
{% else %}
32+
{% if inline_admin_form.original %}
33+
{% with inline_title=inline_admin_form.original.get_inline_title %}
34+
{% if inline_title %}
35+
{{ inline_title }}
36+
{% else %}
37+
{{ inline_admin_form.original }}
5538
{% endif %}
56-
{% else %}
57-
#{{ forloop.counter }}
39+
{% endwith %}
40+
41+
{% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %}
42+
<a href="{% url inline_admin_form.model_admin.opts|admin_urlname:'change' inline_admin_form.original.pk|admin_urlquote %}" class="{{ inline_admin_formset.has_change_permission|yesno:'inlinechangelink,inlineviewlink' }} font-medium ml-2 text-primary-600 dark:text-primary-500">
43+
{% if inline_admin_formset.has_change_permission %}
44+
{% translate "Change" %}
45+
{% else %}
46+
{% translate "View" %}
47+
{% endif %}
48+
</a>
5849
{% endif %}
50+
{% else %}
51+
#{{ forloop.counter }}
5952
{% endif %}
60-
</span>
61-
62-
{% if inline_admin_form.show_url %}
63-
<a href="{{ inline_admin_form.absolute_url }}" class="font-medium ml-2 text-primary-600 dark:text-primary-500">
64-
{% trans "View on site" %}
65-
</a>
6653
{% endif %}
54+
</span>
6755

68-
{% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission and inline_admin_form.original %}
69-
<span class="delete flex gap-2 items-center ml-auto">
70-
{{ inline_admin_form.deletion_field.field|add_css_class:form_classes.checkbox }} {{ inline_admin_form.deletion_field.label_tag }}
71-
</span>
72-
{% endif %}
73-
</h3>
74-
{% endif %}
56+
{% if inline_admin_form.show_url %}
57+
<a href="{{ inline_admin_form.absolute_url }}" class="font-medium ml-2 text-primary-600 dark:text-primary-500">
58+
{% trans "View on site" %}
59+
</a>
60+
{% endif %}
61+
62+
{% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission and inline_admin_form.original %}
63+
<span class="delete flex gap-2 items-center ml-auto">
64+
{{ inline_admin_form.deletion_field.field|add_css_class:form_classes.checkbox }} {{ inline_admin_form.deletion_field.label_tag }}
65+
</span>
66+
{% endif %}
67+
</h3>
68+
{% endif %}
7569

76-
{% include "unfold/helpers/messages/error.html" with errors=inline_admin_form.form.non_field_errors %}
70+
{% include "unfold/helpers/messages/error.html" with errors=inline_admin_form.form.non_field_errors %}
7771

78-
{% for fieldset in inline_admin_form %}
79-
<div class="px-3 -mb-5 {% if inline_admin_formset.opts.hide_title %}{% if not inline_admin_formset.formset.can_delete or not inline_admin_formset.has_delete_permission %}pt-3{% endif %}{% endif %}">
80-
{% include 'admin/includes/fieldset.html' with stacked=1 %}
81-
</div>
82-
{% endfor %}
72+
{% for fieldset in inline_admin_form %}
73+
<div class="px-3 -mb-5 {% if inline_admin_formset.opts.hide_title %}{% if not inline_admin_formset.formset.can_delete or not inline_admin_formset.has_delete_permission %}pt-3{% endif %}{% endif %}">
74+
{% include 'admin/includes/fieldset.html' with stacked=1 %}
75+
</div>
76+
{% endfor %}
8377

84-
{% if inline_admin_form.needs_explicit_pk_field %}
85-
{{ inline_admin_form.pk_field.field }}
86-
{% endif %}
78+
{% if inline_admin_form.needs_explicit_pk_field %}
79+
{{ inline_admin_form.pk_field.field }}
80+
{% endif %}
8781

88-
{% if inline_admin_form.fk_field %}{{ inline_admin_form.fk_field.field }}{% endif %}
89-
</div>
90-
{% endfor %}
91-
</div>
92-
{% endif %}
82+
{% if inline_admin_form.fk_field %}{{ inline_admin_form.fk_field.field }}{% endif %}
83+
</div>
84+
{% endfor %}
85+
</div>
9386
</fieldset>
9487
</div>

0 commit comments

Comments
 (0)