Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,31 @@ Per-release NetBox / Python compatibility lives in

## [Unreleased]

## [0.3.7] — 2026-05-19

Three audit fixes bundled together.

### Fixed

- **Brown strand colour badges now render in actual brown.** TIA-598
position 4 is Brown; NetBox doesn't ship `text-bg-brown` in its
badge palette so the class fell through to a near-black default.
Added an explicit CSS override (`#8b4513` saddle brown) so a Brown
strand looks brown on the strand list, tube list, and detail pages.
- **Strand detail page Colour badge now uses the helper.** The
`strand.html` template called `{% badge object.get_color_display %}`
without `bg_color`, so even though v0.3.5 added the
`get_color_color()` helper, the detail page kept rendering Colour
as grey. Now passes `bg_color=object.get_color_color` and matches
the list-view colour fidelity.
- **`strand.html` and `trunkbreakout.html` now render plugin
template-extension slots.** v0.3.1 wired
`{% plugin_left_page %}` / `{% plugin_right_page %}` /
`{% plugin_full_width_page %}` into the other custom OSP detail
templates, but the strand and trunkbreakout templates were missed.
Attachments, Documents, and any other plugin's per-object cards
are now visible on these two pages.

## [0.3.5] — 2026-05-19

### Fixed
Expand Down Expand Up @@ -401,7 +426,8 @@ GPS markers.

- PyPI name-reservation placeholder. Not functional.

[Unreleased]: https://github.com/iamjohnnymac/netbox-osp/compare/v0.3.5...HEAD
[Unreleased]: https://github.com/iamjohnnymac/netbox-osp/compare/v0.3.7...HEAD
[0.3.7]: https://github.com/iamjohnnymac/netbox-osp/releases/tag/v0.3.7
[0.3.5]: https://github.com/iamjohnnymac/netbox-osp/releases/tag/v0.3.5
[0.3.4]: https://github.com/iamjohnnymac/netbox-osp/releases/tag/v0.3.4
[0.3.3]: https://github.com/iamjohnnymac/netbox-osp/releases/tag/v0.3.3
Expand Down
2 changes: 1 addition & 1 deletion netbox_osp/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class NetBoxOspConfig(PluginConfig):
name = "netbox_osp"
verbose_name = "NetBox OSP"
description = "Outside-plant fibre management — cables, splice closures, fibre links with loss budgets, and an offline-capable Leaflet plant map."
version = "0.3.5"
version = "0.3.7"
author = "John McKean"
author_email = "33052970+iamjohnnymac@users.noreply.github.com"
base_url = "osp"
Expand Down
10 changes: 10 additions & 0 deletions netbox_osp/static/netbox_osp/css/netbox-osp.css
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,16 @@
border: 1px solid #999999 !important;
}

/* "brown" isn't in NetBox's badge palette (azure/black/blue/cyan/gray/
green/indigo/lime/orange/pink/purple/red/teal/white/yellow). Without
this override the .badge.text-bg-brown class falls through to the
default dark surface and is unreadable. TIA-598 position 4 is Brown;
we want it to render saddle-brown like a real fibre. */
.badge.text-bg-brown {
background-color: #8b4513 !important;
color: #ffffff !important;
}

/* Summary band — sits above the graph card. */
.osp-tracer-summary {
display: flex;
Expand Down
10 changes: 9 additions & 1 deletion netbox_osp/templates/netbox_osp/strand.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{% extends 'generic/object.html' %}
{% load helpers %}
{% load plugins %}
{% load static %}

{% block head %}
Expand All @@ -16,13 +17,14 @@ <h5 class="card-header">Strand</h5>
<tr><th>Cable</th><td>{{ object.cable|linkify }}</td></tr>
<tr><th>Tube</th><td>{{ object.tube|linkify|default:"&mdash;" }}</td></tr>
<tr><th>Position</th><td>{{ object.position }}</td></tr>
<tr><th>Colour</th><td>{% badge object.get_color_display %}</td></tr>
<tr><th>Colour</th><td>{% badge object.get_color_display bg_color=object.get_color_color %}</td></tr>
<tr><th>Status</th><td>{% badge object.get_status_display bg_color=object.get_status_color %}</td></tr>
<tr><th>Loss (dB)</th><td>{{ object.loss_db|floatformat:3 }}</td></tr>
</table>
</div>
{# PR E — visual core tracer entry point #}
{% include 'netbox_osp/inc/trace_button.html' %}
{% plugin_left_page object %}
</div>
<div class="col col-md-6">
<div class="card">
Expand All @@ -41,6 +43,12 @@ <h5 class="card-header">Linked physical cable</h5>
</div>
</div>
{% include 'inc/panels/tags.html' %}
{% plugin_right_page object %}
</div>
</div>
<div class="row mt-3">
<div class="col">
{% plugin_full_width_page object %}
</div>
</div>
{% endblock %}
8 changes: 8 additions & 0 deletions netbox_osp/templates/netbox_osp/trunkbreakout.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{% extends 'generic/object.html' %}
{% load helpers %}
{% load plugins %}

{% block content %}
<div class="row">
Expand All @@ -15,10 +16,17 @@ <h5 class="card-header">Trunk Breakout</h5>
<tr><th>Description</th><td>{{ object.description|default:"&mdash;" }}</td></tr>
</table>
</div>
{% plugin_left_page object %}
</div>
<div class="col col-md-6">
{% include 'inc/panels/tags.html' %}
{% include 'inc/panels/custom_fields.html' %}
{% plugin_right_page object %}
</div>
</div>
<div class="row mt-3">
<div class="col">
{% plugin_full_width_page object %}
</div>
</div>
{% endblock %}
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "netbox-osp"
version = "0.3.5"
version = "0.3.7"
description = "Outside-plant fibre management for NetBox — cables, splice closures, fibre links with loss budgets, and an offline-capable Leaflet plant map."
authors = [{ name = "John McKean", email = "33052970+iamjohnnymac@users.noreply.github.com" }]
maintainers = [{ name = "John McKean", email = "33052970+iamjohnnymac@users.noreply.github.com" }]
Expand Down
Loading