python
PLUGINS_CONFIG = {
'netbox_attachments': {
'applied_scope': 'app', New setting: 'app' or 'model'
'scope_filter': ['dcim', 'ipam', 'circuits', 'tenancy', 'virtualization', 'wireless'],
'display_default': "additional_tab",
'create_add_button': True, New setting
'display_setting': {
'ipam.vlan': "left_page"
}
}
}
New Features and Functionality
The configuration system has been enhanced with two primary new settings:
1. **`applied_scope`**: Determines how attachments are filtered/enabled across NetBox models
- `app`: Enables attachments for all models within specified apps (similar to previous behavior)
- `model`: Enables attachments only for specific models or all models within selected apps
2. **`scope_filter`**: Replaces the previous `apps` setting with expanded functionality
- When `applied_scope="app"`: Works like the previous `apps` setting
- When `applied_scope="model"`: Can include:
- Specific model identifiers (e.g., 'dcim.device')
- App labels (e.g., 'tenancy') to include all models from that app
3. **`create_add_button`**: Controls whether an "Add Attachment" button appears in parent views
- Specific to the `additional_tab` display setting
Migration Guide
To migrate from the previous configuration to the new format:
1. If you want to maintain your current behavior (attachments available for all models in specified apps):
python
Old configuration
'apps': ['dcim', 'ipam', 'circuits']
New configuration
'applied_scope': 'app',
'scope_filter': ['dcim', 'ipam', 'circuits']
2. If you want more granular control over which specific models have attachments:
python
New configuration with specific models
'applied_scope': 'model',
'scope_filter': [
'dcim.device', 'ipam.prefix', Specific models
'tenancy', All models from this app
]
3. The new `create_add_button` setting defaults to `True` but can be set to `False` if you don't want the add button to appear.
Technical Impact
- The configuration validation now includes checks for the new settings
- The model filtering logic has been enhanced to support both app-level and model-level filtering
- Documentation has been updated to reflect these new options
- The default settings include backward-compatible values
Backwards Compatibility
This change is designed to be backward compatible when using the default settings. If your configuration specifies only `apps`, the plugin will automatically adapt to use `applied_scope="app"` and `scope_filter` instead of `apps`.
However, for optimal performance and clarity, it's recommended to update your configuration to explicitly use the new format.
---
**Full Changelog**: https://github.com/Kani999/netbox-attachments/compare/7.0.1...7.1.0