netbox-contract 2.2.5__tar.gz → 2.2.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {netbox_contract-2.2.5/src/netbox_contract.egg-info → netbox_contract-2.2.7}/PKG-INFO +1 -1
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/pyproject.toml +1 -1
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/__init__.py +1 -1
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/api/serializers.py +13 -53
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0026_auto_20240421_1550.py +1 -1
- {netbox_contract-2.2.5 → netbox_contract-2.2.7/src/netbox_contract.egg-info}/PKG-INFO +1 -1
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/LICENSE +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/MANIFEST.in +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/README.md +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/setup.cfg +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/setup.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/api/__init__.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/api/urls.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/api/views.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/constants.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/filtersets.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/forms.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0001_initial.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0002_alter_contract_circuit_and_more.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0003_alter_contract_custom_field_data_and_more.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0004_contract_currency_invoice_currency.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0005_contract_accounting_dimensions_and_more.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0006_alter_contract_circuit.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0007_invoice_date.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0008_invoice_comments.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0009_contract_external_reference.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0010_invoice_contracts.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0011_auto_20230122_2112.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0012_remove_invoice_contract.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0013_contract_documents_invoice_documents.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0014_contract_end_date.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0015_contractassignement.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0016_contract_parent.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0017_alter_contract_accounting_dimensions.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0018_contract_external_partie_object_id_and_more.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0019_auto_20230924_1813.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0020_alter_contract_external_partie.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0021_alter_contract_external_partie.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0022_alter_contract_internal_partie_alter_contract_parent.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0023_rename_contractassignement_contractassignment_and_more.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0024_remove_contract_external_partie.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0025_remove_contract_circuit_and_more.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0027_invoiceline.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0028_invoiceline_accounting_dimensions.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0029_remove_invoiceline_accounting_dimensions_and_more.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0030_alter_invoiceline_accounting_dimensions.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0031_contract_invoice_template_invoice_template.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0032_alter_invoice_period_end_alter_invoice_period_start_and_more.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0033_remove_contract_invoice_template.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0034_contract_yrc_alter_contract_mrc.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0035_accountingdimension_status_and_more.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0036_alter_invoiceline_accounting_dimensions.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/__init__.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/models.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/navigation.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/search.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/tables.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/template_content.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/contract_assignments_bottom.html +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/contract_list_bottom.html +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/accountingdimension.html +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/contract.html +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/contractassignment.html +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/invoice.html +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/invoiceline.html +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/serviceprovider.html +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/urls.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/views.py +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/SOURCES.txt +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/dependency_links.txt +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/not-zip-safe +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/requires.txt +0 -0
- {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/top_level.txt +0 -0
|
@@ -5,7 +5,7 @@ class ContractsConfig(PluginConfig):
|
|
|
5
5
|
name = 'netbox_contract'
|
|
6
6
|
verbose_name = 'Netbox contract'
|
|
7
7
|
description = 'Contract management plugin for Netbox'
|
|
8
|
-
version = '2.2.
|
|
8
|
+
version = '2.2.7'
|
|
9
9
|
author = 'Marc Lebreuil'
|
|
10
10
|
author_email = 'marc@famillelebreuil.net'
|
|
11
11
|
base_url = 'contracts'
|
|
@@ -3,9 +3,8 @@ from django.core.exceptions import ObjectDoesNotExist
|
|
|
3
3
|
from drf_yasg.utils import swagger_serializer_method
|
|
4
4
|
from netbox.api.fields import ContentTypeField, SerializedPKRelatedField
|
|
5
5
|
from netbox.api.serializers import NetBoxModelSerializer, WritableNestedSerializer
|
|
6
|
-
from netbox.constants import NESTED_SERIALIZER_PREFIX
|
|
7
6
|
from rest_framework import serializers
|
|
8
|
-
from tenancy.api.
|
|
7
|
+
from tenancy.api.serializers_.tenants import TenantSerializer
|
|
9
8
|
from utilities.api import get_serializer_for_model
|
|
10
9
|
|
|
11
10
|
from ..models import (
|
|
@@ -18,22 +17,12 @@ from ..models import (
|
|
|
18
17
|
)
|
|
19
18
|
|
|
20
19
|
|
|
21
|
-
class NestedServiceProviderSerializer(WritableNestedSerializer):
|
|
22
|
-
url = serializers.HyperlinkedIdentityField(
|
|
23
|
-
view_name='plugins-api:netbox_contract-api:serviceprovider-detail'
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
class Meta:
|
|
27
|
-
model = ServiceProvider
|
|
28
|
-
fields = ('id', 'url', 'display', 'name')
|
|
29
|
-
|
|
30
|
-
|
|
31
20
|
class NestedContractSerializer(WritableNestedSerializer):
|
|
32
21
|
url = serializers.HyperlinkedIdentityField(
|
|
33
22
|
view_name='plugins-api:netbox_contract-api:contract-detail'
|
|
34
23
|
)
|
|
35
24
|
yrc = serializers.DecimalField(max_digits=10, decimal_places=2, read_only=True)
|
|
36
|
-
tenant =
|
|
25
|
+
tenant = TenantSerializer(nested=True, required=False, allow_null=True)
|
|
37
26
|
external_partie_object_type = ContentTypeField(queryset=ContentType.objects.all())
|
|
38
27
|
external_partie_object = serializers.SerializerMethodField(read_only=True)
|
|
39
28
|
|
|
@@ -67,11 +56,12 @@ class NestedContractSerializer(WritableNestedSerializer):
|
|
|
67
56
|
@swagger_serializer_method(serializer_or_field=serializers.JSONField)
|
|
68
57
|
def get_external_partie_object(self, instance):
|
|
69
58
|
serializer = get_serializer_for_model(
|
|
70
|
-
instance.external_partie_object_type.model_class()
|
|
71
|
-
prefix=NESTED_SERIALIZER_PREFIX,
|
|
59
|
+
instance.external_partie_object_type.model_class()
|
|
72
60
|
)
|
|
73
61
|
context = {'request': self.context['request']}
|
|
74
|
-
return serializer(
|
|
62
|
+
return serializer(
|
|
63
|
+
instance.external_partie_object, nested=True, context=context
|
|
64
|
+
).data
|
|
75
65
|
|
|
76
66
|
|
|
77
67
|
class NestedInvoiceSerializer(WritableNestedSerializer):
|
|
@@ -85,35 +75,6 @@ class NestedInvoiceSerializer(WritableNestedSerializer):
|
|
|
85
75
|
brief_fields = ('id', 'url', 'display', 'number')
|
|
86
76
|
|
|
87
77
|
|
|
88
|
-
class NestedContractAssignmentSerializer(WritableNestedSerializer):
|
|
89
|
-
url = serializers.HyperlinkedIdentityField(
|
|
90
|
-
view_name='plugins-api:netbox_contract-api:contractassignment-detail'
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
class Meta:
|
|
94
|
-
model = ContractAssignment
|
|
95
|
-
fields = ('id', 'url', 'display', 'contract', 'content_object')
|
|
96
|
-
brief_fields = ('id', 'url', 'display', 'contract', 'content_object')
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
class NestedInvoicelineSerializer(WritableNestedSerializer):
|
|
100
|
-
url = serializers.HyperlinkedIdentityField(
|
|
101
|
-
view_name='plugins-api:netbox_contract-api:invoiceline-detail'
|
|
102
|
-
)
|
|
103
|
-
|
|
104
|
-
class Meta:
|
|
105
|
-
model = InvoiceLine
|
|
106
|
-
fields = ('id', 'url', 'display', 'invoice', 'accounting_dimensions', 'amount')
|
|
107
|
-
brief_fields = (
|
|
108
|
-
'id',
|
|
109
|
-
'url',
|
|
110
|
-
'display',
|
|
111
|
-
'invoice',
|
|
112
|
-
'accounting_dimensions',
|
|
113
|
-
'amount',
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
|
|
117
78
|
class NestedAccountingDimensionSerializer(WritableNestedSerializer):
|
|
118
79
|
url = serializers.HyperlinkedIdentityField(
|
|
119
80
|
view_name='plugins-api:netbox_contract-api:accountingdimension-detail'
|
|
@@ -131,7 +92,7 @@ class ContractSerializer(NetBoxModelSerializer):
|
|
|
131
92
|
)
|
|
132
93
|
yrc = serializers.DecimalField(max_digits=10, decimal_places=2, read_only=True)
|
|
133
94
|
parent = NestedContractSerializer(many=False, required=False)
|
|
134
|
-
tenant =
|
|
95
|
+
tenant = TenantSerializer(nested=True, required=False, allow_null=True)
|
|
135
96
|
external_partie_object_type = ContentTypeField(queryset=ContentType.objects.all())
|
|
136
97
|
external_partie_object = serializers.SerializerMethodField(read_only=True)
|
|
137
98
|
|
|
@@ -195,11 +156,12 @@ class ContractSerializer(NetBoxModelSerializer):
|
|
|
195
156
|
@swagger_serializer_method(serializer_or_field=serializers.JSONField)
|
|
196
157
|
def get_external_partie_object(self, instance):
|
|
197
158
|
serializer = get_serializer_for_model(
|
|
198
|
-
instance.external_partie_object_type.model_class()
|
|
199
|
-
prefix=NESTED_SERIALIZER_PREFIX,
|
|
159
|
+
instance.external_partie_object_type.model_class()
|
|
200
160
|
)
|
|
201
161
|
context = {'request': self.context['request']}
|
|
202
|
-
return serializer(
|
|
162
|
+
return serializer(
|
|
163
|
+
instance.external_partie_object, nested=True, context=context
|
|
164
|
+
).data
|
|
203
165
|
|
|
204
166
|
|
|
205
167
|
class InvoiceSerializer(NetBoxModelSerializer):
|
|
@@ -363,11 +325,9 @@ class ContractAssignmentSerializer(NetBoxModelSerializer):
|
|
|
363
325
|
|
|
364
326
|
@swagger_serializer_method(serializer_or_field=serializers.JSONField)
|
|
365
327
|
def get_content_object(self, instance):
|
|
366
|
-
serializer = get_serializer_for_model(
|
|
367
|
-
instance.content_type.model_class(), prefix=NESTED_SERIALIZER_PREFIX
|
|
368
|
-
)
|
|
328
|
+
serializer = get_serializer_for_model(instance.content_type.model_class())
|
|
369
329
|
context = {'request': self.context['request']}
|
|
370
|
-
return serializer(instance.content_object, context=context).data
|
|
330
|
+
return serializer(instance.content_object, nested=True, context=context).data
|
|
371
331
|
|
|
372
332
|
|
|
373
333
|
class InvoiceLineSerializer(NetBoxModelSerializer):
|
|
@@ -8,7 +8,7 @@ def update_changed_object_type(apps, schema_editor):
|
|
|
8
8
|
Update the Change Log related object type to match
|
|
9
9
|
renamed contract_assignment type
|
|
10
10
|
"""
|
|
11
|
-
ObjectChange = apps.get_model('
|
|
11
|
+
ObjectChange = apps.get_model('core', 'ObjectChange')
|
|
12
12
|
ContentType = apps.get_model('contenttypes', 'ContentType')
|
|
13
13
|
ct = ContentType.objects.get(
|
|
14
14
|
app_label='netbox_contract', model='contractassignment'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0007_invoice_date.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0027_invoiceline.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|