Skip to content

Releases: iamjohnnymac/netbox-osp

v0.3.8 - Dedupe trace button

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 19 May 02:01
8f4bbfe

Removed pre-v0.3.1 inline {% include %} of 'Trace this core' from strand.html — the StrandTraceButton PluginTemplateExtension covers it now that v0.3.7 wired the plugin slots. Fixed a multi-line Django {# #} comment that broke CI on first attempt (use {% comment %}{% endcomment %} for multi-line).

v0.3.7 - Audit polish bundle

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 19 May 01:37
30b6ca0

Three audit findings bundled:

  1. Brown strand colour badge now renders saddle brown (#8b4513)
  2. strand.html Colour badge now uses get_color_color helper (matches list view)
  3. strand.html + trunkbreakout.html now render plugin template-extension slots (Attachments / Documents etc.)

CSS + template-only. No model/migration changes.

v0.3.5 - TIA-598 strand badges actually render in colour

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 19 May 01:00
92902ee

Two-line model fix completing the v0.3.4 attempt. Strand/Tube now render colour badges in their actual colour (Blue blue, Orange orange, Brown brown, etc.) — previously every value rendered as text-bg-secondary grey because the helper method NetBox's ChoiceFieldColumn expects was missing.

v0.3.4 - Polish: legible strand colours + readable tracer

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 19 May 00:44
ff54dc6

Polish-pass hotfix from project audit. Two CSS-only fixes:

  • TIA-598 strand colour badges (Blue / Black / White) now legible on dark theme
  • Core tracer hop nodes get more breathing room (min-width 160px, font-size 13px)

v0.3.3 - Readable loss-budget gauge

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 19 May 00:03
d26f1b3

UX hotfix: FibreLink loss-budget gauge now legible on dark theme. Numbers + percent badge live above a clean visual bar (text was previously invisible inside the SVG).

v0.3.2 - Hotfix: polarity selector + detail-page maps

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 18 May 12:06
80b7ec8

Second hotfix after v0.3.0. Two bugs found during live-verify.

Fixed

  • MTP harness deploy form now exposes the polarity selector. v0.3.0 added polarity to MtpHarnessForm but mtp_harness_deploy.html renders each field explicitly with {% render_field form.X %} rather than iterating the form. One-line template fix.
  • Per-object detail-page maps now use the shared base-layer manager (online + offline fallback). The detail-page maps previously only fetched from the local MBTiles proxy with no online fallback. The bundled basemap covers a Wheatstone bbox; any other geography rendered as a blank dark canvas with just the marker pin. spliceclosure.html and ospcable.html now hook OspBaseLayers.attach(map, null, tileUrl) — same multi-layer behaviour as the main /plugins/osp/map/, no dropdown on the small detail maps. Pre-existing bug; not a v0.3.x regression.
pip install -U netbox-osp

v0.3.1 - Hotfix: plugin extension slots in custom templates

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 18 May 11:49
74214a7

Hotfix discovered during v0.3.0 live-verify.

Fixed

  • `PluginTemplateExtension` hooks now render on custom detail templates. v0.3.0 shipped the new `SpliceClosureQrCode` / `SpliceTrayQrCode` extensions and enabled `netbox-attachments` to target our models — but the Field QR code panel and the Attachments card never appeared. Root cause: `spliceclosure.html`, `splicetray.html`, `fibretrunk.html`, `ospcable.html`, and `fibrelink.html` all override the `content` block of `generic/object.html` wholesale, swallowing the slot where NetBox renders plugin extensions. Each affected template now loads `{% load plugins %}` and explicitly renders `plugin_right_page`, `plugin_left_page`, and `plugin_full_width_page` in the appropriate positions.

v0.3.0 users on `[qrcode]` / `[attachments]`: upgrade to v0.3.1 to see the panels.

```bash
pip install -U netbox-osp
```

v0.3.0 — Ecosystem sprint

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 18 May 08:28

Three-PR ecosystem sprint per the v0.3 moat plan §v0.3.0 quick wins. Two integrations + one operations feature; no breaking changes. Migration 0005_fibretrunk_polarity is additive and non-destructive.

Install / upgrade

pip install -U netbox-osp                        # base install
pip install -U netbox-osp[attachments]           # + netbox-attachments
pip install -U netbox-osp[qrcode]                # + qrcode lib for SpliceClosure/Tray QR codes
pip install -U netbox-osp[ecosystem]             # both extras

Added

  • MPO polarity tracking on FibreTrunk (#18) — adds MpoPolarityChoices (Type A / B / C / D per TIA-568.3-D) and a new polarity CharField on FibreTrunk. Surfaced on the detail page (badge next to Type), table column, filter UI, REST API, REST bulk-import + bulk-edit, GraphQL filter, and the MTP harness one-click deploy wizard. Blank is permitted for non-MPO trunk types (Ribbon / Loose-tube) and unknown-polarity legacy data. Addresses NetBox core issue #5798 and the VIAVI "40 % of hyperscale downtime is fibre alignment / connector issues" stat. Migration 0005_fibretrunk_polarity is additive and non-destructive (empty-string default for existing rows).

  • Field QR codes on SpliceClosure and SpliceTray (#17) — two new PluginTemplateExtension classes (SpliceClosureQrCode, SpliceTrayQrCode) inject a Field QR code panel into the right-page area of closure / tray detail pages. The QR encodes the absolute URL of the page so a field tech can scan a printed closure label and land on the splice plan with attached photos. Uses the qrcode Python library's pure-Python SVG factory (no Pillow dependency). Install with pip install netbox-osp[qrcode]. The panel quietly hides on installs without the extra so the base install isn't affected. No PLUGINS_CONFIG changes required.

  • netbox-attachments integration (#16) — documented scope_filter configuration for netbox-attachments covering all 10 OSP models (OspCable, Tube, Strand, Splice, SpliceClosure, SpliceTray, FibreLink, FibreTrunk, TrunkBreakout, LocationGeo). Operators can attach OTDR .sor traces, splice photos, as-built PDFs, and acceptance-test certificates to any OSP record. Install with pip install netbox-osp[attachments]. Zero plugin code — pure composition via the upstream scope_filter setting. Sets up the file-storage layer that the upcoming v0.3.5 OTDR moat work will read .sor files from.

See docs/integrations.md for full install + verification steps and the rationale on why the QR feature uses qrcode directly rather than wrapping netbox-qrcode.

What's next — v0.3.5 OTDR moat (3–4 weeks)

.sor upload + parse + KeyEvents table → loss-vs-distance trace overlay → geo-anchored fault location (project event distance along the cable's GeoJSON polyline and drop a red pin on the Leaflet plant map) → baseline + drift detection + ageing margin.

netbox-osp v0.2.2 — PyPI README refresh + demo walkthrough

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 18 May 05:38

Metadata-only patch so the PyPI project page actually shows the v0.2 features.

Fixed on PyPI

  • README screenshots converted from relative docs/screenshots/*.png paths to absolute raw.githubusercontent.com/... URLs so they render inline on the PyPI project page (the v0.2.0 and v0.2.1 releases had broken image icons there).

New on the docs site

  • 8-step demo walkthrough — narrative tour of the plugin running against the live demo, with 10 screenshots captured live (OSP model, splice closures, loss-budget gauge, MTP harness deploy form, visual core tracer, plant map).
  • README adds a demo walkthrough badge linking to the page.

No code changes. pip install -U netbox-osp is metadata-only.

Links

netbox-osp v0.2.1 — d3 dependency hotfix

Choose a tag to compare

@iamjohnnymac iamjohnnymac released this 14 May 00:20

Visual core tracer's dagre-d3 graph stayed blank in 0.2.0 because the dagre-d3 v0.6.4 bundle declares an external d3 dependency rather than inlining it. Loss-budget band and hop legend rendered fine, but the graph itself stayed blank with "Renderer JS not loaded".

Fix

  • Vendored d3.v5.min.js (248 KB) at static/netbox_osp/js/d3.v5.min.js
  • Added the <script> tag in strand_tracer.html before dagre-d3.min.js

No model changes, no API changes, no migrations. Pure two-line fix to the template + one new vendored static file.

Upgrade

pip install -U netbox-osp
python manage.py collectstatic --no-input

Links