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):
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({
'base_template': f'{instance._meta.app_label}/{instance._meta.model_name}.html',
'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
@ -170,6 +157,7 @@ class ObjectChildrenView(ObjectView, ActionsMixin, TableMixin):
'table': table,
'actions': actions,
'tab': self.tab,
'return_url': request.get_full_path(),
**self.get_extra_context(request, instance),
})

View File

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