github mlebreuil/netbox-contract v2.6.0
Version 2.6.0 - NetBox 4.7 Support

4 hours ago

⚠️ Important: NetBox 4.7.0+ Required

This version requires NetBox 4.7.0 or later. NetBox 4.6 installations must stay on plugin version 2.5.x. The plugin refuses to load on earlier NetBox versions.

🎯 What's New

Breaking Changes

  • Contract assignments are now deleted with their objects
  • Duplicate contract-to-object assignments are merged on upgrade (use manage.py cleanup_orphan_assignments to handle orphaned assignments from earlier versions)

Major Enhancements

  • Choice field descriptions: Contract and invoice status, unit billing method options now show descriptions in forms and filters
  • GraphQL core extensions: Objects that contracts assign to now have contract_assignments field and has_contracts/has_active_contract filters
  • New management command: manage.py cleanup_orphan_assignments to list and delete orphaned assignments
  • Generic object selector: Contract assignments and external parties use NetBox's object selector UI instead of dropdown lists
  • Breadcrumb improvements: Fixed breadcrumbs on contract and invoice pages to show correct relationships
  • NetBox 4.7 baseline: Updated to support NetBox 4.7.4 with improved schema compatibility

Specs Implemented

  • Spec 006: GraphQL core extensions
  • Spec 007: Choice field descriptions
  • Spec 008: NetBox 4.7 baseline compatibility

Bug Fixes

  • Contract page breadcrumbs now properly display external party and links
  • Invoice page breadcrumbs now show one entry per contract instead of concatenated list
  • Template files removed in favor of standard NetBox layout system

🔄 Migration Notes

  • Three new migrations handle owner related names (0053), duplicate assignment merging (0054), and unique constraint enforcement (0055)
  • Previous CI tested against NetBox v4.6.10; now tests against v4.7.4

📖 Full Release Notes

See CHANGELOG.md for complete details.

Don't miss a new netbox-contract release

NewReleases is sending notifications on new releases.