Closes #8747: Rename ObjectListView action_buttons to actions

This commit is contained in:
jeremystretch 2022-02-24 16:33:51 -05:00
parent 6638f560f8
commit 0953bba0a3
7 changed files with 50 additions and 53 deletions

View File

@ -127,11 +127,11 @@ This template is used by the `ObjectListView` generic view to display a filterab
#### Context #### Context
| Name | Required | Description | | Name | Required | Description |
|------------------|----------|-----------------------------------------------------------------------| |---------------|----------|---------------------------------------------------------------------------------------------|
| `model` | Yes | The object class | | `model` | Yes | The object class |
| `table` | Yes | The table class used for rendering the list of objects | | `table` | Yes | The table class used for rendering the list of objects |
| `permissions` | Yes | A mapping of add, change, and delete permissions for the current user | | `permissions` | Yes | A mapping of add, change, and delete permissions for the current user |
| `action_buttons` | Yes | A list of buttons to display (options are `add`, `import`, `export`) | | `actions` | Yes | A list of buttons to display (`add`, `import`, `export`, `bulk_edit`, and/or `bulk_delete`) |
| `filter_form` | - | The bound filterset form for filtering the objects list | | `filter_form` | - | The bound filterset form for filtering the objects list |
| `return_url` | - | The return URL to pass when submitting a bulk operation form | | `return_url` | - | The return URL to pass when submitting a bulk operation form |

View File

