Move bulk operations view resolution to template

This commit is contained in:
Jeremy Stretch 2023-08-07 11:23:23 -04:00
parent a31ea23bd7
commit 4c2a4406a2
2 changed files with 19 additions and 29 deletions

View File

@ -117,22 +117,9 @@ class ObjectChildrenView(ObjectView, ActionsMixin, TableMixin):
def get_extra_context(self, request, instance): def get_extra_context(self, request, instance):
context = super().get_extra_context(request, instance) context = super().get_extra_context(request, instance)
return_url = '?return_url=' + request.get_full_path()
bulk_edit_url = reverse(f'{self.child_model._meta.app_label}:{self.child_model._meta.model_name}_bulk_edit') + return_url
bulk_delete_url = reverse(f'{self.child_model._meta.app_label}:{self.child_model._meta.model_name}_bulk_delete') + return_url
try:
bulk_rename_url = reverse(
f'{self.child_model._meta.app_label}:{self.child_model._meta.model_name}_bulk_rename') + return_url
except NoReverseMatch:
bulk_rename_url = None
context.update({ context.update({
'base_template': f'{instance._meta.app_label}/{instance._meta.model_name}.html', 'base_template': f'{instance._meta.app_label}/{instance._meta.model_name}.html',
'table_config': f'{self.table.__name__}_config', 'table_config': f'{self.table.__name__}_config',
'bulk_edit_url': bulk_edit_url,
'bulk_delete_url': bulk_delete_url,
'bulk_rename_url': bulk_rename_url,
}) })
return context return context
@ -170,6 +157,7 @@ class ObjectChildrenView(ObjectView, ActionsMixin, TableMixin):
'table': table, 'table': table,
'actions': actions, 'actions': actions,
'tab': self.tab, 'tab': self.tab,
'return_url': request.get_full_path(),
**self.get_extra_context(request, instance), **self.get_extra_context(request, instance),
}) })

View File

@ -16,28 +16,30 @@
<div class="bulk-button-group"> <div class="bulk-button-group">
{% if 'bulk_edit' in actions %} {% if 'bulk_edit' in actions %}
<div class="btn-group" role="group"> <div class="btn-group" role="group">
<button type="submit" name="_edit" {% with bulk_edit_view=child_model|validated_viewname:"bulk_edit" %}
formaction="{{ bulk_edit_url }}" {% if bulk_edit_view %}
class="btn btn-warning btn-sm"> <button type="submit" name="_edit" formaction="{% url bulk_edit_view %}?return_url={{ return_url }}" class="btn btn-warning btn-sm">
<i class="mdi mdi-pencil" aria-hidden="true"></i> Edit <i class="mdi mdi-pencil" aria-hidden="true"></i> Edit
</button> </button>
{% if bulk_rename_url %}
<button type="submit" name="_rename"
formaction="{{ bulk_rename_url }}"
class="btn btn-outline-warning btn-sm">
<i class="mdi mdi-pencil-outline" aria-hidden="true"></i> Rename
</button>
{% endif %} {% endif %}
{% endwith %}
{% with bulk_rename_view=child_model|validated_viewname:"bulk_rename" %}
{% if bulk_rename_view %}
<button type="submit" name="_rename" formaction="{% url bulk_rename_view %}?return_url={{ return_url }}" class="btn btn-outline-warning btn-sm">
<i class="mdi mdi-pencil-outline" aria-hidden="true"></i> Rename
</button>
{% endif %}
{% endwith %}
</div> </div>
{% endif %} {% endif %}
<div class="btn-group" role="group"> <div class="btn-group" role="group">
{% if 'bulk_delete' in actions %} {% with bulk_delete_view=child_model|validated_viewname:"bulk_delete" %}
<button type="submit" {% if 'bulk_delete' in actions and bulk_delete_view %}
formaction="{{ bulk_delete_url }}" <button type="submit" formaction="{% url bulk_delete_view %}?return_url={{ return_url }}" class="btn btn-danger btn-sm">
class="btn btn-danger btn-sm"> <i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete
</button> </button>
{% endif %} {% endif %}
{% endwith %}
{% block bulk_delete_control %} {% block bulk_delete_control %}
{% endblock %} {% endblock %}
</div> </div>