diff --git a/netbox/templates/virtualization/virtualmachine_list.html b/netbox/templates/virtualization/virtualmachine_list.html
index a771dfbd9..30ed76dae 100644
--- a/netbox/templates/virtualization/virtualmachine_list.html
+++ b/netbox/templates/virtualization/virtualmachine_list.html
@@ -1,18 +1,13 @@
{% extends '_base.html' %}
+{% load buttons %}
{% block content %}
diff --git a/netbox/utilities/templates/buttons/add.html b/netbox/utilities/templates/buttons/add.html
new file mode 100644
index 000000000..a5278ae12
--- /dev/null
+++ b/netbox/utilities/templates/buttons/add.html
@@ -0,0 +1,3 @@
+
+ Add
+
diff --git a/netbox/utilities/templates/buttons/export.html b/netbox/utilities/templates/buttons/export.html
new file mode 100644
index 000000000..ee76dae6c
--- /dev/null
+++ b/netbox/utilities/templates/buttons/export.html
@@ -0,0 +1,19 @@
+{% if export_templates %}
+
+
+
+
+{% else %}
+
+ Export
+
+{% endif %}
\ No newline at end of file
diff --git a/netbox/utilities/templates/buttons/import.html b/netbox/utilities/templates/buttons/import.html
new file mode 100644
index 000000000..67be77871
--- /dev/null
+++ b/netbox/utilities/templates/buttons/import.html
@@ -0,0 +1,3 @@
+
+ Import
+
diff --git a/netbox/utilities/templatetags/buttons.py b/netbox/utilities/templatetags/buttons.py
new file mode 100644
index 000000000..3090f4538
--- /dev/null
+++ b/netbox/utilities/templatetags/buttons.py
@@ -0,0 +1,26 @@
+from __future__ import unicode_literals
+
+from django import template
+
+from extras.models import ExportTemplate
+
+register = template.Library()
+
+
+@register.inclusion_tag('buttons/add.html')
+def add_button(url):
+ return {'add_url': url}
+
+
+@register.inclusion_tag('buttons/import.html')
+def import_button(url):
+ return {'import_url': url}
+
+
+@register.inclusion_tag('buttons/export.html', takes_context=True)
+def export_button(context, content_type=None):
+ export_templates = ExportTemplate.objects.filter(content_type=content_type)
+ return {
+ 'url_params': context['request'].GET,
+ 'export_templates': export_templates,
+ }
diff --git a/netbox/utilities/views.py b/netbox/utilities/views.py
index 917cf3002..7e1a34e19 100644
--- a/netbox/utilities/views.py
+++ b/netbox/utilities/views.py
@@ -79,7 +79,7 @@ class ObjectListView(View):
def get(self, request):
model = self.queryset.model
- object_ct = ContentType.objects.get_for_model(model)
+ content_type = ContentType.objects.get_for_model(model)
if self.filter:
self.queryset = self.filter(request.GET, self.queryset).qs
@@ -92,7 +92,7 @@ class ObjectListView(View):
# Check for export template rendering
if request.GET.get('export'):
- et = get_object_or_404(ExportTemplate, content_type=object_ct, name=request.GET.get('export'))
+ et = get_object_or_404(ExportTemplate, content_type=content_type, name=request.GET.get('export'))
queryset = CustomFieldQueryset(self.queryset, custom_fields) if custom_fields else self.queryset
try:
return et.render_to_response(queryset)
@@ -125,10 +125,10 @@ class ObjectListView(View):
RequestConfig(request, paginate).configure(table)
context = {
+ 'content_type': content_type,
'table': table,
'permissions': permissions,
'filter_form': self.filter_form(request.GET, label_suffix='') if self.filter_form else None,
- 'export_templates': ExportTemplate.objects.filter(content_type=object_ct),
}
context.update(self.extra_context())