/netbox-contract-en

Contract plugin for netbox, in english

Primary LanguagePythonMIT LicenseMIT

Contract pluggin

Overview

The pluggin adds contracts and invoices model to Netbox.
It allows to register contract with objects.
Add invoices to contracts.

Installation

Activate venv

To ensure our plugin is accessible to the NetBox installation, we first need to activate the Python virtual environment that was created when we installed NetBox. To do this, determine the virtual environment's path (this will be /opt/netbox/venv/ if you use the documentation's defaults) and activate it:

$ source /opt/netbox/venv/bin/activate

Install the package

$ python3 -m pip install netbox-contract

Configure NetBox

Finally, we need to configure NetBox to enable our new plugin. Over in the NetBox installation path, open netbox/netbox/configuration.py and look for the PLUGINS parameter; this should be an empty list. (If it's not yet defined, go ahead and create it.) Add the name of our plugin to this list:

# configuration.py
PLUGINS = [
    'netbox_contract',
]

Customize the location of the plugin's menu:

# configuration.py
PLUGINS_CONFIG = {
    'netbox_contract': {
        'top_level_menu': True
    }
}

Customize the internal partie field.
Internal partie reference the legal entity of your organization that is a partie to the contract.

# configuration.py
FIELD_CHOICES = {
    'netbox_contract.Contract.internal_partie': (
        ('Nagravision SARL', 'Nagravision SARL', 'green'),
        ('Nagra USA', 'Nagra USA', 'green'),
        ('Nagra India', 'Nagra India', 'green'),
    ),
    'netbox_contract.Contract.currency': (
        ('usd', 'USD'),
        ('eur', 'EUR'),
        ('chf', 'CHF'),
        ('pln', 'PLN'),
    ),
    'netbox_contract.Contract.status': (
        ('Active', 'Active', 'green'),
        ('Cancled', 'Canceled', 'red'),
    )
}

Run database migrations

(venv) $ cd /opt/netbox/netbox/
(venv) $ python3 manage.py migrate

release notes

version 2.0.0

Add a new contract asignement model to allow the assignement of contract not only to Circuits. The support for the direct Contract to Circuit relation will be removed in version 2.1.0 . In Order to migrate existing relations contract_migration.py script is provided and can be run from the django shell.

version 2.0.1

Add support contract assignement panel to devices.

version 2.0.2

Add support for Netbox 3.5 which become the minimum version supported to accomodate the removal of NetBoxModelCSVForm class (replaced by NetBoxModelImportForm) .

version 2.0.3

  • #60 Update contract quick search to also filter on fields "External reference" and "Comments".
  • #49 Manage permissions.

version 2.0.4

  • Add bulk update capability for contract assignement
  • #63 Correct an API issue on the invoice object.
  • #64 Add hierarchy to contract; New parent field created.
  • #65 Add end date to contact import form.
  • Removed the possibility of add or modify circuits to contracts. The field becomes read only and will be removed in next major release.
  • Make accounting dimensions optional.

version 2.0.5

  • #75 Fix contract assignement for service providers.
  • #73 Add comment field to contract import form
  • #72 Add fields to the contract assignement bottom tables
  • Remove the 'add' actions from the contract assignment list view

version 2.0.6

  • #80 Fix missing fields in the API.

version 2.0.7

  • #85 Fix missing fields contract and invoice import and export forms.

version 2.0.8