Skip to content

Release 3.0.0: require netbox-custom-objects >= 0.7.0, drop combined tab - #21

Merged
Kani999 merged 1 commit into
masterfrom
feature/3.0.0-custom-objects-0.7
Sep 16, 2026
Merged

Kani999 merged 1 commit into
masterfrom
feature/3.0.0-custom-objects-0.7

Conversation

@Kani999

@Kani999 Kani999 commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

netbox-custom-objects 0.7.0 ships the combined "Custom Objects" tab natively and a templatetag library named custom_object_tab_tags, colliding with ours. 3.0.0 keeps only the per-Custom-Object-Type tabs.

Removed

  • Combined tab, combined_models / combined_label / combined_weight, template override + customobject.html copy, custom_object_tab_tags templatetags, TODO.md.

Changed

  • Requires netbox-custom-objects >= 0.7.0: ready() probes netbox_custom_objects.related_tabs.registry, raises ImproperlyConfigured otherwise; leftover combined_* keys log a warning.
  • CO-page typed tab routes use a per-request slug dispatcher (resolves host type from URL, dispatches to that model's registered view).

Fixed

  • Wrong host object / never-active tab on CO pages when one type references several host types.

Verification

  • ruff, pytest tests/ (37 passed)
  • Live NetBox 4.7 + upstream v0.7.0: Device page shows upstream "Custom Objects" tab + typed tabs, no duplicates, active tab correct, HTMX partial OK; CO page shows upstream combined + typed tabs, ours active, journal/changelog/contacts 200; manage.py check clean.

netbox-custom-objects 0.7.0 ships the combined "Custom Objects" tab itself
(related_tabs/, same view name and weight as ours) and a templatetag library
named custom_object_tab_tags, colliding with ours. Remove the combined tab,
the customobject.html template override, the template_override module and
the templatetags package; keep only per-Custom-Object-Type (typed) tabs.

- PluginConfig.ready(): probe netbox_custom_objects.related_tabs.registry
  and raise ImproperlyConfigured when missing; warn on leftover combined_*
  settings; default_settings reduced to typed_models / typed_weight.
- CO-page typed tab routes now go through a per-request slug dispatcher
  that resolves the host Custom Object Type and dispatches to the view
  registered for exactly that model. Fixes wrong host object and never-
  active tab when one type references several host types; replaces the
  2.6.0 (label, weight) comparison workaround.
- Fold views/_co_common.py into views/typed.py.
- Tests: drop combined/templatetag suites, add plugin-config gate and
  dispatcher tests.
- README, CHANGELOG, CLAUDE.md updated; TODO.md (combined backlog) removed.
@Kani999
Kani999 merged commit 0531a12 into master Sep 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant