Move bulk edit/delete buttons to template tags

This commit is contained in:
jeremystretch 2022-03-10 16:27:53 -05:00
parent 5a3e99626d
commit 76445bd19c
4 changed files with 42 additions and 12 deletions

View File

@ -75,14 +75,10 @@ Context:
<div class="card-body">
<div class="float-end">
{% if 'bulk_edit' in actions %}
<button type="submit" name="_edit" formaction="{% url model|viewname:"bulk_edit" %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning btn-sm" disabled>
<span class="mdi mdi-pencil" aria-hidden="true"></span> Edit All
</button>
{% bulk_edit_button model query_params=request.GET %}
{% endif %}
{% if 'bulk_delete' in actions %}
<button type="submit" name="_delete" formaction="{% url model|viewname:"bulk_delete" %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger btn-sm" disabled>
<span class="mdi mdi-trash-can-outline" aria-hidden="true"></span> Delete All
</button>
{% bulk_delete_button model query_params=request.GET %}
{% endif %}
</div>
<div class="form-check">
@ -115,14 +111,10 @@ Context:
<div class="bulk-button-group">
{% block bulk_buttons %}
{% if 'bulk_edit' in actions %}
<button type="submit" name="_edit" formaction="{% url model|viewname:"bulk_edit" %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning btn-sm">
<i class="mdi mdi-pencil" aria-hidden="true"></i> Edit Selected
</button>
{% bulk_edit_button model query_params=request.GET %}
{% endif %}
{% if 'bulk_delete' in actions %}
<button type="submit" name="_delete" formaction="{% url model|viewname:"bulk_delete" %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger btn-sm">
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete Selected
</button>
{% bulk_delete_button model query_params=request.GET %}
{% endif %}
{% endblock %}
</div>

View File

@ -0,0 +1,5 @@
{% if url %}
<button type="submit" name="_delete" formaction="{{ url }}" class="btn btn-danger btn-sm">
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete Selected
</button>
{% endif %}

View File

@ -0,0 +1,5 @@
{% if url %}
<button type="submit" name="_edit" formaction="{{ url }}" class="btn btn-warning btn-sm">
<i class="mdi mdi-pencil" aria-hidden="true"></i> Edit Selected
</button>
{% endif %}

View File

@ -92,3 +92,31 @@ def export_button(context, model):
'export_templates': export_templates,
'data_format': data_format,
}
@register.inclusion_tag('buttons/bulk_edit.html')
def bulk_edit_button(model, action='bulk_edit', query_params=None):
try:
url = reverse(get_viewname(model, action))
if query_params:
url = f'{url}?{query_params.urlencode()}'
except NoReverseMatch:
url = None
return {
'url': url,
}
@register.inclusion_tag('buttons/bulk_delete.html')
def bulk_delete_button(model, action='bulk_delete', query_params=None):
try:
url = reverse(get_viewname(model, action))
if query_params:
url = f'{url}?{query_params.urlencode()}'
except NoReverseMatch:
url = None
return {
'url': url,
}