Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mlebreuil/netbox-contract
Contract plugin for netbox
https://github.com/mlebreuil/netbox-contract
netbox-plugin
Last synced: 3 months ago
JSON representation
Contract plugin for netbox
- Host: GitHub
- URL: https://github.com/mlebreuil/netbox-contract
- Owner: mlebreuil
- License: mit
- Created: 2022-11-20T10:12:08.000Z (almost 2 years ago)
- Default Branch: develop
- Last Pushed: 2024-08-01T19:41:39.000Z (3 months ago)
- Last Synced: 2024-08-01T21:59:16.935Z (3 months ago)
- Topics: netbox-plugin
- Language: Python
- Homepage:
- Size: 1.09 MB
- Stars: 23
- Watchers: 3
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-netbox - mlebreuil/netbox-contract - Plugin that adds a contracts and invoices model (Plugins)
README
# Contract pluggin
## Overview
The pluggin adds contracts and invoices model to Netbox.
It allows to register contract with objects.
Add invoices to contracts.Check the [documentation](https://mlebreuil.github.io/netbox-contract/) for additional information
## Installation
### Activate venv
To ensure our plugin is accessible to the NetBox installation, we first need to activate the Python [virtual environment](https://docs.python.org/3/library/venv.html) 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:```bash
$ source /opt/netbox/venv/bin/activate
```### Install the package
```bash
$ 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:
```python
# configuration.py
PLUGINS = [
'netbox_contract',
]
```### Customize the plugin
The following configurationitems can be set:
```python
# configuration.py
PLUGINS_CONFIG = {
'netbox_contract': {
'top_level_menu': True,
'default_accounting_dimensions':{
"account": "",
"project": "",
"cost center": ""
},
'mandatory_contract_fields': ['accounting_dimensions'],
'hidden_contract_fields': [],
'mandatory_invoice_fields': ['accounting_dimensions'],
'hidden_invoice_fields': [],
}
}```
* top_level_menu : If "Contracts" appears under the "Plugins" menu item or on its own
* default_accounting_dimensions: The accounting dimensions which will appear in the field' background when empty.
* mandatory_contract_fields, mandatory_invoice_fields: Fields which are not required by default and can be set as such. The list of fields is at the bottom of the contract import form.
* hidden_contract_fields, hidden_invoice_fields: List of fields to be hidden. Fields should not be required to be hidden.### Customize the plugin fields choices
Internal partie reference the legal entity of your organization that is a partie to the contract.
```python
# 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
```bash
(venv) $ cd /opt/netbox/netbox/
(venv) $ python3 manage.py migrate
```