@ -1812,7 +1812,7 @@ class ConsolePortListView(generic.ObjectListView):
filterset = filtersets.ConsolePortFilterSet filterset = filtersets.ConsolePortFilterSet
filterset_form = forms.ConsolePortFilterForm filterset_form = forms.ConsolePortFilterForm
table = tables.ConsolePortTable table = tables.ConsolePortTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class ConsolePortView(generic.ObjectView): class ConsolePortView(generic.ObjectView):
@ -1871,7 +1871,7 @@ class ConsoleServerPortListView(generic.ObjectListView):
filterset = filtersets.ConsoleServerPortFilterSet filterset = filtersets.ConsoleServerPortFilterSet
filterset_form = forms.ConsoleServerPortFilterForm filterset_form = forms.ConsoleServerPortFilterForm
table = tables.ConsoleServerPortTable table = tables.ConsoleServerPortTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class ConsoleServerPortView(generic.ObjectView): class ConsoleServerPortView(generic.ObjectView):
@ -1930,7 +1930,7 @@ class PowerPortListView(generic.ObjectListView):
filterset = filtersets.PowerPortFilterSet filterset = filtersets.PowerPortFilterSet
filterset_form = forms.PowerPortFilterForm filterset_form = forms.PowerPortFilterForm
table = tables.PowerPortTable table = tables.PowerPortTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class PowerPortView(generic.ObjectView): class PowerPortView(generic.ObjectView):
@ -1989,7 +1989,7 @@ class PowerOutletListView(generic.ObjectListView):
filterset = filtersets.PowerOutletFilterSet filterset = filtersets.PowerOutletFilterSet
filterset_form = forms.PowerOutletFilterForm filterset_form = forms.PowerOutletFilterForm
table = tables.PowerOutletTable table = tables.PowerOutletTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class PowerOutletView(generic.ObjectView): class PowerOutletView(generic.ObjectView):
@ -2048,7 +2048,7 @@ class InterfaceListView(generic.ObjectListView):
filterset = filtersets.InterfaceFilterSet filterset = filtersets.InterfaceFilterSet
filterset_form = forms.InterfaceFilterForm filterset_form = forms.InterfaceFilterForm
table = tables.InterfaceTable table = tables.InterfaceTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class InterfaceView(generic.ObjectView): class InterfaceView(generic.ObjectView):
@ -2170,7 +2170,7 @@ class FrontPortListView(generic.ObjectListView):
filterset = filtersets.FrontPortFilterSet filterset = filtersets.FrontPortFilterSet
filterset_form = forms.FrontPortFilterForm filterset_form = forms.FrontPortFilterForm
table = tables.FrontPortTable table = tables.FrontPortTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class FrontPortView(generic.ObjectView): class FrontPortView(generic.ObjectView):
@ -2237,7 +2237,7 @@ class RearPortListView(generic.ObjectListView):
filterset = filtersets.RearPortFilterSet filterset = filtersets.RearPortFilterSet
filterset_form = forms.RearPortFilterForm filterset_form = forms.RearPortFilterForm
table = tables.RearPortTable table = tables.RearPortTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class RearPortView(generic.ObjectView): class RearPortView(generic.ObjectView):
@ -2296,7 +2296,7 @@ class ModuleBayListView(generic.ObjectListView):
filterset = filtersets.ModuleBayFilterSet filterset = filtersets.ModuleBayFilterSet
filterset_form = forms.ModuleBayFilterForm filterset_form = forms.ModuleBayFilterForm
table = tables.ModuleBayTable table = tables.ModuleBayTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class ModuleBayView(generic.ObjectView): class ModuleBayView(generic.ObjectView):
@ -2352,7 +2352,7 @@ class DeviceBayListView(generic.ObjectListView):
filterset = filtersets.DeviceBayFilterSet filterset = filtersets.DeviceBayFilterSet
filterset_form = forms.DeviceBayFilterForm filterset_form = forms.DeviceBayFilterForm
table = tables.DeviceBayTable table = tables.DeviceBayTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class DeviceBayView(generic.ObjectView): class DeviceBayView(generic.ObjectView):
@ -2474,7 +2474,7 @@ class InventoryItemListView(generic.ObjectListView):
filterset = filtersets.InventoryItemFilterSet filterset = filtersets.InventoryItemFilterSet
filterset_form = forms.InventoryItemFilterForm filterset_form = forms.InventoryItemFilterForm
table = tables.InventoryItemTable table = tables.InventoryItemTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class InventoryItemView(generic.ObjectView): class InventoryItemView(generic.ObjectView):
@ -2707,7 +2707,7 @@ class CableListView(generic.ObjectListView):
filterset = filtersets.CableFilterSet filterset = filtersets.CableFilterSet
filterset_form = forms.CableFilterForm filterset_form = forms.CableFilterForm
table = tables.CableTable table = tables.CableTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class CableView(generic.ObjectView): class CableView(generic.ObjectView):
@ -2874,7 +2874,7 @@ class ConsoleConnectionsListView(generic.ObjectListView):
filterset_form = forms.ConsoleConnectionFilterForm filterset_form = forms.ConsoleConnectionFilterForm
table = tables.ConsoleConnectionTable table = tables.ConsoleConnectionTable
template_name = 'dcim/connections_list.html' template_name = 'dcim/connections_list.html'
action_buttons = ('export',) actions = ('export',)
def get_extra_context(self, request): def get_extra_context(self, request):
return { return {
@ -2888,7 +2888,7 @@ class PowerConnectionsListView(generic.ObjectListView):
filterset_form = forms.PowerConnectionFilterForm filterset_form = forms.PowerConnectionFilterForm
table = tables.PowerConnectionTable table = tables.PowerConnectionTable
template_name = 'dcim/connections_list.html' template_name = 'dcim/connections_list.html'
action_buttons = ('export',) actions = ('export',)
def get_extra_context(self, request): def get_extra_context(self, request):
return { return {
@ -2902,7 +2902,7 @@ class InterfaceConnectionsListView(generic.ObjectListView):
filterset_form = forms.InterfaceConnectionFilterForm filterset_form = forms.InterfaceConnectionFilterForm
table = tables.InterfaceConnectionTable table = tables.InterfaceConnectionTable
template_name = 'dcim/connections_list.html' template_name = 'dcim/connections_list.html'
action_buttons = ('export',) actions = ('export',)
def get_extra_context(self, request): def get_extra_context(self, request):
return { return {

View File

@ -269,7 +269,7 @@ class ConfigContextListView(generic.ObjectListView):
filterset = filtersets.ConfigContextFilterSet filterset = filtersets.ConfigContextFilterSet
filterset_form = forms.ConfigContextFilterForm filterset_form = forms.ConfigContextFilterForm
table = tables.ConfigContextTable table = tables.ConfigContextTable
action_buttons = ('add',) actions = ('add', 'bulk_edit', 'bulk_delete')
class ConfigContextView(generic.ObjectView): class ConfigContextView(generic.ObjectView):
@ -366,7 +366,7 @@ class ObjectChangeListView(generic.ObjectListView):
filterset_form = forms.ObjectChangeFilterForm filterset_form = forms.ObjectChangeFilterForm
table = tables.ObjectChangeTable table = tables.ObjectChangeTable
template_name = 'extras/objectchange_list.html' template_name = 'extras/objectchange_list.html'
action_buttons = ('export',) actions = ('export',)
class ObjectChangeView(generic.ObjectView): class ObjectChangeView(generic.ObjectView):
@ -458,7 +458,7 @@ class JournalEntryListView(generic.ObjectListView):
filterset = filtersets.JournalEntryFilterSet filterset = filtersets.JournalEntryFilterSet
filterset_form = forms.JournalEntryFilterForm filterset_form = forms.JournalEntryFilterForm
table = tables.JournalEntryTable table = tables.JournalEntryTable
action_buttons = ('export',) actions = ('export', 'bulk_edit', 'bulk_delete')
class JournalEntryView(generic.ObjectView): class JournalEntryView(generic.ObjectView):

View File

@ -1080,7 +1080,7 @@ class ServiceListView(generic.ObjectListView):
filterset = filtersets.ServiceFilterSet filterset = filtersets.ServiceFilterSet
filterset_form = forms.ServiceFilterForm filterset_form = forms.ServiceFilterForm
table = tables.ServiceTable table = tables.ServiceTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class ServiceView(generic.ObjectView): class ServiceView(generic.ObjectView):

View File

@ -42,12 +42,12 @@ class ObjectListView(BaseMultiObjectView):
Attributes: Attributes:
filterset: A django-filter FilterSet that is applied to the queryset filterset: A django-filter FilterSet that is applied to the queryset
filterset_form: The form class used to render filter options filterset_form: The form class used to render filter options
action_buttons: A list of buttons to include at the top of the page actions: Supported actions for the model. Default options are add, import, export, bulk_edit, and bulk_delete
""" """
template_name = 'generic/object_list.html' template_name = 'generic/object_list.html'
filterset = None filterset = None
filterset_form = None filterset_form = None
action_buttons = ('add', 'import', 'export') actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete')
def get_required_permission(self): def get_required_permission(self):
return get_permission_for_model(self.queryset.model, 'view') return get_permission_for_model(self.queryset.model, 'view')
@ -180,7 +180,7 @@ class ObjectListView(BaseMultiObjectView):
'model': model, 'model': model,
'table': table, 'table': table,
'permissions': permissions, 'permissions': permissions,
'action_buttons': self.action_buttons, 'actions': self.actions,
'filter_form': self.filterset_form(request.GET, label_suffix='') if self.filterset_form else None, 'filter_form': self.filterset_form(request.GET, label_suffix='') if self.filterset_form else None,
**self.get_extra_context(request), **self.get_extra_context(request),
} }

View File

@ -16,7 +16,8 @@ Context:
permissions: A mapping of add/change/delete permissions to boolean indicating permissions: A mapping of add/change/delete permissions to boolean indicating
whether the current user possesses each of them. Controls the display of whether the current user possesses each of them. Controls the display of
add/edit/delete buttons. add/edit/delete buttons.
action_buttons: A list of buttons to display. Options are add, import, export. actions: A list of buttons to display. This template checks for add, import,
export, bulk_edit, and bulk_delete.
filter_form: The bound filterset form for filtering the objects list (optional) filter_form: The bound filterset form for filtering the objects list (optional)
return_url: Return URL to use for bulk actions (optional) return_url: Return URL to use for bulk actions (optional)
{% endcomment %} {% endcomment %}
@ -27,13 +28,13 @@ Context:
<div class="controls"> <div class="controls">
<div class="control-group"> <div class="control-group">
{% block extra_controls %}{% endblock %} {% block extra_controls %}{% endblock %}
{% if permissions.add and 'add' in action_buttons %} {% if permissions.add and 'add' in actions %}
{% add_button model|validated_viewname:"add" %} {% add_button model|validated_viewname:"add" %}
{% endif %} {% endif %}
{% if permissions.add and 'import' in action_buttons %} {% if permissions.add and 'import' in actions %}
{% import_button model|validated_viewname:"import" %} {% import_button model|validated_viewname:"import" %}
{% endif %} {% endif %}
{% if 'export' in action_buttons %} {% if 'export' in actions %}
{% export_button model|content_type %} {% export_button model|content_type %}
{% endif %} {% endif %}
</div> </div>
@ -115,25 +116,21 @@ Context:
</div> </div>
{# Form buttons #} {# Form buttons #}
{% if permissions.change or permissions.delete %}
{% with bulk_edit_url=model|validated_viewname:"bulk_edit" bulk_delete_url=model|validated_viewname:"bulk_delete" %}
<div class="noprint bulk-buttons"> <div class="noprint bulk-buttons">
<div class="bulk-button-group"> <div class="bulk-button-group">
{% block bulk_buttons %}{% endblock %} {% block bulk_buttons %}{% endblock %}
{% if bulk_edit_url and permissions.change %} {% if 'bulk_edit' in actions and permissions.change %}
<button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning btn-sm"> <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 <i class="mdi mdi-pencil" aria-hidden="true"></i> Edit Selected
</button> </button>
{% endif %} {% endif %}
{% if bulk_delete_url and permissions.delete %} {% if 'bulk_delete' in actions and permissions.delete %}
<button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger btn-sm"> <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 <i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete Selected
</button> </button>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endwith %}
{% endif %}
</form> </form>

View File

@ -404,7 +404,7 @@ class VMInterfaceListView(generic.ObjectListView):
filterset = filtersets.VMInterfaceFilterSet filterset = filtersets.VMInterfaceFilterSet
filterset_form = forms.VMInterfaceFilterForm filterset_form = forms.VMInterfaceFilterForm
table = tables.VMInterfaceTable table = tables.VMInterfaceTable
action_buttons = ('import', 'export') actions = ('import', 'export', 'bulk_edit', 'bulk_delete')
class VMInterfaceView(generic.ObjectView): class VMInterfaceView(generic.ObjectView):