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.
Files changed (73) hide show
  1. {netbox_contract-2.2.5/src/netbox_contract.egg-info → netbox_contract-2.2.7}/PKG-INFO +1 -1
  2. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/pyproject.toml +1 -1
  3. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/__init__.py +1 -1
  4. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/api/serializers.py +13 -53
  5. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0026_auto_20240421_1550.py +1 -1
  6. {netbox_contract-2.2.5 → netbox_contract-2.2.7/src/netbox_contract.egg-info}/PKG-INFO +1 -1
  7. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/LICENSE +0 -0
  8. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/MANIFEST.in +0 -0
  9. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/README.md +0 -0
  10. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/setup.cfg +0 -0
  11. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/setup.py +0 -0
  12. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/api/__init__.py +0 -0
  13. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/api/urls.py +0 -0
  14. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/api/views.py +0 -0
  15. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/constants.py +0 -0
  16. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/filtersets.py +0 -0
  17. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/forms.py +0 -0
  18. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0001_initial.py +0 -0
  19. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0002_alter_contract_circuit_and_more.py +0 -0
  20. {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
  21. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0004_contract_currency_invoice_currency.py +0 -0
  22. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0005_contract_accounting_dimensions_and_more.py +0 -0
  23. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0006_alter_contract_circuit.py +0 -0
  24. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0007_invoice_date.py +0 -0
  25. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0008_invoice_comments.py +0 -0
  26. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0009_contract_external_reference.py +0 -0
  27. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0010_invoice_contracts.py +0 -0
  28. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0011_auto_20230122_2112.py +0 -0
  29. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0012_remove_invoice_contract.py +0 -0
  30. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0013_contract_documents_invoice_documents.py +0 -0
  31. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0014_contract_end_date.py +0 -0
  32. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0015_contractassignement.py +0 -0
  33. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0016_contract_parent.py +0 -0
  34. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0017_alter_contract_accounting_dimensions.py +0 -0
  35. {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
  36. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0019_auto_20230924_1813.py +0 -0
  37. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0020_alter_contract_external_partie.py +0 -0
  38. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0021_alter_contract_external_partie.py +0 -0
  39. {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
  40. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0023_rename_contractassignement_contractassignment_and_more.py +0 -0
  41. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0024_remove_contract_external_partie.py +0 -0
  42. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0025_remove_contract_circuit_and_more.py +0 -0
  43. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0027_invoiceline.py +0 -0
  44. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0028_invoiceline_accounting_dimensions.py +0 -0
  45. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0029_remove_invoiceline_accounting_dimensions_and_more.py +0 -0
  46. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0030_alter_invoiceline_accounting_dimensions.py +0 -0
  47. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0031_contract_invoice_template_invoice_template.py +0 -0
  48. {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
  49. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0033_remove_contract_invoice_template.py +0 -0
  50. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0034_contract_yrc_alter_contract_mrc.py +0 -0
  51. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0035_accountingdimension_status_and_more.py +0 -0
  52. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/0036_alter_invoiceline_accounting_dimensions.py +0 -0
  53. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/migrations/__init__.py +0 -0
  54. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/models.py +0 -0
  55. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/navigation.py +0 -0
  56. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/search.py +0 -0
  57. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/tables.py +0 -0
  58. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/template_content.py +0 -0
  59. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/contract_assignments_bottom.html +0 -0
  60. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/contract_list_bottom.html +0 -0
  61. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/accountingdimension.html +0 -0
  62. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/contract.html +0 -0
  63. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/contractassignment.html +0 -0
  64. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/invoice.html +0 -0
  65. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/invoiceline.html +0 -0
  66. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/templates/netbox_contract/serviceprovider.html +0 -0
  67. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/urls.py +0 -0
  68. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract/views.py +0 -0
  69. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/SOURCES.txt +0 -0
  70. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/dependency_links.txt +0 -0
  71. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/not-zip-safe +0 -0
  72. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/requires.txt +0 -0
  73. {netbox_contract-2.2.5 → netbox_contract-2.2.7}/src/netbox_contract.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: netbox-contract
3
- Version: 2.2.5
3
+ Version: 2.2.7
4
4
  Summary: Contract management plugin for Netbox
5
5
  Author-email: Marc Lebreuil <marc@famillelebreuil.net>
6
6
  Project-URL: Homepage, https://github.com/mlebreuil/netbox-contract
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "netbox-contract"
3
- version = "2.2.5"
3
+ version = "2.2.7"
4
4
  authors = [
5
5
  { name="Marc Lebreuil", email="marc@famillelebreuil.net" },
6
6
  ]
@@ -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.5'
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.nested_serializers import NestedTenantSerializer
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 = NestedTenantSerializer(many=False, required=False)
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(instance.external_partie_object, context=context).data
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 = NestedTenantSerializer(many=False, required=False)
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(instance.external_partie_object, context=context).data
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('extras', 'ObjectChange')
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'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: netbox-contract
3
- Version: 2.2.5
3
+ Version: 2.2.7
4
4
  Summary: Contract management plugin for Netbox
5
5
  Author-email: Marc Lebreuil <marc@famillelebreuil.net>
6
6
  Project-URL: Homepage, https://github.com/mlebreuil/netbox-contract
File without changes