1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-17 19:39:43 +00:00

net-mgmt/py-phonebox-plugin: Fix runtime with NetBox 3.3+

* Add a workaround as NetBox 3.3 introduced some API changes which break
  the plugin and since NetBox 3.4 two templates need some modifications
  as well to work properly.

* Bump PORTREVISION due package change.
MFH:		2023Q1
This commit is contained in:
Kai Knoblich 2023-02-22 07:53:06 +01:00
parent 339bbb94eb
commit 6f053b32fc
2 changed files with 188 additions and 0 deletions

View File

@ -1,5 +1,6 @@
PORTNAME= phonebox-plugin
DISTVERSION= 0.0.4b1
PORTREVISION= 1
CATEGORIES= net-mgmt python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View File

@ -0,0 +1,187 @@
Fix runtime issues with NetBox 3.3+
See also:
https://github.com/iDebugAll/phonebox_plugin/issues/27
https://github.com/iDebugAll/phonebox_plugin/pull/28
--- MANIFEST.in.orig 2023-02-21 21:36:03 UTC
+++ MANIFEST.in
@@ -1,4 +1,5 @@ recursive-include phonebox_plugin/templates *
include README.md
include LICENSE
recursive-include phonebox_plugin/templates *
+recursive-exclude phonebox_plugin/templates *.orig .DS_Store
recursive-include phonebox_plugin/static *
--- phonebox_plugin/api/nested_serializers.py.orig 2021-09-21 14:31:12 UTC
+++ phonebox_plugin/api/nested_serializers.py
@@ -1,6 +1,12 @@ from phonebox_plugin import models
from rest_framework import serializers
from phonebox_plugin import models
-from netbox.api import WritableNestedSerializer
+
+try:
+ from netbox.api import ChoiceField, WritableNestedSerializer
+except ImportError:
+ from netbox.api.fields import ChoiceField
+ from netbox.api.serializers.nested import WritableNestedSerializer
+
from tenancy.api.nested_serializers import NestedTenantSerializer
__all__ = ["NestedNumberSerializer", ]
--- phonebox_plugin/templates/phonebox_plugin/list_view_3.4.html.orig 2023-02-21 21:32:23 UTC
+++ phonebox_plugin/templates/phonebox_plugin/list_view_3.4.html
@@ -0,0 +1,62 @@
+{% extends 'base/layout.html' %}
+{% load buttons %}
+{% load static %}
+{% load plugins %}
+{% load helpers %}
+
+
+{% block controls %}
+
+<div class="pull-right noprint">
+ {% if perms.phonebox_plugin.add_number %}
+ <a href="/plugins/phonebox/add_number/" type="button" class="btn btn-sm btn-success">
+ <i class="mdi mdi-plus-thick"></i> Add
+ </a>
+ {% endif %}
+ {% if perms.phonebox_plugin.add_number %}
+ <a href="/plugins/phonebox/import_numbers/" type="button" class="btn btn-sm btn-info">
+ <i class="mdi mdi-upload"></i> Import
+ </a>
+ {% endif %}
+</div>
+
+{% endblock %}
+
+
+{% block content %}
+
+<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
+ {% if filter_form %}{% badge filter_form.changed_data|length %}{% endif %}
+ </button>
+ </li>
+</ul>
+
+<div class="tab-content">
+ <div class="tab-pane active" id="numbers" role="tabpanel" aria-labelledby="numbers-tab">
+
+ {# Applied filters #}
+ {% if filter_form %}
+ {% applied_filters model filter_form request.GET %}
+ {% endif %}
+
+ <h2>{% block title %}Numbers{% endblock %}</h2>
+ <div class="row">
+ <div class="col-md-12">
+ {% include 'phonebox_plugin/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 %}
--- phonebox_plugin/templates/phonebox_plugin/voice_circuit_list_view_3.4.html.orig 2023-02-21 21:32:23 UTC
+++ phonebox_plugin/templates/phonebox_plugin/voice_circuit_list_view_3.4.html
@@ -0,0 +1,62 @@
+{% extends 'base/layout.html' %}
+{% load buttons %}
+{% load static %}
+{% load plugins %}
+{% load helpers %}
+
+
+{% block controls %}
+
+<div class="pull-right noprint">
+ {% if perms.phonebox_plugin.add_voice_circuit %}
+ <a href="{% url 'plugins:phonebox_plugin:add_voice_circuit' %}" type="button" class="btn btn-sm btn-success">
+ <i class="mdi mdi-plus-thick"></i> Add
+ </a>
+ {% endif %}
+ {% if perms.phonebox_plugin.add_voice_circuit %}
+ <a href="{% url 'plugins:phonebox_plugin:import_voice_circuits' %}" type="button" class="btn btn-sm btn-info">
+ <i class="mdi mdi-upload"></i> Import
+ </a>
+ {% endif %}
+</div>
+
+{% endblock %}
+
+
+{% block content %}
+
+<ul class="nav nav-tabs px-3">
+ <li class="nav-item" role="presentation">
+ <button class="nav-link active" id="voice_circuits-tab" data-bs-toggle="tab" data-bs-target="#voice_circuits" type="button" role="tab" aria-controls="voice_circuits" aria-selected="true">
+ Voice Circuits
+ </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
+ {% if filter_form %}{% badge filter_form.changed_data|length %}{% endif %}
+ </button>
+ </li>
+</ul>
+
+<div class="tab-content">
+ <div class="tab-pane active" id="voice_circuits" role="tabpanel" aria-labelledby="voice_circuits-tab">
+
+ {# Applied filters #}
+ {% if filter_form %}
+ {% applied_filters model filter_form request.GET %}
+ {% endif %}
+
+ <h2>{% block title %}Voice Circuits{% endblock %}</h2>
+ <div class="row">
+ <div class="col-md-12">
+ {% include 'phonebox_plugin/obj_table.html' with bulk_delete_url="plugins:phonebox_plugin:voice_circuit_bulk_delete" bulk_edit_url="plugins:phonebox_plugin:voice_circuit_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 %}
--- phonebox_plugin/views.py.orig 2022-06-09 10:46:13 UTC
+++ phonebox_plugin/views.py
@@ -18,8 +18,10 @@ class NumberListView(generic.ObjectListView):
filterset = filters.NumberFilterSet
filterset_form = forms.NumberFilterForm
table = tables.NumberTable
- if NETBOX_CURRENT_VERSION >= version.parse("3.0"):
+ if NETBOX_CURRENT_VERSION >= version.parse("3.0") and NETBOX_CURRENT_VERSION < version.parse("3.4"):
template_name = "phonebox_plugin/list_view_3.x.html"
+ elif NETBOX_CURRENT_VERSION >= version.parse("3.4"):
+ template_name = "phonebox_plugin/list_view_3.4.html"
else:
template_name = "phonebox_plugin/list_view.html"
@@ -76,8 +78,10 @@ class VoiceCircuitListView(generic.ObjectListView):
filterset = filters.VoiceCircuitFilterSet
filterset_form = forms.VoiceCircuitFilterForm
table = tables.VoiceCircuitTable
- if NETBOX_CURRENT_VERSION >= version.parse("3.0"):
+ if NETBOX_CURRENT_VERSION >= version.parse("3.0") and NETBOX_CURRENT_VERSION < version.parse("3.4"):
template_name = "phonebox_plugin/voice_circuit_list_view_3.x.html"
+ elif NETBOX_CURRENT_VERSION >= version.parse("3.4"):
+ template_name = "phonebox_plugin/voice_circuit_list_view_3.4.html"
else:
template_name = "phonebox_plugin/voice_circuit_list_view.html"