Skip to content

Commit

Permalink
Provide general compatibility with NetBox 3.X
Browse files Browse the repository at this point in the history
  • Loading branch information
iDebugAll committed Oct 1, 2021
1 parent 1bacfaa commit 964032a
Show file tree
Hide file tree
Showing 4 changed files with 189 additions and 2 deletions.
19 changes: 19 additions & 0 deletions phonebox_plugin/templates/phonebox_plugin/add_number_3.x.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{% extends 'generic/object_edit.html' %}
{% load static %}
{% load form_helpers %}

{% block form %}
<div class="panel panel-default">
<div class="panel-heading"><strong>Number</strong></div>
<div class="panel-body">
{% render_field form.number %}
{% render_field form.tenant %}
{% render_field form.region %}
{% render_field form.provider %}
{% render_field form.forward_to %}
{% render_field form.description %}
{% render_field form.tags %}
</div>
</div>

{% endblock %}
45 changes: 45 additions & 0 deletions phonebox_plugin/templates/phonebox_plugin/list_view_3.x.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{% extends 'base/layout.html' %}
{% load buttons %}
{% load static %}
{% load plugins %}
{% load helpers %}

{% block content %}

<div class="pull-right noprint">
{% if perms.phonebox_plugin.add_number %}
{% add_button 'plugins:phonebox_plugin:add_number' %}
{% endif %}
{% if permissions.add and 'import' in action_buttons %}
{% import_button 'plugins:phonebox_plugin:import_numbers' %}
{% endif %}
</div>

<ul class="nav nav-tabs px-3">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="numbers-tab" data-bs-toggle="tab" data-bs-target="#numbers" type="button" role="tab" aria-controls="numbers" aria-selected="true">
Numbers
</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="filters-form-tab" data-bs-toggle="tab" data-bs-target="#filters-form" type="button" role="tab" aria-controls="filters-form" aria-selected="false">
Filters
</button>
</li>
</ul>

<div class="tab-content">
<div class="tab-pane active" id="numbers" role="tabpanel" aria-labelledby="numbers-tab">
<h2>{% block title %}Numbers{% endblock %}</h2>
<div class="row">
<div class="col-md-12">
{% include 'utilities/obj_table.html' with bulk_delete_url="plugins:phonebox_plugin:number_bulk_delete" bulk_edit_url="plugins:phonebox_plugin:number_bulk_edit" %}
</div>
</div>
</div>
<div class="tab-pane" id="filters-form" role="tabpanel" aria-labelledby="filters-form-tab">
{% include 'inc/filter_list.html' %}
</div>
</div>

{% endblock %}
106 changes: 106 additions & 0 deletions phonebox_plugin/templates/phonebox_plugin/number_3.x.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
{% extends 'base/layout.html' %}
{% load static %}

{% block header %}
<div class="row noprint">
<div class="col-sm-8 col-md-9">
<ol class="breadcrumb">
<li><a href="{% url 'plugins:phonebox_plugin:list_view' %}">Numbers</a></li>
<li>{{ object }}</li>
</ol>
</div>
<div class="col-sm-4 col-md-3">
<form action="{% url 'plugins:phonebox_plugin:list_view' %}" method="get">
<div class="input-group">
<input type="text" name="q" class="form-control" placeholder="Search Numbers" />
<span class="input-group-btn">
<button type="submit" class="btn btn-primary">
<span class="mdi mdi-magnify" aria-hidden="true"></span>
</button>
</span>
</div>
</form>
</div>
</div>
<div class="pull-right noprint">
{% if perms.phonebox_plugin.change_number %}
<a href="{% url 'plugins:phonebox_plugin:number_edit' pk=object.pk %}" class="btn btn-warning">
<span class="mdi mdi-pencil" aria-hidden="true"></span> Edit
</a>
{% endif %}
{% if perms.phonebox_plugin.delete_number %}
<a href="{% url 'plugins:phonebox_plugin:number_delete' pk=object.pk %}" class="btn btn-danger">
<span class="mdi mdi-trash-can-outline" aria-hidden="true"></span> Delete
</a>
{% endif %}
</div>
<h1>{% block title %}{{ object }}{% endblock %}</h1>
<ul class="nav nav-tabs">
<li role="presentation"{% if not active_tab %} class="active"{% endif %}>
<a href="{{ object.get_absolute_url }}">Number</a>
</li>
</ul>
{% endblock %}

{% block content %}
<div class="row">
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<strong>Number</strong>
</div>
<table class="table table-hover panel-body attr-table">
<tr>
<td>Tenant</td>
<td>
{% if object.tenant %}
{% if object.tenant.group %}
<a href="{{ object.tenant.group.get_absolute_url }}">{{ object.tenant.group }}</a> /
{% endif %}
<a href="{{ object.tenant.get_absolute_url }}">{{ object.tenant }}</a>
{% else %}
<span class="text-muted">None</span>
{% endif %}
</td>
</tr>
<tr>
<td>Region</td>
<td>
{% if object.region %}
<a href="{{ object.region.get_absolute_url }}">{{ object.region }}</a>
{% else %}
<span class="text-muted">None</span>
{% endif %}
</td>
</tr>
<tr>
<td>Provider</td>
<td>
{% if object.provider %}
<a href="{{ object.provider.get_absolute_url }}">{{ object.provider }}</a>
{% else %}
<span class="text-muted">None</span>
{% endif %}
</td>
</tr>
<tr>
<td>Forward To</td>
<td>
{% if object.forward_to %}
<a href="{{ object.forward_to.get_absolute_url }}">{{ object.forward_to }}</a>
{% else %}
<span class="text-muted">None</span>
{% endif %}
</td>
</tr>
<tr>
<td>Description</td>
<td>{{ object.description }}</td>
</tr>
</table>
</div>
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='plugins:phonebox_plugin:list_view' %}
</div>
</div>

{% endblock %}
21 changes: 19 additions & 2 deletions phonebox_plugin/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,39 @@
from . import forms
from . import tables

from django.conf import settings
from packaging import version


NETBOX_CURRENT_VERSION = version.parse(settings.VERSION)


class NumberListView(generic.ObjectListView):
queryset = Number.objects.all()
filterset = filters.NumberFilterSet
filterset_form = forms.NumberFilterForm
table = tables.NumberTable
template_name = "phonebox_plugin/list_view.html"
if NETBOX_CURRENT_VERSION >= version.parse("3.0"):
template_name = "phonebox_plugin/list_view_3.x.html"
else:
template_name = "phonebox_plugin/list_view.html"


class NumberView(generic.ObjectView):
queryset = Number.objects.prefetch_related('tenant')
if NETBOX_CURRENT_VERSION >= version.parse("3.0"):
template_name = "phonebox_plugin/number_3.x.html"
else:
template_name = "phonebox_plugin/number.html"


class NumberEditView(generic.ObjectEditView):
queryset = Number.objects.all()
model_form = forms.NumberEditForm
template_name = "phonebox_plugin/add_number.html"
if NETBOX_CURRENT_VERSION >= version.parse("3.0"):
template_name = "phonebox_plugin/add_number_3.x.html"
else:
template_name = "phonebox_plugin/add_number.html"


class NumberBulkEditView(generic.BulkEditView):
Expand Down

0 comments on commit 964032a

Please sign in to comment.