From ab624a922753bf8ef58272565431a9ccccabd2b8 Mon Sep 17 00:00:00 2001 From: Marc Lebreuil Date: Sun, 30 Jun 2024 21:02:59 +0000 Subject: [PATCH 1/7] Add invoice lines --- src/netbox_contract/api/serializers.py | 36 +++- src/netbox_contract/api/urls.py | 1 + src/netbox_contract/api/views.py | 6 + src/netbox_contract/filtersets.py | 18 +- src/netbox_contract/forms.py | 171 +++++++++++++----- .../migrations/0027_invoiceline.py | 57 ++++++ .../0028_invoiceline_accounting_dimensions.py | 17 ++ src/netbox_contract/models.py | 22 +++ src/netbox_contract/navigation.py | 18 ++ src/netbox_contract/search.py | 13 +- src/netbox_contract/tables.py | 24 ++- .../templates/netbox_contract/invoice.html | 18 ++ .../netbox_contract/invoiceline.html | 42 +++++ src/netbox_contract/urls.py | 37 ++++ src/netbox_contract/views.py | 81 ++++++++- 15 files changed, 505 insertions(+), 56 deletions(-) create mode 100644 src/netbox_contract/migrations/0027_invoiceline.py create mode 100644 src/netbox_contract/migrations/0028_invoiceline_accounting_dimensions.py create mode 100644 src/netbox_contract/templates/netbox_contract/invoiceline.html diff --git a/src/netbox_contract/api/serializers.py b/src/netbox_contract/api/serializers.py index 0aea2b3..ca8a55d 100644 --- a/src/netbox_contract/api/serializers.py +++ b/src/netbox_contract/api/serializers.py @@ -7,7 +7,7 @@ from tenancy.api.nested_serializers import NestedTenantSerializer from utilities.api import get_serializer_for_model -from ..models import Contract, ContractAssignment, Invoice, ServiceProvider +from ..models import Contract, ContractAssignment, Invoice, InvoiceLine, ServiceProvider class NestedServiceProviderSerializer(WritableNestedSerializer): @@ -52,6 +52,17 @@ class Meta: brief_fields = ('id', 'url', 'display', 'contract', 'content_object') +class NestedInvoicelineSerializer(WritableNestedSerializer): + url = serializers.HyperlinkedIdentityField( + view_name='plugins-api:netbox_contract-api:InvoiceLine-detail' + ) + + class Meta: + model = InvoiceLine + fields = ('id', 'url', 'display', 'invoice', 'amount') + brief_fields = ('id', 'url', 'display', 'invoice', 'amount') + + class ContractSerializer(NetBoxModelSerializer): url = serializers.HyperlinkedIdentityField( view_name='plugins-api:netbox_contract-api:contract-detail' @@ -192,3 +203,26 @@ def get_content_object(self, instance): ) context = {'request': self.context['request']} return serializer(instance.content_object, context=context).data + + +class InvoiceLineSerializer(NetBoxModelSerializer): + url = serializers.HyperlinkedIdentityField( + view_name='plugins-api:netbox_contract-api:invoiceline-detail' + ) + + class Meta: + model = InvoiceLine + fields = ( + 'id', + 'url', + 'display', + 'invoice', + 'amount', + 'currency', + 'comments', + 'tags', + 'custom_fields', + 'created', + 'last_updated', + ) + brief_fields = ('invoice', 'amount', 'url', 'display', 'name') diff --git a/src/netbox_contract/api/urls.py b/src/netbox_contract/api/urls.py index e3506c7..a807452 100644 --- a/src/netbox_contract/api/urls.py +++ b/src/netbox_contract/api/urls.py @@ -9,5 +9,6 @@ router.register('invoices', views.InvoiceViewSet) router.register('serviceproviders', views.ServiceProviderViewSet) router.register('contractassignment', views.ContractAssignmentViewSet) +router.register('invoiceline', views.InvoiceLineViewSet) urlpatterns = router.urls diff --git a/src/netbox_contract/api/views.py b/src/netbox_contract/api/views.py index 2114dc2..6f379ed 100644 --- a/src/netbox_contract/api/views.py +++ b/src/netbox_contract/api/views.py @@ -5,6 +5,7 @@ from .serializers import ( ContractAssignmentSerializer, ContractSerializer, + InvoiceLineSerializer, InvoiceSerializer, ServiceProviderSerializer, ) @@ -31,3 +32,8 @@ class ServiceProviderViewSet(NetBoxModelViewSet): class ContractAssignmentViewSet(NetBoxModelViewSet): queryset = models.ContractAssignment.objects.prefetch_related('contract', 'tags') serializer_class = ContractAssignmentSerializer + + +class InvoiceLineViewSet(NetBoxModelViewSet): + queryset = models.InvoiceLine.objects.prefetch_related('invoice', 'tags') + serializer_class = InvoiceLineSerializer diff --git a/src/netbox_contract/filtersets.py b/src/netbox_contract/filtersets.py index 767b12b..4a16f78 100644 --- a/src/netbox_contract/filtersets.py +++ b/src/netbox_contract/filtersets.py @@ -1,7 +1,7 @@ from django.db.models import Q from netbox.filtersets import NetBoxModelFilterSet -from .models import Contract, ContractAssignment, Invoice, ServiceProvider +from .models import Contract, ContractAssignment, Invoice, InvoiceLine, ServiceProvider class ContractFilterSet(NetBoxModelFilterSet): @@ -14,7 +14,7 @@ def search(self, queryset, name, value): Q(name__icontains=value) | Q(external_reference__icontains=value) | Q(comments__icontains=value), - Q(status__iexact='Active') + Q(status__iexact='Active'), ) @@ -25,8 +25,7 @@ class Meta: def search(self, queryset, name, value): return queryset.filter( - Q(number__icontains=value) - | Q(contracts__name__icontains=value) + Q(number__icontains=value) | Q(contracts__name__icontains=value) ) @@ -46,3 +45,14 @@ class Meta: def search(self, queryset, name, value): return queryset.filter(Q(contract__name__icontains=value)) + + +class InvoiceLineFilterSet(NetBoxModelFilterSet): + class Meta: + model = InvoiceLine + fields = ('id', 'invoice') + + def search(self, queryset, name, value): + return queryset.filter( + Q(comments__icontains=value) | Q(invoice__name__icontains=value) + ) diff --git a/src/netbox_contract/forms.py b/src/netbox_contract/forms.py index 6799b6a..5517906 100644 --- a/src/netbox_contract/forms.py +++ b/src/netbox_contract/forms.py @@ -1,6 +1,7 @@ from django import forms from django.conf import settings from django.contrib.contenttypes.models import ContentType +from django.core.exceptions import ValidationError from extras.filters import TagFilter from netbox.forms import ( NetBoxModelBulkEditForm, @@ -28,6 +29,7 @@ ContractAssignment, InternalEntityChoices, Invoice, + InvoiceLine, ServiceProvider, StatusChoices, ) @@ -46,6 +48,9 @@ def __init__(self, *args, **kwargs): self.widget.attrs['placeholder'] = str(default_dimensions) +# Contract + + class ContractForm(NetBoxModelForm): comments = CommentField() @@ -143,46 +148,6 @@ class Meta: } -class InvoiceForm(NetBoxModelForm): - contracts = DynamicModelMultipleChoiceField( - queryset=Contract.objects.all(), required=False - ) - accounting_dimensions = Dimensions(required=False) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - # Initialise fields settings - mandatory_fields = plugin_settings.get('mandatory_invoice_fields') - for field in mandatory_fields: - self.fields[field].required = True - hidden_fields = plugin_settings.get('hidden_invoice_fields') - for field in hidden_fields: - if not self.fields[field].required: - self.fields[field].widget = forms.HiddenInput() - - class Meta: - model = Invoice - fields = ( - 'number', - 'date', - 'contracts', - 'period_start', - 'period_end', - 'currency', - 'accounting_dimensions', - 'amount', - 'documents', - 'comments', - 'tags', - ) - widgets = { - 'date': DatePicker(), - 'period_start': DatePicker(), - 'period_end': DatePicker(), - } - - class ContractFilterSetForm(NetBoxModelFilterSetForm): model = Contract @@ -193,13 +158,6 @@ class ContractFilterSetForm(NetBoxModelFilterSetForm): parent = DynamicModelChoiceField(queryset=Contract.objects.all(), required=False) -class InvoiceFilterSetForm(NetBoxModelFilterSetForm): - model = Invoice - contracts = DynamicModelMultipleChoiceField( - queryset=Contract.objects.all(), required=False - ) - - class ContractCSVForm(NetBoxModelImportForm): external_partie_object_type = CSVContentTypeField( queryset=ContentType.objects.all(), @@ -271,6 +229,56 @@ class ContractBulkEditForm(NetBoxModelBulkEditForm): model = Contract +# Invoice + + +class InvoiceForm(NetBoxModelForm): + contracts = DynamicModelMultipleChoiceField( + queryset=Contract.objects.all(), required=False + ) + accounting_dimensions = Dimensions(required=False) + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Initialise fields settings + mandatory_fields = plugin_settings.get('mandatory_invoice_fields') + for field in mandatory_fields: + self.fields[field].required = True + hidden_fields = plugin_settings.get('hidden_invoice_fields') + for field in hidden_fields: + if not self.fields[field].required: + self.fields[field].widget = forms.HiddenInput() + + class Meta: + model = Invoice + fields = ( + 'number', + 'date', + 'contracts', + 'period_start', + 'period_end', + 'currency', + 'accounting_dimensions', + 'amount', + 'documents', + 'comments', + 'tags', + ) + widgets = { + 'date': DatePicker(), + 'period_start': DatePicker(), + 'period_end': DatePicker(), + } + + +class InvoiceFilterSetForm(NetBoxModelFilterSetForm): + model = Invoice + contracts = DynamicModelMultipleChoiceField( + queryset=Contract.objects.all(), required=False + ) + + class InvoiceCSVForm(NetBoxModelImportForm): contracts = CSVModelChoiceField( queryset=Contract.objects.all(), @@ -368,3 +376,72 @@ class ContractAssignmentImportForm(NetBoxModelImportForm): class Meta: model = ContractAssignment fields = ['content_type', 'object_id', 'contract', 'tags'] + + +# InvoiceLine + + +class InvoiceLineForm(NetBoxModelForm): + invoice = DynamicModelChoiceField(queryset=Invoice.objects.all()) + accounting_dimensions = Dimensions(required=False) + + def clean(self): + super().clean() + amount = self.cleaned_data.get('amount') + invoice = self.cleaned_data.get('invoice') + if self.instance is None: + if amount and amount > invoice.amount - invoice.total_invoicelines_amount: + raise ValidationError( + 'Sum of invoice line amount greater than invoice amount' + ) + else: + if amount > ( + invoice.amount + - invoice.total_invoicelines_amount + + self.instance.amount + ): + raise ValidationError( + 'Sum of invoice line amount greater than invoice amount' + ) + + class Meta: + model = InvoiceLine + fields = [ + 'invoice', + 'currency', + 'amount', + 'accounting_dimensions', + 'comments', + 'tags', + ] + + +class InvoiceLineFilterSetForm(NetBoxModelFilterSetForm): + model = InvoiceLine + invoice = DynamicModelChoiceField(queryset=Invoice.objects.all()) + + +class InvoiceLineImportForm(NetBoxModelImportForm): + invoice = CSVModelChoiceField( + queryset=Invoice.objects.all(), + to_field_name='number', + help_text='Invoice number', + ) + + class Meta: + model = InvoiceLine + fields = [ + 'invoice', + 'currency', + 'amount', + 'accounting_dimensions', + 'comments', + 'tags', + ] + + +class InvoiceLineBulkEditForm(NetBoxModelBulkEditForm): + invoice = DynamicModelMultipleChoiceField( + queryset=Invoice.objects.all(), required=False + ) + model = InvoiceLine diff --git a/src/netbox_contract/migrations/0027_invoiceline.py b/src/netbox_contract/migrations/0027_invoiceline.py new file mode 100644 index 0000000..306ab8e --- /dev/null +++ b/src/netbox_contract/migrations/0027_invoiceline.py @@ -0,0 +1,57 @@ +# Generated by Django 5.0.6 on 2024-06-23 13:12 + +import django.db.models.deletion +import taggit.managers +import utilities.json +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('extras', '0115_convert_dashboard_widgets'), + ('netbox_contract', '0026_auto_20240421_1550'), + ] + + operations = [ + migrations.CreateModel( + name='InvoiceLine', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, primary_key=True, serialize=False + ), + ), + ('created', models.DateTimeField(auto_now_add=True, null=True)), + ('last_updated', models.DateTimeField(auto_now=True, null=True)), + ( + 'custom_field_data', + models.JSONField( + blank=True, + default=dict, + encoder=utilities.json.CustomFieldJSONEncoder, + ), + ), + ('currency', models.CharField(default='usd', max_length=3)), + ('amount', models.DecimalField(decimal_places=2, max_digits=10)), + ('comments', models.TextField(blank=True)), + ( + 'invoice', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='invoicelines', + to='netbox_contract.invoice', + ), + ), + ( + 'tags', + taggit.managers.TaggableManager( + through='extras.TaggedItem', to='extras.Tag' + ), + ), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/src/netbox_contract/migrations/0028_invoiceline_accounting_dimensions.py b/src/netbox_contract/migrations/0028_invoiceline_accounting_dimensions.py new file mode 100644 index 0000000..28f058f --- /dev/null +++ b/src/netbox_contract/migrations/0028_invoiceline_accounting_dimensions.py @@ -0,0 +1,17 @@ +# Generated by Django 5.0.6 on 2024-06-30 20:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('netbox_contract', '0027_invoiceline'), + ] + + operations = [ + migrations.AddField( + model_name='invoiceline', + name='accounting_dimensions', + field=models.JSONField(null=True), + ), + ] diff --git a/src/netbox_contract/models.py b/src/netbox_contract/models.py index fc10d4c..cee53ab 100644 --- a/src/netbox_contract/models.py +++ b/src/netbox_contract/models.py @@ -169,3 +169,25 @@ def __str__(self): def get_absolute_url(self): return reverse('plugins:netbox_contract:invoice', args=[self.pk]) + + @property + def total_invoicelines_amount(self): + """ + Calculates the total amount for all related InvoiceLines. + """ + return sum(invoiceline.amount for invoiceline in self.invoicelines.all()) + + +class InvoiceLine(NetBoxModel): + invoice = models.ForeignKey( + to='Invoice', on_delete=models.CASCADE, related_name='invoicelines' + ) + currency = models.CharField( + max_length=3, choices=CurrencyChoices, default=CurrencyChoices.CURRENCY_USD + ) + amount = models.DecimalField(max_digits=10, decimal_places=2) + accounting_dimensions = models.JSONField(null=True) + comments = models.TextField(blank=True) + + def get_absolute_url(self): + return reverse('plugins:netbox_contract:invoiceline', args=[self.pk]) diff --git a/src/netbox_contract/navigation.py b/src/netbox_contract/navigation.py index 0434a04..f1f0ff1 100644 --- a/src/netbox_contract/navigation.py +++ b/src/netbox_contract/navigation.py @@ -21,6 +21,16 @@ ) ] +invoiceline_buttons = [ + PluginMenuButton( + link='plugins:netbox_contract:invoiceline_add', + title='Add', + icon_class='mdi mdi-plus-thick', + permissions=['netbox_contract.add_invoice'], + ) +] + + serviceprovider_buttons = [ PluginMenuButton( link='plugins:netbox_contract:serviceprovider_add', @@ -44,6 +54,13 @@ permissions=['netbox_contract.view_invoice'], ) +invoicelines_menu_item = PluginMenuItem( + link='plugins:netbox_contract:invoiceline_list', + link_text='Invoice lines', + buttons=invoiceline_buttons, + permissions=['netbox_contract.view_invoice'], +) + service_provider_menu_item = PluginMenuItem( link='plugins:netbox_contract:serviceprovider_list', link_text='Service Providers', @@ -59,6 +76,7 @@ items = ( contract_menu_item, invoices_menu_item, + invoicelines_menu_item, service_provider_menu_item, contract_assignemnt_menu_item, ) diff --git a/src/netbox_contract/search.py b/src/netbox_contract/search.py index ae7e431..c85669c 100644 --- a/src/netbox_contract/search.py +++ b/src/netbox_contract/search.py @@ -1,6 +1,6 @@ from netbox.search import SearchIndex -from .models import Contract, Invoice, ServiceProvider +from .models import Contract, Invoice, InvoiceLine, ServiceProvider class ServiceProviderIndex(SearchIndex): @@ -26,4 +26,13 @@ class InvoiceIndex(SearchIndex): ('comments', 5000), ) -indexes = [ServiceProviderIndex,ContractIndex,InvoiceIndex] + +class InvoiceLineIndex(SearchIndex): + model = InvoiceLine + fields = ( + ('invoice', 100), + ('comments', 5000), + ) + + +indexes = [ServiceProviderIndex, ContractIndex, InvoiceIndex, InvoiceLineIndex] diff --git a/src/netbox_contract/tables.py b/src/netbox_contract/tables.py index e73adf3..c6933e3 100644 --- a/src/netbox_contract/tables.py +++ b/src/netbox_contract/tables.py @@ -1,7 +1,7 @@ import django_tables2 as tables from netbox.tables import NetBoxTable, columns -from .models import Contract, ContractAssignment, Invoice, ServiceProvider +from .models import Contract, ContractAssignment, Invoice, InvoiceLine, ServiceProvider class ContractAssignmentListTable(NetBoxTable): @@ -188,3 +188,25 @@ class Meta(NetBoxTable.Meta): model = ServiceProvider fields = ('pk', 'name', 'slug', 'portal_url') default_columns = ('name', 'portal_url') + + +class InvoiceLineListTable(NetBoxTable): + invoice = tables.Column(linkify=True) + + class Meta(NetBoxTable.Meta): + model = InvoiceLine + fields = ( + 'pk', + 'invoice', + 'amount', + 'currency', + 'accounting_dimensions', + 'comments', + ) + default_columns = ( + 'invoice', + 'amount', + 'currency', + 'accounting_dimensions', + 'comments', + ) diff --git a/src/netbox_contract/templates/netbox_contract/invoice.html b/src/netbox_contract/templates/netbox_contract/invoice.html index c4d720f..2fdddfc 100644 --- a/src/netbox_contract/templates/netbox_contract/invoice.html +++ b/src/netbox_contract/templates/netbox_contract/invoice.html @@ -53,8 +53,26 @@
Invoices
{% endif %} + + Invoice lines total + {{ object.total_invoicelines_amount }} + +
+
+
+
Lines
+ {% render_table invoicelines_table %} + +
+
+
diff --git a/src/netbox_contract/templates/netbox_contract/invoiceline.html b/src/netbox_contract/templates/netbox_contract/invoiceline.html new file mode 100644 index 0000000..ce74359 --- /dev/null +++ b/src/netbox_contract/templates/netbox_contract/invoiceline.html @@ -0,0 +1,42 @@ +{% extends 'generic/object.html' %} +{% load plugins %} +{% load render_table from django_tables2 %} +{% block breadcrumbs %} + {{ block.super }} + +{% endblock %} +{% block content %} +
+
+
+
Invoice Lines
+ + + + + + + + + + + + + + + + + +
Invoice + {{ object.invoice.number }} +
Amount{{ object.amount }}
Currency{{ object.currency }}
Accounting dimentions{{ object.accounting_dimensions }}
+
+ {% include 'inc/panels/custom_fields.html' %} + {% include 'inc/panels/tags.html' %} + {% include 'inc/panels/comments.html' %} +
+
+{% plugin_right_page object %} +{% endblock content %} \ No newline at end of file diff --git a/src/netbox_contract/urls.py b/src/netbox_contract/urls.py index bf4867d..bd0d01e 100644 --- a/src/netbox_contract/urls.py +++ b/src/netbox_contract/urls.py @@ -166,4 +166,41 @@ name='contractassignment_changelog', kwargs={'model': models.ContractAssignment}, ), + # InvoiceLine + path( + 'invoiceline/', + views.InvoiceLineListView.as_view(), + name='invoiceline_list', + ), + path( + 'invoiceline/add/', + views.InvoiceLineEditView.as_view(), + name='invoiceline_add', + ), + path( + 'invoiceline/import/', + views.InvoiceLineBulkImportView.as_view(), + name='invoiceline_import', + ), + path( + 'invoiceline//', + views.InvoiceLineView.as_view(), + name='invoiceline', + ), + path( + 'invoiceline//edit/', + views.InvoiceLineEditView.as_view(), + name='invoiceline_edit', + ), + path( + 'invoiceline//delete/', + views.InvoiceLineDeleteView.as_view(), + name='invoiceline_delete', + ), + path( + 'invoiceline//changelog/', + ObjectChangeLogView.as_view(), + name='invoiceline_changelog', + kwargs={'model': models.InvoiceLine}, + ), ) diff --git a/src/netbox_contract/views.py b/src/netbox_contract/views.py index 12f230a..a1e67c1 100644 --- a/src/netbox_contract/views.py +++ b/src/netbox_contract/views.py @@ -14,7 +14,7 @@ from utilities.views import register_model_view from . import filtersets, forms, tables -from .models import Contract, ContractAssignment, Invoice, ServiceProvider +from .models import Contract, ContractAssignment, Invoice, InvoiceLine, ServiceProvider plugin_settings = settings.PLUGINS_CONFIG['netbox_contract'] @@ -218,11 +218,14 @@ class InvoiceView(generic.ObjectView): def get_extra_context(self, request, instance): contracts_table = tables.ContractListTable(instance.contracts.all()) contracts_table.configure(request) + invoicelines_table = tables.InvoiceLineListTable(instance.invoicelines.all()) + invoicelines_table.configure(request) hidden_fields = plugin_settings.get('hidden_invoice_fields') return { 'hidden_fields': hidden_fields, 'contracts_table': contracts_table, + 'invoicelines_table': invoicelines_table, } @@ -313,3 +316,79 @@ class InvoiceBulkDeleteView(generic.BulkDeleteView): queryset = Invoice.objects.all() filterset = filtersets.InvoiceFilterSet table = tables.InvoiceListTable + + +# InvoiceLine + + +class InvoiceLineView(generic.ObjectView): + queryset = InvoiceLine.objects.all() + + +class InvoiceLineListView(generic.ObjectListView): + queryset = InvoiceLine.objects.all() + table = tables.InvoiceLineListTable + filterset = filtersets.InvoiceLineFilterSet + filterset_form = forms.InvoiceLineFilterSetForm + + +class InvoiceLineEditView(generic.ObjectEditView): + queryset = InvoiceLine.objects.all() + form = forms.InvoiceLineForm + + def get(self, request, *args, **kwargs): + """ + GET request handler + Overrides the ObjectEditView function to include form initialization + with data from the parent invoice object + + Args: + request: The current request + """ + obj = self.get_object(**kwargs) + obj = self.alter_object(obj, request, args, kwargs) + model = self.queryset.model + + initial_data = normalize_querydict(request.GET) + if 'invoice' in initial_data.keys(): + invoice = Invoice.objects.get(pk=initial_data['invoice']) + initial_data['amount'] = invoice.amount - invoice.total_invoicelines_amount + + form = self.form(instance=obj, initial=initial_data) + restrict_form_fields(form, request.user) + + return render( + request, + self.template_name, + { + 'model': model, + 'object': obj, + 'form': form, + 'return_url': self.get_return_url(request, obj), + 'prerequisite_model': get_prerequisite_model(self.queryset), + **self.get_extra_context(request, obj), + }, + ) + + +class InvoiceLineDeleteView(generic.ObjectDeleteView): + queryset = InvoiceLine.objects.all() + + +class InvoiceLineBulkImportView(generic.BulkImportView): + queryset = InvoiceLine.objects.all() + model_form = forms.InvoiceLineImportForm + table = tables.InvoiceLineListTable + + +class InvoiceLineBulkEditView(generic.BulkEditView): + queryset = InvoiceLine.objects.annotate() + filterset = filtersets.InvoiceLineFilterSet + table = tables.InvoiceLineListTable + form = forms.InvoiceLineBulkEditForm + + +class InvoiceLineBulkDeleteView(generic.BulkDeleteView): + queryset = InvoiceLine.objects.annotate() + filterset = filtersets.InvoiceLineFilterSet + table = tables.InvoiceLineListTable From 9b027eb5893484c0fc287600ca0197f3a55835bb Mon Sep 17 00:00:00 2001 From: Marc Lebreuil Date: Mon, 1 Jul 2024 21:26:23 +0000 Subject: [PATCH 2/7] invoiceline table add button and fix --- src/netbox_contract/forms.py | 14 +++--- .../templates/netbox_contract/invoice.html | 43 ++++++++++--------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/netbox_contract/forms.py b/src/netbox_contract/forms.py index 5517906..11d07c6 100644 --- a/src/netbox_contract/forms.py +++ b/src/netbox_contract/forms.py @@ -389,13 +389,8 @@ def clean(self): super().clean() amount = self.cleaned_data.get('amount') invoice = self.cleaned_data.get('invoice') - if self.instance is None: - if amount and amount > invoice.amount - invoice.total_invoicelines_amount: - raise ValidationError( - 'Sum of invoice line amount greater than invoice amount' - ) - else: - if amount > ( + if self.instance.pk is not None: + if amount and amount > ( invoice.amount - invoice.total_invoicelines_amount + self.instance.amount @@ -403,6 +398,11 @@ def clean(self): raise ValidationError( 'Sum of invoice line amount greater than invoice amount' ) + else: + if amount and amount > invoice.amount - invoice.total_invoicelines_amount: + raise ValidationError( + 'Sum of invoice line amount greater than invoice amount' + ) class Meta: model = InvoiceLine diff --git a/src/netbox_contract/templates/netbox_contract/invoice.html b/src/netbox_contract/templates/netbox_contract/invoice.html index 2fdddfc..72eed86 100644 --- a/src/netbox_contract/templates/netbox_contract/invoice.html +++ b/src/netbox_contract/templates/netbox_contract/invoice.html @@ -59,31 +59,32 @@
Invoices
-
-
-
-
Lines
- {% render_table invoicelines_table %} - -
+ {% include 'inc/panels/custom_fields.html' %} + {% include 'inc/panels/tags.html' %} + {% include 'inc/panels/comments.html' %} +
+
+
+
+
+ Invoice lines + +
+ {% render_table invoicelines_table %}
-
-
-
-
Contracts
- {% render_table contracts_table %} -
+
+
+
+
+
Contracts
+ {% render_table contracts_table %}
- {% include 'inc/panels/custom_fields.html' %} - {% include 'inc/panels/tags.html' %} - {% include 'inc/panels/comments.html' %}
{% plugin_right_page object %} From d38a59a7e07d5be80b359445b2a53615e3e7d335 Mon Sep 17 00:00:00 2001 From: Marc Lebreuil Date: Tue, 9 Jul 2024 19:05:37 +0000 Subject: [PATCH 3/7] Update Readme --- utils/README.md | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/utils/README.md b/utils/README.md index 55b3452..9770166 100644 --- a/utils/README.md +++ b/utils/README.md @@ -39,7 +39,7 @@ cd netbox git clone -b master --depth 1 https://github.com/netbox-community/netbox.git . ``` -You do not need to create the Betbox system user +You do not need to create the Netbox system user ### generate secret key @@ -52,20 +52,13 @@ update the netbox-contract/utils/netbox-configuration.py with this secret key ### update netbox configuration ``` -sudo cp netbox-contract/utils/netbox-configuration.py netbox/netbox/netbox/configuration.py +cp netbox-contract/utils/netbox-configuration.py netbox/netbox/netbox/configuration.py ``` ### Run the Upgrade Script ```bash -sudo netbox/upgrade.sh -``` - -Chnage the ownership of the creaed virtual environment - -```bash -cd netbox -sudo chown -R vscode:vscode venv +netbox/upgrade.sh ``` ### Create a Super User @@ -86,14 +79,10 @@ python3 netbox/netbox/manage.py runserver For development, install the plugin from the local file system: ```bash +python3 -m pip uninstall netbox-contract python3 -m pip install -e netbox-contract ``` -Update netbox configuration to configure the plugin: - -```bash -sudo cp netbox-contract/utils/netbox-configuration-final.py netbox/netbox/netbox/configuration.py -``` run database migrations: ```bash @@ -104,7 +93,7 @@ install pre-commit: ```bash cd netbox-contract -python -m pip install pre-commit +python3 -m pip install pre-commit pre-commit install ``` @@ -119,15 +108,9 @@ python3 netbox/netbox/manage.py runserver ```bash cd netbox -sudo git checkout master -sudo git pull origin master -sudo ./upgrade.sh -``` - -Change the owner of virtual environment: - -```bash -sudo chown -R vscode:vscode venv +git checkout master +git pull origin master +./upgrade.sh ``` Reinstall the pluggin from the local filesystem (see below). From fb1529908d6f67148aa8442926be2d75ecbac25f Mon Sep 17 00:00:00 2001 From: Marc Lebreuil Date: Sat, 13 Jul 2024 19:58:44 +0000 Subject: [PATCH 4/7] Add accounting dimensions model --- src/netbox_contract/api/serializers.py | 42 ++++++++++++- src/netbox_contract/api/urls.py | 1 + src/netbox_contract/api/views.py | 6 ++ src/netbox_contract/filtersets.py | 20 ++++++- src/netbox_contract/forms.py | 59 ++++++++++++++++++- ...oiceline_accounting_dimensions_and_more.py | 57 ++++++++++++++++++ ...alter_invoiceline_accounting_dimensions.py | 21 +++++++ src/netbox_contract/models.py | 20 ++++++- src/netbox_contract/navigation.py | 16 +++++ src/netbox_contract/search.py | 18 +++++- src/netbox_contract/tables.py | 27 ++++++++- .../netbox_contract/accountingdimension.html | 27 +++++++++ src/netbox_contract/urls.py | 37 ++++++++++++ src/netbox_contract/views.py | 51 +++++++++++++++- 14 files changed, 392 insertions(+), 10 deletions(-) create mode 100644 src/netbox_contract/migrations/0029_remove_invoiceline_accounting_dimensions_and_more.py create mode 100644 src/netbox_contract/migrations/0030_alter_invoiceline_accounting_dimensions.py create mode 100644 src/netbox_contract/templates/netbox_contract/accountingdimension.html diff --git a/src/netbox_contract/api/serializers.py b/src/netbox_contract/api/serializers.py index ca8a55d..ea2d905 100644 --- a/src/netbox_contract/api/serializers.py +++ b/src/netbox_contract/api/serializers.py @@ -7,7 +7,14 @@ from tenancy.api.nested_serializers import NestedTenantSerializer from utilities.api import get_serializer_for_model -from ..models import Contract, ContractAssignment, Invoice, InvoiceLine, ServiceProvider +from ..models import ( + AccountingDimension, + Contract, + ContractAssignment, + Invoice, + InvoiceLine, + ServiceProvider, +) class NestedServiceProviderSerializer(WritableNestedSerializer): @@ -63,6 +70,17 @@ class Meta: brief_fields = ('id', 'url', 'display', 'invoice', 'amount') +class NestedAccountingDimensionSerializer(WritableNestedSerializer): + url = serializers.HyperlinkedIdentityField( + view_name='plugins-api:netbox_contract-api:AccountingDimension-detail' + ) + + class Meta: + model = AccountingDimension + fields = ('id', 'url', 'display', 'name', 'value') + brief_fields = ('id', 'url', 'display', 'name', 'value') + + class ContractSerializer(NetBoxModelSerializer): url = serializers.HyperlinkedIdentityField( view_name='plugins-api:netbox_contract-api:contract-detail' @@ -226,3 +244,25 @@ class Meta: 'last_updated', ) brief_fields = ('invoice', 'amount', 'url', 'display', 'name') + + +class AccountingDimensionSerializer(NetBoxModelSerializer): + url = serializers.HyperlinkedIdentityField( + view_name='plugins-api:netbox_contract-api:accountingdimension-detail' + ) + + class Meta: + model = AccountingDimension + fields = ( + 'id', + 'url', + 'display', + 'name', + 'value', + 'comments', + 'tags', + 'custom_fields', + 'created', + 'last_updated', + ) + brief_fields = ('name', 'value', 'url', 'display') diff --git a/src/netbox_contract/api/urls.py b/src/netbox_contract/api/urls.py index a807452..8c3502a 100644 --- a/src/netbox_contract/api/urls.py +++ b/src/netbox_contract/api/urls.py @@ -10,5 +10,6 @@ router.register('serviceproviders', views.ServiceProviderViewSet) router.register('contractassignment', views.ContractAssignmentViewSet) router.register('invoiceline', views.InvoiceLineViewSet) +router.register('accountingdimension', views.AccountingDimensionViewSet) urlpatterns = router.urls diff --git a/src/netbox_contract/api/views.py b/src/netbox_contract/api/views.py index 6f379ed..d4d2edb 100644 --- a/src/netbox_contract/api/views.py +++ b/src/netbox_contract/api/views.py @@ -3,6 +3,7 @@ from .. import filtersets, models from .serializers import ( + AccountingDimensionSerializer, ContractAssignmentSerializer, ContractSerializer, InvoiceLineSerializer, @@ -37,3 +38,8 @@ class ContractAssignmentViewSet(NetBoxModelViewSet): class InvoiceLineViewSet(NetBoxModelViewSet): queryset = models.InvoiceLine.objects.prefetch_related('invoice', 'tags') serializer_class = InvoiceLineSerializer + + +class AccountingDimensionViewSet(NetBoxModelViewSet): + queryset = models.AccountingDimension.objects.prefetch_related('tags') + serializer_class = AccountingDimensionSerializer diff --git a/src/netbox_contract/filtersets.py b/src/netbox_contract/filtersets.py index 4a16f78..d156483 100644 --- a/src/netbox_contract/filtersets.py +++ b/src/netbox_contract/filtersets.py @@ -1,7 +1,14 @@ from django.db.models import Q from netbox.filtersets import NetBoxModelFilterSet -from .models import Contract, ContractAssignment, Invoice, InvoiceLine, ServiceProvider +from .models import ( + AccountingDimension, + Contract, + ContractAssignment, + Invoice, + InvoiceLine, + ServiceProvider, +) class ContractFilterSet(NetBoxModelFilterSet): @@ -56,3 +63,14 @@ def search(self, queryset, name, value): return queryset.filter( Q(comments__icontains=value) | Q(invoice__name__icontains=value) ) + + +class AccountingDimensionFilterSet(NetBoxModelFilterSet): + class Meta: + model = AccountingDimension + fields = ('name', 'value') + + def search(self, queryset, name, value): + return queryset.filter( + Q(comments__icontains=value) | Q(invoice__name__icontains=value) + ) diff --git a/src/netbox_contract/forms.py b/src/netbox_contract/forms.py index 11d07c6..8be082e 100644 --- a/src/netbox_contract/forms.py +++ b/src/netbox_contract/forms.py @@ -25,6 +25,7 @@ from .constants import SERVICE_PROVIDER_MODELS from .models import ( + AccountingDimension, Contract, ContractAssignment, InternalEntityChoices, @@ -383,7 +384,9 @@ class Meta: class InvoiceLineForm(NetBoxModelForm): invoice = DynamicModelChoiceField(queryset=Invoice.objects.all()) - accounting_dimensions = Dimensions(required=False) + accounting_dimensions = forms.ModelMultipleChoiceField( + queryset=AccountingDimension.objects.all(), required=False + ) def clean(self): super().clean() @@ -404,6 +407,15 @@ def clean(self): 'Sum of invoice line amount greater than invoice amount' ) + # check for duplicate dimensions + dimensions = self.cleaned_data.get('accounting_dimensions') + dimensions_names = [] + for dimension in dimensions: + if dimension.name in dimensions_names: + raise ValidationError('duplicate accounting dimension') + else: + dimensions_names.append(dimension.name) + class Meta: model = InvoiceLine fields = [ @@ -419,6 +431,9 @@ class Meta: class InvoiceLineFilterSetForm(NetBoxModelFilterSetForm): model = InvoiceLine invoice = DynamicModelChoiceField(queryset=Invoice.objects.all()) + accounting_dimensions = DynamicModelMultipleChoiceField( + queryset=AccountingDimension.objects.all() + ) class InvoiceLineImportForm(NetBoxModelImportForm): @@ -427,6 +442,10 @@ class InvoiceLineImportForm(NetBoxModelImportForm): to_field_name='number', help_text='Invoice number', ) + accounting_dimensions = CSVModelChoiceField( + queryset=AccountingDimension.objects.all(), + help_text='accounting dimention in the form name, value', + ) class Meta: model = InvoiceLine @@ -441,7 +460,41 @@ class Meta: class InvoiceLineBulkEditForm(NetBoxModelBulkEditForm): - invoice = DynamicModelMultipleChoiceField( - queryset=Invoice.objects.all(), required=False + invoice = DynamicModelChoiceField(queryset=Invoice.objects.all(), required=False) + accounting_dimensions = DynamicModelMultipleChoiceField( + queryset=AccountingDimension.objects.all(), required=False ) model = InvoiceLine + + +# AccountingDimension + + +class AccountingDimensionForm(NetBoxModelForm): + class Meta: + model = AccountingDimension + fields = [ + 'name', + 'value', + 'comments', + 'tags', + ] + + +class AccountingDimensionFilterSetForm(NetBoxModelFilterSetForm): + model = AccountingDimension + + +class AccountingDimensionImportForm(NetBoxModelImportForm): + class Meta: + model = AccountingDimension + fields = [ + 'name', + 'value', + 'comments', + 'tags', + ] + + +class AccountingDimensionBulkEditForm(NetBoxModelBulkEditForm): + model = AccountingDimension diff --git a/src/netbox_contract/migrations/0029_remove_invoiceline_accounting_dimensions_and_more.py b/src/netbox_contract/migrations/0029_remove_invoiceline_accounting_dimensions_and_more.py new file mode 100644 index 0000000..fa2eb1b --- /dev/null +++ b/src/netbox_contract/migrations/0029_remove_invoiceline_accounting_dimensions_and_more.py @@ -0,0 +1,57 @@ +# Generated by Django 5.0.6 on 2024-07-13 09:43 + +import taggit.managers +import utilities.json +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('extras', '0115_convert_dashboard_widgets'), + ('netbox_contract', '0028_invoiceline_accounting_dimensions'), + ] + + operations = [ + migrations.RemoveField( + model_name='invoiceline', + name='accounting_dimensions', + ), + migrations.CreateModel( + name='AccountingDimension', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, primary_key=True, serialize=False + ), + ), + ('created', models.DateTimeField(auto_now_add=True, null=True)), + ('last_updated', models.DateTimeField(auto_now=True, null=True)), + ( + 'custom_field_data', + models.JSONField( + blank=True, + default=dict, + encoder=utilities.json.CustomFieldJSONEncoder, + ), + ), + ('name', models.CharField(max_length=20)), + ('value', models.CharField(max_length=20)), + ('comments', models.TextField(blank=True)), + ( + 'tags', + taggit.managers.TaggableManager( + through='extras.TaggedItem', to='extras.Tag' + ), + ), + ], + options={ + 'abstract': False, + }, + ), + migrations.AddField( + model_name='invoiceline', + name='accounting_dimensions', + field=models.ManyToManyField(to='netbox_contract.accountingdimension'), + ), + ] diff --git a/src/netbox_contract/migrations/0030_alter_invoiceline_accounting_dimensions.py b/src/netbox_contract/migrations/0030_alter_invoiceline_accounting_dimensions.py new file mode 100644 index 0000000..c13763a --- /dev/null +++ b/src/netbox_contract/migrations/0030_alter_invoiceline_accounting_dimensions.py @@ -0,0 +1,21 @@ +# Generated by Django 5.0.6 on 2024-07-13 12:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('netbox_contract', '0029_remove_invoiceline_accounting_dimensions_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='invoiceline', + name='accounting_dimensions', + field=models.ManyToManyField( + blank=True, + related_name='invoicelines', + to='netbox_contract.accountingdimension', + ), + ), + ] diff --git a/src/netbox_contract/models.py b/src/netbox_contract/models.py index cee53ab..bec507b 100644 --- a/src/netbox_contract/models.py +++ b/src/netbox_contract/models.py @@ -40,6 +40,22 @@ class CurrencyChoices(ChoiceSet): ] +class AccountingDimension(NetBoxModel): + name = models.CharField(max_length=20) + value = models.CharField(max_length=20) + comments = models.TextField(blank=True) + + def get_absolute_url(self): + return reverse('plugins:netbox_contract:accountingdimension', args=[self.pk]) + + @property + def dimension(self): + return ''.join([self.name, ':', self.value]) + + def __str__(self): + return self.dimension + + class ServiceProvider(ContactsMixin, NetBoxModel): name = models.CharField(max_length=100) slug = models.SlugField(max_length=100, unique=True) @@ -186,7 +202,9 @@ class InvoiceLine(NetBoxModel): max_length=3, choices=CurrencyChoices, default=CurrencyChoices.CURRENCY_USD ) amount = models.DecimalField(max_digits=10, decimal_places=2) - accounting_dimensions = models.JSONField(null=True) + accounting_dimensions = models.ManyToManyField( + AccountingDimension, related_name='invoicelines', blank=True + ) comments = models.TextField(blank=True) def get_absolute_url(self): diff --git a/src/netbox_contract/navigation.py b/src/netbox_contract/navigation.py index f1f0ff1..7f21d98 100644 --- a/src/netbox_contract/navigation.py +++ b/src/netbox_contract/navigation.py @@ -30,6 +30,14 @@ ) ] +accountingdimension_buttons = [ + PluginMenuButton( + link='plugins:netbox_contract:accountingdimension_add', + title='Add', + icon_class='mdi mdi-plus-thick', + permissions=['netbox_contract.add_invoice'], + ) +] serviceprovider_buttons = [ PluginMenuButton( @@ -61,6 +69,13 @@ permissions=['netbox_contract.view_invoice'], ) +accounting_dimensions_menu_item = PluginMenuItem( + link='plugins:netbox_contract:accountingdimension_list', + link_text='Accounting dimensions', + buttons=accountingdimension_buttons, + permissions=['netbox_contract.view_invoice'], +) + service_provider_menu_item = PluginMenuItem( link='plugins:netbox_contract:serviceprovider_list', link_text='Service Providers', @@ -77,6 +92,7 @@ contract_menu_item, invoices_menu_item, invoicelines_menu_item, + accounting_dimensions_menu_item, service_provider_menu_item, contract_assignemnt_menu_item, ) diff --git a/src/netbox_contract/search.py b/src/netbox_contract/search.py index c85669c..87e383b 100644 --- a/src/netbox_contract/search.py +++ b/src/netbox_contract/search.py @@ -1,6 +1,6 @@ from netbox.search import SearchIndex -from .models import Contract, Invoice, InvoiceLine, ServiceProvider +from .models import AccountingDimension, Contract, Invoice, InvoiceLine, ServiceProvider class ServiceProviderIndex(SearchIndex): @@ -35,4 +35,18 @@ class InvoiceLineIndex(SearchIndex): ) -indexes = [ServiceProviderIndex, ContractIndex, InvoiceIndex, InvoiceLineIndex] +class AccountingDimensionIndex(SearchIndex): + model = AccountingDimension + fields = ( + ('name', 20), + ('value', 20), + ) + + +indexes = [ + ServiceProviderIndex, + ContractIndex, + InvoiceIndex, + InvoiceLineIndex, + AccountingDimensionIndex, +] diff --git a/src/netbox_contract/tables.py b/src/netbox_contract/tables.py index c6933e3..95ea92b 100644 --- a/src/netbox_contract/tables.py +++ b/src/netbox_contract/tables.py @@ -1,7 +1,14 @@ import django_tables2 as tables from netbox.tables import NetBoxTable, columns -from .models import Contract, ContractAssignment, Invoice, InvoiceLine, ServiceProvider +from .models import ( + AccountingDimension, + Contract, + ContractAssignment, + Invoice, + InvoiceLine, + ServiceProvider, +) class ContractAssignmentListTable(NetBoxTable): @@ -192,6 +199,7 @@ class Meta(NetBoxTable.Meta): class InvoiceLineListTable(NetBoxTable): invoice = tables.Column(linkify=True) + accounting_dimensions = tables.ManyToManyColumn(linkify=True) class Meta(NetBoxTable.Meta): model = InvoiceLine @@ -204,9 +212,26 @@ class Meta(NetBoxTable.Meta): 'comments', ) default_columns = ( + 'pk', 'invoice', 'amount', 'currency', 'accounting_dimensions', 'comments', ) + + +class AccountingDimensionListTable(NetBoxTable): + class Meta(NetBoxTable.Meta): + model = AccountingDimension + fields = ( + 'pk', + 'name', + 'value', + 'comments', + ) + default_columns = ( + 'name', + 'value', + 'comments', + ) diff --git a/src/netbox_contract/templates/netbox_contract/accountingdimension.html b/src/netbox_contract/templates/netbox_contract/accountingdimension.html new file mode 100644 index 0000000..d04d638 --- /dev/null +++ b/src/netbox_contract/templates/netbox_contract/accountingdimension.html @@ -0,0 +1,27 @@ +{% extends 'generic/object.html' %} +{% load plugins %} +{% load render_table from django_tables2 %} + +{% block content %} +
+
+
+
Accounting dimension
+ + + + + + + + + +
name{{ object.name }}
value{{ object.value }}
+
+ {% include 'inc/panels/custom_fields.html' %} + {% include 'inc/panels/tags.html' %} + {% include 'inc/panels/comments.html' %} +
+
+{% plugin_right_page object %} +{% endblock content %} \ No newline at end of file diff --git a/src/netbox_contract/urls.py b/src/netbox_contract/urls.py index bd0d01e..8a028c9 100644 --- a/src/netbox_contract/urls.py +++ b/src/netbox_contract/urls.py @@ -203,4 +203,41 @@ name='invoiceline_changelog', kwargs={'model': models.InvoiceLine}, ), + # AccountingDimension + path( + 'accountingdimension/', + views.AccountingDimensionListView.as_view(), + name='accountingdimension_list', + ), + path( + 'accountingdimension/add/', + views.AccountingDimensionEditView.as_view(), + name='accountingdimension_add', + ), + path( + 'accountingdimension/import/', + views.AccountingDimensionBulkImportView.as_view(), + name='accountingdimension_import', + ), + path( + 'accountingdimension//', + views.AccountingDimensionView.as_view(), + name='accountingdimension', + ), + path( + 'accountingdimension//edit/', + views.AccountingDimensionEditView.as_view(), + name='accountingdimension_edit', + ), + path( + 'accountingdimension//delete/', + views.AccountingDimensionDeleteView.as_view(), + name='accountingdimension_delete', + ), + path( + 'accountingdimension//changelog/', + ObjectChangeLogView.as_view(), + name='accountingdimension_changelog', + kwargs={'model': models.AccountingDimension}, + ), ) diff --git a/src/netbox_contract/views.py b/src/netbox_contract/views.py index a1e67c1..0a833bc 100644 --- a/src/netbox_contract/views.py +++ b/src/netbox_contract/views.py @@ -14,7 +14,14 @@ from utilities.views import register_model_view from . import filtersets, forms, tables -from .models import Contract, ContractAssignment, Invoice, InvoiceLine, ServiceProvider +from .models import ( + AccountingDimension, + Contract, + ContractAssignment, + Invoice, + InvoiceLine, + ServiceProvider, +) plugin_settings = settings.PLUGINS_CONFIG['netbox_contract'] @@ -392,3 +399,45 @@ class InvoiceLineBulkDeleteView(generic.BulkDeleteView): queryset = InvoiceLine.objects.annotate() filterset = filtersets.InvoiceLineFilterSet table = tables.InvoiceLineListTable + + +# Accounting dimension + + +class AccountingDimensionView(generic.ObjectView): + queryset = AccountingDimension.objects.all() + + +class AccountingDimensionListView(generic.ObjectListView): + queryset = AccountingDimension.objects.all() + table = tables.AccountingDimensionListTable + filterset = filtersets.AccountingDimensionFilterSet + filterset_form = forms.AccountingDimensionFilterSetForm + + +class AccountingDimensionEditView(generic.ObjectEditView): + queryset = AccountingDimension.objects.all() + form = forms.AccountingDimensionForm + + +class AccountingDimensionDeleteView(generic.ObjectDeleteView): + queryset = AccountingDimension.objects.all() + + +class AccountingDimensionBulkImportView(generic.BulkImportView): + queryset = AccountingDimension.objects.all() + model_form = forms.AccountingDimensionImportForm + table = tables.AccountingDimensionListTable + + +class AccountingDimensionBulkEditView(generic.BulkEditView): + queryset = AccountingDimension.objects.annotate() + filterset = filtersets.AccountingDimensionFilterSet + table = tables.AccountingDimensionListTable + form = forms.AccountingDimensionBulkEditForm + + +class AccountingDimensionBulkDeleteView(generic.BulkDeleteView): + queryset = AccountingDimension.objects.annotate() + filterset = filtersets.AccountingDimensionFilterSet + table = tables.AccountingDimensionListTable From fd3d4476def36611044c847cae692650f9e60519 Mon Sep 17 00:00:00 2001 From: Marc Lebreuil Date: Tue, 23 Jul 2024 20:08:58 +0000 Subject: [PATCH 5/7] invoice templates Changes to be committed: modified: src/netbox_contract/forms.py new file: src/netbox_contract/migrations/0031_contract_invoice_template_invoice_template.py new file: src/netbox_contract/migrations/0032_alter_invoice_period_end_alter_invoice_period_start_and_more.py modified: src/netbox_contract/models.py modified: src/netbox_contract/views.py --- src/netbox_contract/forms.py | 105 ++++++++++++++---- ...tract_invoice_template_invoice_template.py | 29 +++++ ...end_alter_invoice_period_start_and_more.py | 27 +++++ src/netbox_contract/models.py | 33 +++++- src/netbox_contract/views.py | 1 + 5 files changed, 169 insertions(+), 26 deletions(-) create mode 100644 src/netbox_contract/migrations/0031_contract_invoice_template_invoice_template.py create mode 100644 src/netbox_contract/migrations/0032_alter_invoice_period_end_alter_invoice_period_start_and_more.py diff --git a/src/netbox_contract/forms.py b/src/netbox_contract/forms.py index 8be082e..e35d76f 100644 --- a/src/netbox_contract/forms.py +++ b/src/netbox_contract/forms.py @@ -1,7 +1,7 @@ from django import forms from django.conf import settings from django.contrib.contenttypes.models import ContentType -from django.core.exceptions import ValidationError +from django.core.exceptions import ObjectDoesNotExist, ValidationError from extras.filters import TagFilter from netbox.forms import ( NetBoxModelBulkEditForm, @@ -63,6 +63,9 @@ class ContractForm(NetBoxModelForm): external_partie_object = forms.ModelChoiceField(queryset=None) tenant = DynamicModelChoiceField(queryset=Tenant.objects.all(), required=False) parent = DynamicModelChoiceField(queryset=Contract.objects.all(), required=False) + invoice_template = DynamicModelChoiceField( + queryset=Invoice.objects.filter(template=True), required=False + ) accounting_dimensions = Dimensions(required=False) def __init__(self, *args, **kwargs): @@ -104,11 +107,6 @@ def __init__(self, *args, **kwargs): ].queryset = ServiceProvider.objects.all() self.fields['external_partie_object'].initial = None - # initialize accounting dimentsions widget - # self.fields[ - # 'accounting_dimensions' - # ].widget.attrs['placeholder'] = '{"key": "value"}' - # Initialise fields settings mandatory_fields = plugin_settings.get('mandatory_contract_fields') for field in mandatory_fields: @@ -133,6 +131,7 @@ class Meta: 'initial_term', 'renewal_term', 'currency', + 'invoice_template', 'accounting_dimensions', 'mrc', 'nrc', @@ -181,6 +180,12 @@ class ContractCSVForm(NetBoxModelImportForm): help_text='Contract name', required=False, ) + invoice_template = CSVModelChoiceField( + queryset=Invoice.objects.filter(template=True), + to_field_name='number', + help_text='Invoice template number', + required=False, + ) class Meta: model = Contract @@ -225,6 +230,9 @@ class ContractBulkEditForm(NetBoxModelBulkEditForm): internal_partie = forms.ChoiceField(choices=InternalEntityChoices, required=False) comments = CommentField(required=False) parent = DynamicModelChoiceField(queryset=Contract.objects.all(), required=False) + invoice_template = DynamicModelChoiceField( + queryset=Invoice.objects.filter(template=True), required=False + ) nullable_fields = ('comments',) model = Contract @@ -251,12 +259,76 @@ def __init__(self, *args, **kwargs): if not self.fields[field].required: self.fields[field].widget = forms.HiddenInput() + def clean(self): + super().clean() + + # template checks + if self.cleaned_data['template']: + # Check that there is only one invoice template per contract + contracts = self.cleaned_data['contracts'] + for contract in contracts: + for invoice in contract.invoices.all(): + if invoice.template and invoice.pk != self.instance.pk: + raise ValidationError( + 'Only one invoice template allowed per contract' + ) + + # Prefix the invoice name with _template + self.cleaned_data['number'] = '_template_' + self.cleaned_data['number'] + + def save(self, *args, **kwargs): + is_new = not bool(self.instance.pk) + + instance = super().save(*args, **kwargs) + + if is_new and not self.cleaned_data['template']: + contracts = self.cleaned_data['contracts'] + + for contract in contracts: + try: + template_exists = True + invoice_template = Invoice.objects.get( + template=True, contracts=contract + ) + except ObjectDoesNotExist: + template_exists = False + + if template_exists: + first = True + for line in invoice_template.invoicelines.all(): + dimensions = line.accounting_dimensions.all() + line.pk = None + line.id = None + line._state.adding = True + line.invoice = self.instance + + # adjust the first invoice line amount + amount = self.cleaned_data['amount'] + if ( + first + and amount != invoice_template.total_invoicelines_amount + ): + line.amount = ( + line.amount + + amount + - invoice_template.total_invoicelines_amount + ) + + line.save() + + for dimension in dimensions: + line.accounting_dimensions.add(dimension) + first = False + + return instance + class Meta: model = Invoice fields = ( 'number', 'date', 'contracts', + 'template', 'period_start', 'period_end', 'currency', @@ -293,6 +365,7 @@ class Meta: 'number', 'date', 'contracts', + 'template', 'period_start', 'period_end', 'currency', @@ -390,27 +463,11 @@ class InvoiceLineForm(NetBoxModelForm): def clean(self): super().clean() - amount = self.cleaned_data.get('amount') - invoice = self.cleaned_data.get('invoice') - if self.instance.pk is not None: - if amount and amount > ( - invoice.amount - - invoice.total_invoicelines_amount - + self.instance.amount - ): - raise ValidationError( - 'Sum of invoice line amount greater than invoice amount' - ) - else: - if amount and amount > invoice.amount - invoice.total_invoicelines_amount: - raise ValidationError( - 'Sum of invoice line amount greater than invoice amount' - ) # check for duplicate dimensions - dimensions = self.cleaned_data.get('accounting_dimensions') + accounting_dimensions = self.cleaned_data['accounting_dimensions'] dimensions_names = [] - for dimension in dimensions: + for dimension in accounting_dimensions: if dimension.name in dimensions_names: raise ValidationError('duplicate accounting dimension') else: diff --git a/src/netbox_contract/migrations/0031_contract_invoice_template_invoice_template.py b/src/netbox_contract/migrations/0031_contract_invoice_template_invoice_template.py new file mode 100644 index 0000000..2e4ab2d --- /dev/null +++ b/src/netbox_contract/migrations/0031_contract_invoice_template_invoice_template.py @@ -0,0 +1,29 @@ +# Generated by Django 5.0.6 on 2024-07-16 13:06 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('netbox_contract', '0030_alter_invoiceline_accounting_dimensions'), + ] + + operations = [ + migrations.AddField( + model_name='contract', + name='invoice_template', + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='contract', + to='netbox_contract.invoice', + ), + ), + migrations.AddField( + model_name='invoice', + name='template', + field=models.BooleanField(blank=True, null=True), + ), + ] diff --git a/src/netbox_contract/migrations/0032_alter_invoice_period_end_alter_invoice_period_start_and_more.py b/src/netbox_contract/migrations/0032_alter_invoice_period_end_alter_invoice_period_start_and_more.py new file mode 100644 index 0000000..68e2148 --- /dev/null +++ b/src/netbox_contract/migrations/0032_alter_invoice_period_end_alter_invoice_period_start_and_more.py @@ -0,0 +1,27 @@ +# Generated by Django 5.0.6 on 2024-07-23 19:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('netbox_contract', '0031_contract_invoice_template_invoice_template'), + ] + + operations = [ + migrations.AlterField( + model_name='invoice', + name='period_end', + field=models.DateField(blank=True, null=True), + ), + migrations.AlterField( + model_name='invoice', + name='period_start', + field=models.DateField(blank=True, null=True), + ), + migrations.AlterField( + model_name='invoice', + name='template', + field=models.BooleanField(blank=True, default=False, null=True), + ), + ] diff --git a/src/netbox_contract/models.py b/src/netbox_contract/models.py index bec507b..2e95e44 100644 --- a/src/netbox_contract/models.py +++ b/src/netbox_contract/models.py @@ -1,5 +1,6 @@ from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType +from django.core.exceptions import ValidationError from django.db import models from django.urls import reverse from netbox.models import NetBoxModel @@ -128,6 +129,13 @@ class Contract(NetBoxModel): currency = models.CharField( max_length=3, choices=CurrencyChoices, default=CurrencyChoices.CURRENCY_USD ) + invoice_template = models.ForeignKey( + to='Invoice', + on_delete=models.CASCADE, + related_name='contract', + blank=True, + null=True, + ) accounting_dimensions = models.JSONField(null=True, blank=True) mrc = models.DecimalField( verbose_name='Monthly recuring cost', max_digits=10, decimal_places=2 @@ -161,14 +169,15 @@ def __str__(self): class Invoice(NetBoxModel): number = models.CharField(max_length=100) + template = models.BooleanField(blank=True, null=True, default=False) date = models.DateField(blank=True, null=True) contracts = models.ManyToManyField( Contract, related_name='invoices', blank=True, ) - period_start = models.DateField() - period_end = models.DateField() + period_start = models.DateField(blank=True, null=True) + period_end = models.DateField(blank=True, null=True) currency = models.CharField( max_length=3, choices=CurrencyChoices, default=CurrencyChoices.CURRENCY_USD ) @@ -209,3 +218,23 @@ class InvoiceLine(NetBoxModel): def get_absolute_url(self): return reverse('plugins:netbox_contract:invoiceline', args=[self.pk]) + + def clean(self): + super().clean() + # Check that the sum of the invoice line amount is not greater the invoice amount + amount = self.amount + invoice = self.invoice + is_new = not bool(self.pk) + if is_new: + if amount > (invoice.amount - invoice.total_invoicelines_amount): + raise ValidationError( + 'Sum of invoice line amount greater than invoice amount' + ) + else: + previous_amount = self.__class__.objects.get(pk=self.pk).amount + if amount > ( + invoice.amount - invoice.total_invoicelines_amount + previous_amount + ): + raise ValidationError( + 'Sum of invoice line amount greater than invoice amount' + ) diff --git a/src/netbox_contract/views.py b/src/netbox_contract/views.py index 0a833bc..72b6acf 100644 --- a/src/netbox_contract/views.py +++ b/src/netbox_contract/views.py @@ -226,6 +226,7 @@ def get_extra_context(self, request, instance): contracts_table = tables.ContractListTable(instance.contracts.all()) contracts_table.configure(request) invoicelines_table = tables.InvoiceLineListTable(instance.invoicelines.all()) + invoicelines_table.columns.hide('invoice') invoicelines_table.configure(request) hidden_fields = plugin_settings.get('hidden_invoice_fields') From 5f825db7f066dd34f60635ba9f4dba7ed01bd5a8 Mon Sep 17 00:00:00 2001 From: Marc Lebreuil Date: Wed, 24 Jul 2024 20:41:19 +0000 Subject: [PATCH 6/7] remove invoice template field in netbox_contract --- src/netbox_contract/forms.py | 13 ------------- .../0033_remove_contract_invoice_template.py | 19 +++++++++++++++++++ src/netbox_contract/models.py | 7 ------- 3 files changed, 19 insertions(+), 20 deletions(-) create mode 100644 src/netbox_contract/migrations/0033_remove_contract_invoice_template.py diff --git a/src/netbox_contract/forms.py b/src/netbox_contract/forms.py index e35d76f..64fe1df 100644 --- a/src/netbox_contract/forms.py +++ b/src/netbox_contract/forms.py @@ -63,9 +63,6 @@ class ContractForm(NetBoxModelForm): external_partie_object = forms.ModelChoiceField(queryset=None) tenant = DynamicModelChoiceField(queryset=Tenant.objects.all(), required=False) parent = DynamicModelChoiceField(queryset=Contract.objects.all(), required=False) - invoice_template = DynamicModelChoiceField( - queryset=Invoice.objects.filter(template=True), required=False - ) accounting_dimensions = Dimensions(required=False) def __init__(self, *args, **kwargs): @@ -131,7 +128,6 @@ class Meta: 'initial_term', 'renewal_term', 'currency', - 'invoice_template', 'accounting_dimensions', 'mrc', 'nrc', @@ -180,12 +176,6 @@ class ContractCSVForm(NetBoxModelImportForm): help_text='Contract name', required=False, ) - invoice_template = CSVModelChoiceField( - queryset=Invoice.objects.filter(template=True), - to_field_name='number', - help_text='Invoice template number', - required=False, - ) class Meta: model = Contract @@ -230,9 +220,6 @@ class ContractBulkEditForm(NetBoxModelBulkEditForm): internal_partie = forms.ChoiceField(choices=InternalEntityChoices, required=False) comments = CommentField(required=False) parent = DynamicModelChoiceField(queryset=Contract.objects.all(), required=False) - invoice_template = DynamicModelChoiceField( - queryset=Invoice.objects.filter(template=True), required=False - ) nullable_fields = ('comments',) model = Contract diff --git a/src/netbox_contract/migrations/0033_remove_contract_invoice_template.py b/src/netbox_contract/migrations/0033_remove_contract_invoice_template.py new file mode 100644 index 0000000..e3a179f --- /dev/null +++ b/src/netbox_contract/migrations/0033_remove_contract_invoice_template.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0.6 on 2024-07-24 20:40 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ( + 'netbox_contract', + '0032_alter_invoice_period_end_alter_invoice_period_start_and_more', + ), + ] + + operations = [ + migrations.RemoveField( + model_name='contract', + name='invoice_template', + ), + ] diff --git a/src/netbox_contract/models.py b/src/netbox_contract/models.py index 2e95e44..9e58f5a 100644 --- a/src/netbox_contract/models.py +++ b/src/netbox_contract/models.py @@ -129,13 +129,6 @@ class Contract(NetBoxModel): currency = models.CharField( max_length=3, choices=CurrencyChoices, default=CurrencyChoices.CURRENCY_USD ) - invoice_template = models.ForeignKey( - to='Invoice', - on_delete=models.CASCADE, - related_name='contract', - blank=True, - null=True, - ) accounting_dimensions = models.JSONField(null=True, blank=True) mrc = models.DecimalField( verbose_name='Monthly recuring cost', max_digits=10, decimal_places=2 From f4b99577d74924870239377d9b3bc7c85c26ac7c Mon Sep 17 00:00:00 2001 From: Marc Lebreuil Date: Sun, 28 Jul 2024 18:37:01 +0000 Subject: [PATCH 7/7] update documentation and version --- CHANGELOG.md | 4 ++++ docs/accounting_dimensions.md | 5 +++++ docs/contract.md | 7 +++++++ docs/img/accounting_dimensions.png | Bin 0 -> 25217 bytes docs/img/contract.png | Bin 0 -> 79721 bytes docs/img/contract_linked_objects.png | Bin 0 -> 62572 bytes docs/img/invoice.png | Bin 0 -> 45997 bytes docs/img/invoice_line.png | Bin 0 -> 34439 bytes docs/img/invoice_linked_objects.png | Bin 0 -> 29522 bytes docs/invoice.md | 7 +++++++ docs/invoice_line.md | 5 +++++ mkdocs.yml | 4 ++++ pyproject.toml | 2 +- src/netbox_contract/__init__.py | 2 +- 14 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 docs/accounting_dimensions.md create mode 100644 docs/contract.md create mode 100644 docs/img/accounting_dimensions.png create mode 100644 docs/img/contract.png create mode 100644 docs/img/contract_linked_objects.png create mode 100644 docs/img/invoice.png create mode 100644 docs/img/invoice_line.png create mode 100644 docs/img/invoice_linked_objects.png create mode 100644 docs/invoice.md create mode 100644 docs/invoice_line.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b4fb13..c73efcb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ ## Version 2 +### Version 2.2.0 + +* [140](https://github.com/mlebreuil/netbox-contract/issues/140) Add the "Invoice line" and "Accounting dimension" models. In order to simplify invoices creation, it is possible to selsct one invoice as the template for each contract; Its accounting lines will automatically be copied to the new invoices for the contract. The amount of the first line will be updated so that the sum of the amount for each invoice line match the invoice amount. + ### Version 2.1.2 * [127](https://github.com/mlebreuil/netbox-contract/issues/135) Fix service provider creation issue diff --git a/docs/accounting_dimensions.md b/docs/accounting_dimensions.md new file mode 100644 index 0000000..09b5d7f --- /dev/null +++ b/docs/accounting_dimensions.md @@ -0,0 +1,5 @@ +# Accounting dimensions + +![Accounting dimensions](img/accrounting_dimensions.png "accounting dimensions") + + diff --git a/docs/contract.md b/docs/contract.md new file mode 100644 index 0000000..c36f693 --- /dev/null +++ b/docs/contract.md @@ -0,0 +1,7 @@ +# Contract + +![Contract](img/contract.png "contract") + +Linked objects: + +![Contract linked objects](img/contract_linked_objects.png "contract linked objects") diff --git a/docs/img/accounting_dimensions.png b/docs/img/accounting_dimensions.png new file mode 100644 index 0000000000000000000000000000000000000000..d7504e6f2da5b9b1cc79a0ba47d815d98ddec5f8 GIT binary patch literal 25217 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 ~1_dR3RSO^b1vWhU|Yu zQN{J=w5VGM&EV@*)sD^}`azi>r>;v_%bMBeZYzzogxGXI!46F*G&Q%sSlXuit%wEY zmIZ?p3OEOnun_ooIlWcUZ~RV({hU#Oi9)!i^9<>YKXn{6?bf#qXTzZ>GlU=_YeFn5 z&beyFV13&K9$1LgROUPMVpuTS=F@X;;T^jgmu-QH{)PpeWqlPid04hRc#HG3PW75+ zIr{=vIhYoJ+w)oJtt~5lpzYmzNgSZwLWwdNOEPwoQ%QyJ z2#qyz*BZU<(pj3!sW(O0+AFp2tXtxPKa4>Rc9X9aVpLaL=nvS3O5nD)KFC^(tDPTZ zC@=yL|EUveAq|T>FxlzLutx`9_LapVAz9oXU7}Uq6s=VsY!G`K*gWYCc z=a0Dv-TUFq`YK!EIGEmAGd>nMyG)9|qV-CLp(fy3;@t{C%|eG;;T=PfhvpabkIkxF zBQGqe7DHpGaTM8V?F1JNnK^H?pRuDgJbj-8q57=>e@>IR(Gf>t-c|ndj$_ch+1mRg zvy*!DjlU!)#Ztz69r|2A#4GY6&uVl;#XcW2DXy2iF zxwl#oZ#$?Z;3z<#h`0y>1rDR0c-3$q-#+^QtUrTz|0R^~&_Tl{UfW>JZQJ%trG%%M zDi%EWXV$?NOSmsH5ZL0xPUU(tK)^;$*7fV6VhJ#MVsn-nzvCCv_D5&Ir^66A(|pYU zs9r4#wUROm)(<BzXqA)ZBWkDd*;K$hNX}uxSSwPTFDnmfcDrVFOFYM%hY* zRps3()@9vS&*bHyn`Y#GroDG))s2ES`77N^nA8M$D=z3cNs)+&1A&2u{=7E zt(xoaC;@L0AwV*n-~J0m*g352sK8JBv+T^3htJ-WN^M#x6?5$yfP*mnwOkQ$S1`BY z@6?2Q2$FQkl=laj|C6m!QBxy)!*)40M+WROFW;>kq}g z_x602w4Vf4_l{nc%PK`9E6^=p1c`U;*^X*Gk&tFn-ynM|smuv;rIx2~?BDqk!>9Zk zR^^?|1nh60Pa3{%(8mu1cTn$ZHlq<}+CKrF0%8vq6->}+P@r{ZkB%}?G}?IGd#+{5 z(V*tk>_`Ms(+BXQng7}93@eidzFQ985Z}f7$q(oJ0KlK9@H|hz9>pV94Yza7ZvPu) z$h1}@+|nKK(tB3~fDGl#>PESyS-P|B_T6AwD@jCw7ed;u?WeikEMheLk^;kSvE@awQ}RSjHi&+ol6+1TUP);Bys)#u&F*uF`89< zUR-W*%<{W|CPininMlfF-&dPsWTd|U&$wZlqEo4lT`nfO4#p=Nd*@m@Xz-&hUBq&j zkX~ieWG-*$2u_-eHi|L`JpBGlW%O;(8kfW+=1rd;+gd$Sl5=}gr5dWVia~pm@wP&! zY9^BF6?Ectg%?225uJQgI2U}}y2U*pqmzetA0naWQAdCb!O<_~J=?!INL{fGZ~vM( z+hn5|<4<<3(DIih<}?{D9y$yUCFK<#RB zLL$HSslE+jrIqw&ui2ZoO-=qo;R{uj<>|oL|7O=dzjMD6FvU%SiF~Swx)T#d?X}$# zXcoWSauIu6en*9yMRls%UzA8D^!0xj!wk9dqpQLG$2R`)**{zZHF4E@fqx(ui2lth zur!knsBD5&|EjWK6jG^d#bX6fR(w}dFp(4mkoQ)A5-+k|B;|YmjiA!n&bG)Ht}iBj zis#?xY-n<_-cIlz`1(?jezc3Sp$VH!pNB%z`dfYxvB~|^S1DRtG`9t>U$M0|9&oH> zT8ND=$pTH#;uBNy5=5m9<%T2|?89X5Pezd#sM_Uv;644s3U5DBDXZf&f-M=2wQ2DK zp7{R$&$5QD_$dhWa`L1>VXkUag?%Wuort3gik6+9bxsIcLZY%AkCUwSp*Q~N7mW(0 zp+Q2Qt6rCok?MIM4-poDMe=5k0~qH%0ab3A@#n52(iH~|SN8dY%3RC*qhF@YP$x(f z(x-KXk~?sm#Ae5R82KWZoqhpvIAEUgg84L72^7h>DPQ&M2*S zkc}j_9er-~Le+x4V|KE?WNIetcc-f=WwzYVqiT4RiLq;ItEKD+>wNfku8H~l+<~fl z8^U=-JAI1HQU;%p(@dyN|8f)zmY?GII8g}rDYo*J5Jx2V~F?Ry!lq)<#-}%^a7c-hw)~tl#mEXmRIpF=>xDu56&}}M% zW?W-5iy#_OjuOpgL2kHknoH$dX9y90u0M?=0Bgfids*5PoU{90ifJD+D>m(P z3-OfXP5JHdrbY{EV3sO%ikR^^A5I_HWBm>^z5`AMWQ1*W^Ci8JVDWn>Ej_^p0g@iD z3VdR@UA5pRurcBP6*IhrXYP;uhM=lr(cBU5Lw~-sS;_XV+4{?7&IZ|%SPWolO~N+; zh@P=%ZYP7naJ{UirQY_P2UrFj238ZjhP1=BVZKsi}Laj#mMU5e?xagF10C9 zVFrvj984XCFrw_Tp0508*jh(;7=4}rTS7Qh+!IHGc+rfV)e6_}g|oN(DG z`ttFX2_|S+V$iC9$^UoM*{jX%Gox3Y~6UXr?gbS0~s>OsB!JCEPitvP_t;qpNEz zd-q%(Ub~||7Z@PQhDq2i&D6WLEKT)X2>GZryBL|C z8Xq?C1a`-S+-2fe$;!gie2Ix0<))0D1Z@=u@B_ZZA z`t{nh%R8orQ?ePh4Jb`!FgG$l>e=g>@kG@3YQx~bcn9w`IJF+?RfP-*7$iF7igi|* zH$5%Z!|`eu4S6c(vl$aZ(hk$T3gePH1kBc`*S53vKg^g7l3hY$Qx9X-d|w;KPo69q z(m~$nRAQZFB&^IbAeC3A@3fm^(Q+)ycXX`qtUV4Ft-p>D0a#o>Bc0X8ks(jV>9utW zw(qy*(Z|Wenz8}k4~tLxkS>gUn`tHw`%+4#{nK&RmaiwCC2|Y1^+Bphob@oOazR1i zLRp@^)3H3ui}_A8yXeS}nTY)TrEFSR_ZkA~;9yy*8*!^QeJ`OS)VHbT+1#EMuE}+& zjh3;X9hIA&Xnjn}Yt%m9B{v`V0A)R{MH^-}8wR7txEt={XW!V!HplVV&IG-3njS`H$0hf!y@1(4gOkbW!?D*t2{IPM0_X!f+AM_O> zyrxLB%BOUFY8B- zIHbfseN_BY&Qb86)vX4ewdXpC9bW1CLT8^6m&%9m_W|`?G@y)0zl~nCi#t990@@}g8BsNcTEyjbauMnHV3M!`-Ik5j~hJec%d*A zhRzg#IaabX_kcW_^AxChA;%fTo`B||jSP{6P{_{SSuV%14%8QB1K6YF%O6(SGs8^| zEBu!cfLi-u6z+rN=|DFO+>YUU+j(+l*m0_|c5G=(TxKxuvLWghzK$2aVI++u0QT=& z^%iMO!FV0Jk!G8LD4rUt*A;}qg$*Cr_|V`OBfwR}I4f(yvGN^QOAMv6l^`y9U5`eX zij3AP)1?w2G}@OJFJfr&?spuq&z5rR^Ekkhw4=TcMGk)f0?vQ@>8)QxuZ3T+z!&k$ z|9MvHKj~)wg$w@|F8u!{To~6VF!?41D4QIW8{KX^j23DIID@KDyg+6A+;QlD$4i_n zQqPaP>50S3Uk5~jxQ`~L(~6-ZVnB@_%$@lqKWOb(sQ%@r@SniYA@W=DuJo8N{{>=Q2#{%1ng#%^rve?!*?oNAWOSv(| z?+w}IYGRk}T~1lUKjfNhhF-wuNUQ|ZfLfnl_L029fA+T%+6nKrab{ zPbd65F#_l=(M#C7PAy>TX&sI5)A3m>CbgB@txU1_kwWQ=H<%UsrSI;l?|A%k)9^Ek zDcYB@$3GzRN$YLh7y)t5S5E_ltkn<;vU)$LRNo}r^k0+|KEF#oVte(ccvDcN34{$a z9b;R5vYy`214AL_`75;T9Sl#n95WcGrM#dn@6$I7?CURvY_KTM!9-Cv*Z!bEbxmXc zy-GJA=B0{iAWXwTXB-CrMMm4r2bJGP8exB993g}z7O1A!V(@_Rnb){ZBIUmN zzb0M05-m@9hu%r>NzY^EdnMlNds;}6P}@t|s`z!Xt|wSUVqMsxBshcE;{#gZ$y=+X z4J{Z;WRJ^Gf7pzzn10_TUAL&q7}KrXBKau&)1v>2nFs5Be+5`mQ4_O~8MApfJW>I! z(8zI$9P@Nrm0*L@g$e2I`>ZG4MG`f$bfy{U;O(E%i9Q(T{=r*bZ9%93fF!p2XQ4|$ z=^J-z;OMCqy?()!D!AV(ZC8m)u&+ubqo@FuCRh3U!+=b~kO$X3CD4LcH^zI?0B<%# z&pvu`76p`V{A%z=4KSyjDChkGWWoN#m*~guullHl$!*nUJc_qh{Y78x{D|nBjlPdX zIc+*!`dxPQxzzYNegoRBbKak29ah&&g{7Eo3m=3S%Z=ks^b@gEsOLVZrI;&P{WvPE z+aC_LBKDmClz|2N3eEUbt9AJaj9eIro32z%5Rx3>uv(e-$i`TyR_w^>_i`B8 z(cja*vn6)aAu^z~0?OTJ}PTjn&kXlLUfGHlb8=VAH0jeJQ&u?IM!Jk}D6%bV2(YCO=ru>qegb zAz)k*vX5R1)B{gelC&lTv~|44YBu}SW`=9&cQJbffb6!_0gxRloTaBJfLnXX64jSS z4Tq^9Qjoa-L=a-iFg?JNWGzx!(4I9E7Z%mYrJ6Dw=FiPBPgyyieaiCV9D&p;f(k)z z;V0Sv*r~-y7Rf6`EXkkD0OvH6n-JE42!8PbAN5m&nP2Y+QngE{e}7~|X(?J*Q#q4< z<0ldg!xXe(Jq}Ie*%tuz#yCJZD*sFpFp14}&=}Q5zRb=E_iftz&3Te!CKmTwI=yh~ zFZY*zf`5@&4;|IV$(L3hZF?GW8J5}op|+EgYXeK_C1x96KNin1p0hwgWl{rKk)uwm zn0{*rk7_)!8rP6jvhM8vuClUtEvm@AQ?krP;M~YiCH}8vCKFA2H4Oz%g=4Z;xJn4f z*;aMoMUnYsPrU6uo~Kb)>1P%{C(^ai!x#fA_mKD@cHuGCTq*goUkN6eE^QreC|k*{ z`9ME;Keqae1s$l3oKD9OcgH`@G-1hNh-&v75Oe*EJUk;JCkO%Rr?J#CR)74YN22Q$ zd%g69HNfaizIpqbCQF3X$Ozh356j=hz@@_3Xr0F@qAX?kmM&aC5g|55(GZgt~5b|c<%g#Ipgc%9n`x2Nl;7o7~x$MyO z*Vx<#AOB>zPmRg#ub8R>Vk)`q*T2yM#r+f|lgGaJL+nc~7ye0=!Dv~Sq$)}2z;>}~ zrB4AWfLxz6aY#{jbh4=TmuzU!j=_4vybBAqGB3^pfw5PKUy^z7YB@DY9V-KY_kgnq z9dV3c;=Vl%H}V#uqR#H)C79r`&MJJTes*09>et(;P}#Ton}lOh`>zrXd{&N?Qh%JC zM5tO@NW4fXYs0>*!>;j4s?b5&m$oW8S=7JLQ*^TvfYEmXKXVrfu<_vup--zgR zW-_`O9#^xBt6DQ_u&OXpR@AMX*w`@bqizePW?8qevMaLxMt8Vn?sq96PGK zzhK@5&-Mw%u@-(Y@fCdLGDz~Yz=TbGF51^*WB=@lWGJFKM(j0qg0&*?3%}jx|2GoN z8rpx9XqHXZ1Buxm!rZd^t{Md;=+%t0pGw_C_z8bPl02ScFcvxW1qkibULG&DrUFy% zZT=e6&QjSK|FhLpTHMO=z=U3=Ktad}buXa5z=kIl9Zauh5#)}5{uulu*`@%?_+XRN zCqsnhpDeZ$4Kd69p62iERAO1hG&%-0q zUTaoVuuDrSRpubiO8a$nfD0Ikzww zd~DHq#MG1&@@CVanPWAC5^4DL9n|+dT`GOd%AWBROo9ANiq^79wy}cU5)U49zu1?7fgIck`>_%88Nms z0SQCGtR-*9r*YL-^;13dLU0q$zbiZTT#==KaNotgCm#`HFu5sljBmWsO)x0-9MRO; z43Fg&^V?C}tBoQBriLGw+4RWqIIL6O!GL$vnu|YBFGh{%NUF;ocA_M~ERcs+bfC`! zV1D@vL`v-u7=$GWn@AUN|5@2N08lNUz>Tv7A6lem-Wdph^DGVH6(2D5{yQ)#dTELN z(4p>0Wk7vIS&i7DpUzBpS%;S+3M^Y4s%;OKYl<5!hefl-7^ys$KbPWG-6C%E`LP3V z{ix}T%V9Pm0M3CJ4fXDp1p%%pq2e1?9#5M!sfZB zH1fQ=P3ajtuNq_vDd9u{;OGGOmee2;!6b3l&RK>S$FWxKlxJh#kie_CJM>Ik&6d5^ zF1`0l8{XE4eQ>N2?WHnDx)Lyn4y3(3dMwemWKjhVZ&j&lbYWWcBsro)AK`p|q5zmR zb!PT#`PndsjG3Ei@uy}Ea_B1!vRSA?at^pce^!9MloOVs~a@qq^Y ztK!phq@axRt7GyDB0&dqYFl}!Itt^Y3H#sm9*k*@sCqjiZT`#rqs%y+&&Zk^!c?)t zZ{4Q<;%9v^e*vwkOYKR$DLgG2d0^!3eikVj>!yZ|@{S%>7jz@(&=>Aoz}{Vknv}`j z{BkMUM>uGv8?(m0Qe;VyN(hVET2BqISCczlqy~ze@}QgdQpUWaWds%u9?+C2z(m~f zHsiy-_u!wsO%Rk56d3}zoU!opUol+-O1rXA5^h^k{*Z61JyOa4V8^4~Vra*OtS(o+ zL+|#s=;|XmMB;0J_h|ltxovNV0omtQ*(H#aB~u!VXWy+%FQ5#S|ESOq)c(vh&k{iR z=F}5a#GTQg{-~S%U0pbQ4_?~6$GLdlVyV`a7Antj>`F8*v>^0xM!*E2JE?(|7syqQ zz*V0_Q0!ZLaY#02lSPQ?y*XjZ;DC^G2tn~}4pT>}t(yxyqeJ>tExRHPj1}e5v89F% z*^hu;?4|*YRrv}=qzu2G-LM`=LgC7Gx9R9k&aYBxZdLZ_)Dh-Jyw7%4V*XFUPkYcq zgJ;LkpP@Fsn+F!QyPFUL{D%WuT*&{m;{3Ot^S}L^f8Gs2F8|O$|Fab*;x8A?fG9!i z`%6w~tskSLeHE?#I>UQiup$A{SMS`e&=yk3=_I@Jz-7n29oin_E=a!h@Bi6j1Bf>B zIxLdK4DAWtalxiX*Ka*H9|4?XlfpKcO_A2Qd+Z?(QU`%{MqEJa`22sg+8CU_ub@nYk;O9(unXwd{=&0Za_ad;)fRVJny-r& za>DI`5v4oSXU+w5$QWUlBv2q|E%<07-)*=}D;IpMEpC<=5L8kkmMrxF(^B9Sw+n-w z(QyH?QDlpu-&tzxJ0rpBBqY-r18mO>4e94Sin5_&Dv^4}K|3Vcz{u)w$6{&Q`>ah3 z7;W6vA4+`q=6h-1)nSu*t6f|vuE(sCe#8*Lp;U&wMVI0G?N|D40};T1c`q7UKezwz_+%$7CBm zVs*tPt0w-EDz_izBBLwSPZXD49ai;e!|ttFrRqqp)xW9TD?QWXjlrEB<#2u74=?rp z)J|}+I(_EK%3B`00`R`#(MXJ_KZ7QgWg8z96IRkY`w}aFxKIrJXxAw? zNiC-YtEF@}%xU+-F<295IISBabP8(Pk+M&4qufPe5K71Mo69SODOAS=Ok?!ZQ{l{! zFFPT>c8kYuFD!qZY7-!YS4H1oHJUX)Y0scYLRuVv(s?~OJ+#G5Z&wC7vC z>GRH$ByuS8ai5Vz7f6ruz~9rN9484t#d{8pWaF29Mn64<=c*Uq=@>@ewh5dzx!c~>5mQmH-?zumDphT?m`>$sYw{0^zH0S7+F6O7BbJPbS9j@ z^Z_`*;t(rt}N3#QP0RRO9>V zxcf+?ioo}vMEM?|VM%_X%)+%NUv(Z{9fLzgMeXB&%_xU+JJm0HtGVsWr>o?|yQeos8{2 zF5Y8YXTj9mGImK-^B>dFh{z8W`Hz9O1qxgl_O+`G>$H6I?u4e66XzEcn`@XhTP>!X zewg=__^>T|LY7Y_eCzHK=S;M4m81tvSENsY+hvG7=(Iv-&pmqtA3FeRgTo-kkSye= zCBFS)R!oWD{@94%d1}FdFJs4dPZ(j-d|p@-p>66moRnu@lS(ajPQE3rA55rxVAc|w z(i>MNi}#1Y!yXS69caUPvdDwy(uuEuOAo39j!I(<$$<&1yEY{5>Ye3MSSA!+)^sYsaPTj0?wmNS`x?;7v>owu60S4W* zJ@H>mx8juOP$9Xj7o|Ff{%Q=}yX1aUu!-Pl+_6b644W2%9jMgb%oxQ~Gu(6v^$rl$hWVdgu{3KhsuqrIY5#<& zG>--t&s#7mQ#-P}^MjcZ?}0`3o?*u$c&P+@1%hyWp^257r8L*t_m$4XRVK*411Bs+4F$h zjcNzhVMnAUR4Eo;E2St)wI4ltB-V$1qaaOEcw_dVJ1Zt{b_r%%EbDOCqgX@#8=Tbf z5{-DY_k=6qmBMYxv+k%wCn9b=ClS_OJn6UAH)Zb8CK!rrPJZThP1^_J3a>?2-jgqJ z=g>_Sn91+)+&6{UPtfUH3-aA~M6&WW)EH4HhU$^I@0~jD1(isS+QvsUdBOoqkRM&&k;D^)!7c!^2DW}A~1{-w_uHW zE5Ct6tPLf%l0Cfnnq4I9Zjlo8CM{7%cQaU+@uB>bi-Mx_B`pmEv~#8xv?L&L`KdN4 zmm0FMcc0I(_flBlTL5L^Gm6BEZ5BTZ$J0a-M%Hn{W@lP2>^jF^-L*U|Ona7mTTe|g z`B6dQ4CQod)2P8p>Wy0T+2w56=g6}a z?Af%*GVUmf3Kk(CbNHECbs%`!AX+61u&!<(a(*%F?qpWB&a9VTHf z*{Oak6(x6&dQqr=0uk`Fzz`Fa*Q)2Lxf2QdtdBZ~=-?Rcq|WtAZ>ly^h_bwi8Z@7| zH57jXJG>(@3Tv~uu3RtmyHWn7ky6KQREwMMHqt*i=st-pzfoq7eP>i^Ojn??cO}So zGK|23`J|~XVe(Www#<0o`yQm_&bG;((J5!LE{fan!d-jt4g00YUy*OBIomz&FOKcZW*hUu7DNl^6kD$pf}~Ua_Hk5jR$TZ$8-@ zt{_A)PxLg-mUGIA8=zOuP|vR3n!o11OP|UP3Me2^2uz7Oz0Y1cB(K-~qVmO?s)8|q zn3?fC4b~7iU5c?6>KWeGWD|1|qSlq>J?t6hgkh=Df6{9&FbYj_P~6nXSk29zI6a!O zd1+#HaOjhegi*6E-AQ58msujcU+tT7qNbu#J|kc@k^-9pKUO)^nz=lBJDkM-9Nh=2 zw6sXLyA1V0@qo09d#JjqaW}vo>s~9v;}Yv)wkBIhVKc@easle)2&Ijm${ZQOcSj*w zC|H2jD={_C?ilgwSB3m*Mn9UDENEbRoSZD^@%?hIw^FEq-*rZ|~?)F51(#6fXY&ri-si1>2N3V(; z>y?cT%#wsYzepuGU$xRE&M0ol-HUAjYuV#51oeB#=&3^Iy|y8wO0*N6)?eUS zm;*-KJ8p@>;;Rb7fQxNk^>XL>*>Z`>4Oy{(gOhl3&q@)Cq^0LJ1*mzR@)37eT_%~0 z!;?8hd>X;*@Arc9Nr&+=uav%yetxk@E5C0q`C0m$ ziI#iTXPUvL!ok_5vdMe%XyQgUVab47?ef9YVX(agfpvZ?q?G|t$4lK}UngPRVrpQg z&;9tZ=Nvw7-A9=_-ruYcx-jeUsisp8v3tsVDEA{t{YGF&W@?aAFd3>}oqwa~<}VT9 zK&pWwvXNioSm#(H_i^j!>*61^4#DRKHjaDkAH<&FvKGpcV@fN!c#q>QjZRb$ZV(>? zUd!wHJ%RQ`SLVwKD@jN70E3dimbl4yYfc!TczBx#o07Ai#_Z<$9||}v~oS^teSS7QoGYP^hb|;qCVN7h42Qg zB^KyzNZfP^)I{&y#&Ox-1b)@XtFZL6H;Dw^`VTj%urCp!c4)xyygvLGw8pdk1o+>h zWr?uW*YJZMr&M9UnD*!qb@>1N37d(D__HET2y%4F%1`~Qpd`#WSbdkt3`~QRbgO<~ zUZj_eVO+c@XU;G~GG;VUtG3{9csRkbqL-q}Btwe5$~(rm?3uIk^(nblgRL}hCd)e} zrii)dM0(1g?CfNQJW{y8GNiYQYeqQIvuJdOqCe0$RucH$`^Zd)F@U$)Y0@o2iwq4N z?uxUNw83Fk>o8=9j0g8`*S;PlcPRHSl z;;xkiQ`B3s?A59d&kPMXRHgv!)f5DLiq1oZvHRe0H!b>w&5H(oZE%R)s{!alVlvx| z5tOfdvHm0LS&G_`R@aqeC<`oIEw;C)!{|k1JX6*knYn^AP|#ABKt7kHUoJtx6I+v< z8SlKgJNU99_o2Uf*BoBpGI%o^HR)Wy9#xVYfAF5Zk%J&zs?$iQGS}{s-N3}yv(Sp- z+Ib3`RRDh(ud2(*<`gyA6%)&5{UXUt6-tq;9J)s0%bQvIzcUPfPCpnaSogV1ppuyP zH-JP_untr2+?kZkl+1lfw_J8+nW&1ijB(LPF|Dunx3bGQI7?vJI(yeU{KK&PY8XE< z-imQ&IMuNH8#HRA>`SW2vvQJ4(Pt1jPpU^Tx*0Y9!Es#}wxy}0{zl)R( zqi2_~y~f`m`K9sYm~2+V=Dy%4bm&Yf)gB+QSQL4+fDC)EKvPYaLD+8r)}Mn(!#L%` zm6wfnYCpT#+Kn$wx{p(pdX1;(3JzYj^oZASh9w1CN5L;cYXs_AU%tp2B z-O>B#w|^_d1hF%`XYb6sGW!_m&>MIS$HD}yt2L_mp8SRGWz%>~rNl6uOd8i3#c-Z> z(!zo&k;xQ7KTPl6m|@=QzaKT72GLf~*J#a|-y99ktJl;1?wZZ6^zh21(bg=^T9#1f zAH;*-(;Bn%?rN1bUo=3xC93=;F25I2qDhFnH8Qca3v zlLuC`wG)`O|f z(Om5+jJ{s1IYKrfjD8HZUDGH7EY<9$Iu5c>XB*`M$XW7>JJ*USNyrsn{1``*fsS&c zS?2fTtu?K6g}1LKR)`k2*W2mA_(vMvPPZ{^)`dlEJSp0Ep09u z_e*j%^}V}#AAEx@#tU%1S$oh`zYwnK+52M95y9i%LC;Jk^@G-+IQyfiNjc!Cv+Rj` z<&3GP$;+mVUynd$eOeAl@av`6pot$;IyI>nCumtO z{aZ@q1ccj-Wwdcq|5MH04`N!(R&!3SV9GF2AeQ*G8GWa*r%}DGNP8}3_SN2{87TgG zYunj9N7e#lrCe!J)&>+$7XmzzGh%GYP{Y9+$7|i)QBp)4MXVy zZ7+ZeCE^?^F6FATJf6$$7-$!sDx1w1Y|PdykwXmlYcs;P%a@NXz^++wP&+e6wZ-TJ zh<-*`XsUH;gjU5lPv4&9Sl+b^&l!!9QI1A=bG80*!$d*ou*zR+HJPKOl@OL$P)vXM z0Nq-rPx-v`!TqQpJ@dHQu-#&~P|(0-kHz40qhR>3li3mDphGoy&kXx++h@p7cq=+& zeaiC~tTx_oqX99jwALzkXVKWG?b>jG;v}PdB4m7vN^%go-rv{&3I1w-H#vYt#B*hX z!u8DOzJRfbMloq73+z3+Z3tXKHPH*ptDNZq$@{j465agUik$R9&Q>+|R+TBKMO@Ny zRX04>_Kk0TE*15Bb{gi8Byk%lHn>!k2)KoYi-9Dohh4hty+L(Zj`tsnyRl01@_%Lz z6g) zQ?Xb@?1(y>ps5z!An((k4Gx1@=Vbt4K>Ck|F-B_thei4Qnr`grrmD$@3=>)njooB@ zm$I@h&`$Y1ax!JRr?5^)!+_+DX6&Mq|Js7lCV4H((byei1F}HzZPKej0XHeP$ggq! zoNj@LX9-HND+#spbRL!b!6#QFR!yyCK&0{;Si2RxPz6~K4f$Qfv&QxG+uUle*x<~X z)E_WX^K+)@*tTGjDVEqbn)jDY-h7TG_9Wkwpaeep`7vvKJ31>g!jWDxOj9|db4#P8 znL!-S`S@IS<8H{4y%aVjwQQb?6xR9tq6J>-KE=CaR?9@?oS*X5C>2`W+=Iv2QZxz8 zB};?ciTZvLLzRJ7Xi{>6CtE6ZGZp8C`SI~J#R!Cl;a!DeDCKEp;}e^O^K>XN-Pr4)ID7V-w1|7(@eQQsu` zGx)R}xRHE{ey`G>{fWef;y0X`^8o{Oxl%BtwT?$c zWtSgeWp%P9Px$%n3H^XaZi~v`AbptBi-r>rk$r95V~Ko8n+>Q%sf-~_27}FF zm^-{_QN7q({e^8-pq-;{$|=WAM*+6ErNtDb)y3)1{=}hrvo>o+_}>>Zmks=`?N~vP zVL6ALyQag_;682Z4Cw*K72qg`E-e*Cn)E`8RXSlV8uc(! z0dDg<#tZd)#gd6^KAVDANRct3L6;7!E}){IPPR%x z&xK<*#1dio#^XA8tvJnsHp~XA8pl&W6cSrFGB)so_%4y={@W|yZxKt_$;@rrIO#(?SI@nSh`A=tlyl!=Lkh;NKA5q5r`-)M8F9>z0rZKvPtETa$ z(I9Jr7Lyvt!x-q-rCcbmNl-g7y{zqJ=rY2Ua-K1q0_OYW$?;p}d|S*0QtWOy`$@eF zGsW2#b?SA4d#;@gMR;ozagbaN9*eU6OLyZ&kgxG3eDWW15|3|mFI>(Lsr9}89R;hN zBvgDND+wsgc4CvLlIjFjD9#LaJQA!21CxosWL>DTd}VfG5?-pEcu`56f1qkbrN_fM zXQu9E!~Q8TsNdgQVQt^4YiQs`eNOW9prBYv4gNAHtWCtLa%(Je*o`VtDJ4d-^wDQG zLw>QEc$>t$(n^W`H1|ub_wfOnTucpm_aUv6af-qibl9+5uloC^nU({?94pEhx|1f} zQD+d4kCdI;Vlx`r68@P=(rbK@%0|IDr#+S`&};k*LfvkJATa#WSZF`|8dt-G|OVLWV(pD$M?Pe5Wq@4&2wu$l#^g`wyksKL-ocROiTjA|f5_2)S?< zsNk#5dCj6{YFOPZe*}AJ!LQy&A5bzl9}a%=1{pk@==+~ILBQs;*+4sV_c7C?28#>V z*&ivAw0i5YlpU9EOcCiUo~6UXFAaJ6a7&6Nkvw{+De9b^(j)=Juujv?XVtxNSE|i# ze`fs^kyeo>U!s^#r})P!_?xJv0oE<+p;tzeD0xwg9=|*fhRHW77GZViEA05>XjD|6qBX=pYoK6n{ty`ZfuQs6TdhJuyW{CN?AW= zMx*SX_Sg4hfB0WBSaH~T&$*5o-LLuYs(b!VoZ+-RW_DTbwOg$HE6TDR+P|@GO<(Qr zJ(u%T&9lOHD=)QFfBmtJEjLQ?EVzUJ;wx+EiK&XyYj>8e+&1G->Ca}#Uq9Bm?fnay6neVy;&>z?{jMI_`haZ#h$Di zyPS4@Yc47&kK4EJ`x*X{|2vtv{(Wmus+0@OuQ_QKUHj>U{Fi&nV}q6i%gbd2|K|Md z2=XvPOlfoXh`9{fAYFlCTZ>0S{;_<8{EF>-R$K{zkLaO zYkm4@WZ2SBeYPd6_3QVadwnJEwPD=k&?(u_hT!WmxrDCwC+y~TtvOyXKkVZ9+3V-6 z<=gw{`l`c;E0+f=ey;e>_goQdu?6r#>vOXnE`i%^#n=_U82G1{Wkd zR2!cPefvH0^fk87^CzcWTC&e?o${~CC-_GbUnpB+|C+w(|d_hqr{ zXpIHA`g&m>Yk&T_wbQKimeu0NY!j!?)LfeWGSB$$-|&3l(q(^l*zJDd!vZ#{RO099 zRm#h^7+-jC$0@5c>2|W*PW7!T*DZ)S>BPG5PuxoFYhqoSYAmA>PDHdXEIRUO^CLGQi<%w23$-^?eU zb>SBKTLsIPk-K{LKLuOu@t|9`?{(eU>(R!Ly4~dUv9^zX8=bu+ZNKr^0<(X!ot}T*TI0U?TkZ!7NVo@LRHz&p1*>z~z9jxX zy{iaT4o1>tE?Sqz+&OV?&4xQX*Cdly8|*7mUFlrG;5qr9{o~9D U$KPFJjsltC>FVdQ&MBb@0N@c7?EnA( literal 0 HcmV?d00001 diff --git a/docs/img/contract_linked_objects.png b/docs/img/contract_linked_objects.png new file mode 100644 index 0000000000000000000000000000000000000000..9a55fd2eed46c464e4404c69b883e10fba19b41f GIT binary patch literal 62572 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 literal 0 HcmV?d00001 diff --git a/docs/img/invoice_linked_objects.png b/docs/img/invoice_linked_objects.png new file mode 100644 index 0000000000000000000000000000000000000000..c1503498324416662b90bbb6eec84624797c8f38 GIT binary patch literal 29522 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 literal 0 HcmV?d00001 diff --git a/docs/invoice.md b/docs/invoice.md new file mode 100644 index 0000000..21ca721 --- /dev/null +++ b/docs/invoice.md @@ -0,0 +1,7 @@ +# Invoice + +![Invoice](img/invoice.png "invoice") + +Linked objects: + +![Invoice linked objects](img/invoice_linked_objects.png "invoice linked objects") diff --git a/docs/invoice_line.md b/docs/invoice_line.md new file mode 100644 index 0000000..89a3960 --- /dev/null +++ b/docs/invoice_line.md @@ -0,0 +1,5 @@ +# Invoice line + +![Invoice line](img/invoice_line.png "invoice line") + + diff --git a/mkdocs.yml b/mkdocs.yml index d5c8af6..d916d2c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -4,6 +4,10 @@ repo_url: https://github.com/mlebreuil/netbox-contract repo_name: netbox-contract nav: - Home: index.md + - Contract: contract.md + - Invoice: invoice.md + - Invoice line: invoice_line.md + - Accounting dimensions: accounting_dimensions.md - Contributing: contributing.md - Changelog: changelog.md theme: diff --git a/pyproject.toml b/pyproject.toml index a3c256b..746b688 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "netbox-contract" -version = "2.1.3" +version = "2.2.0" authors = [ { name="Marc Lebreuil", email="marc@famillelebreuil.net" }, ] diff --git a/src/netbox_contract/__init__.py b/src/netbox_contract/__init__.py index ce920fa..581a217 100644 --- a/src/netbox_contract/__init__.py +++ b/src/netbox_contract/__init__.py @@ -5,7 +5,7 @@ class ContractsConfig(PluginConfig): name = 'netbox_contract' verbose_name = 'Netbox contract' description = 'Contract management plugin for Netbox' - version = '2.1.3' + version = '2.2.0' author = 'Marc Lebreuil' author_email = 'marc@famillelebreuil.net' base_url = 'contracts'