From 31c58409e1ebfaeea559bbdf2f4f9bb6e1c1d6e0 Mon Sep 17 00:00:00 2001 From: Sergio Saucedo Date: Mon, 24 Jan 2022 02:36:27 -0600 Subject: [PATCH 01/17] Set install_date default value as empty string --- netbox/circuits/tables.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/netbox/circuits/tables.py b/netbox/circuits/tables.py index 889792be3..ef34fb908 100644 --- a/netbox/circuits/tables.py +++ b/netbox/circuits/tables.py @@ -140,6 +140,9 @@ class CircuitTable(BaseTable): template_code=CIRCUITTERMINATION_LINK, verbose_name='Side Z' ) + install_date = tables.DateColumn( + default='' + ) commit_rate = CommitRateColumn() comments = MarkdownColumn() tags = TagColumn( From 311ddf82c5e18556e0cfb6cf7d2f3a372d916510 Mon Sep 17 00:00:00 2001 From: Johannes Erwerle Date: Tue, 8 Feb 2022 08:03:48 +0100 Subject: [PATCH 02/17] Fixes #8577: Contact assignment amounts not shown during contact global search --- netbox/netbox/constants.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/netbox/netbox/constants.py b/netbox/netbox/constants.py index be5f12980..e29da6617 100644 --- a/netbox/netbox/constants.py +++ b/netbox/netbox/constants.py @@ -18,7 +18,7 @@ from ipam.filtersets import ( from ipam.models import Aggregate, ASN, IPAddress, Prefix, VLAN, VRF from ipam.tables import AggregateTable, ASNTable, IPAddressTable, PrefixTable, VLANTable, VRFTable from tenancy.filtersets import ContactFilterSet, TenantFilterSet -from tenancy.models import Contact, Tenant +from tenancy.models import Contact, Tenant, ContactAssignment from tenancy.tables import ContactTable, TenantTable from utilities.utils import count_related from virtualization.filtersets import ClusterFilterSet, VirtualMachineFilterSet @@ -186,7 +186,7 @@ SEARCH_TYPES = OrderedDict(( 'url': 'tenancy:tenant_list', }), ('contact', { - 'queryset': Contact.objects.prefetch_related('group', 'assignments'), + 'queryset': Contact.objects.prefetch_related('group', 'assignments').annotate(assignment_count=count_related(ContactAssignment, 'contact')), 'filterset': ContactFilterSet, 'table': ContactTable, 'url': 'tenancy:contact_list', From 8fc605037af858133dfcbdb39d7b5227915646ba Mon Sep 17 00:00:00 2001 From: Sergio Saucedo Date: Tue, 8 Feb 2022 01:26:26 -0600 Subject: [PATCH 03/17] Implement custom DateColumn improving null values handling --- netbox/circuits/tables.py | 3 --- netbox/utilities/tables.py | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/netbox/circuits/tables.py b/netbox/circuits/tables.py index ef34fb908..889792be3 100644 --- a/netbox/circuits/tables.py +++ b/netbox/circuits/tables.py @@ -140,9 +140,6 @@ class CircuitTable(BaseTable): template_code=CIRCUITTERMINATION_LINK, verbose_name='Side Z' ) - install_date = tables.DateColumn( - default='' - ) commit_rate = CommitRateColumn() comments = MarkdownColumn() tags = TagColumn( diff --git a/netbox/utilities/tables.py b/netbox/utilities/tables.py index c640e0e85..8a54b82d9 100644 --- a/netbox/utilities/tables.py +++ b/netbox/utilities/tables.py @@ -4,10 +4,12 @@ from django.contrib.auth.models import AnonymousUser from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from django.core.exceptions import FieldDoesNotExist +from django.db.models import DateField from django.db.models.fields.related import RelatedField from django.urls import reverse from django.utils.safestring import mark_safe from django_tables2 import RequestConfig +from django_tables2.columns import library from django_tables2.data import TableQuerysetData from django_tables2.utils import Accessor @@ -205,6 +207,23 @@ class TemplateColumn(tables.TemplateColumn): return ret +@library.register +class DateColumn(tables.DateColumn): + """ + Overrides the default implementation of DateColumn to better handle null values, returning a default value for + tables and null when exporting data. It is registered in the tables library to use this class instead of the + default, making this behavior consistent in all fields of type DateField. + """ + + def value(self, value): + return value + + @classmethod + def from_field(cls, field, **kwargs): + if isinstance(field, DateField): + return cls(**kwargs) + + class ButtonsColumn(tables.TemplateColumn): """ Render edit, delete, and changelog buttons for an object. From e1ef911d4043c6c03895638844e6e46702729a64 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Fri, 11 Feb 2022 15:22:50 -0500 Subject: [PATCH 04/17] #8564: Fix deepmerge logic to allow nullifying dicts --- netbox/utilities/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/utilities/utils.py b/netbox/utilities/utils.py index 31e57cd69..b1817b568 100644 --- a/netbox/utilities/utils.py +++ b/netbox/utilities/utils.py @@ -183,7 +183,7 @@ def deepmerge(original, new): """ merged = OrderedDict(original) for key, val in new.items(): - if key in original and isinstance(original[key], dict) and isinstance(val, dict): + if key in original and isinstance(original[key], dict) and val and isinstance(val, dict): merged[key] = deepmerge(original[key], val) else: merged[key] = val From f11ad99983b059b7bc97cae0d696343780f01bdc Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Fri, 11 Feb 2022 15:34:41 -0500 Subject: [PATCH 05/17] Fixes #8611: Fix bulk editing for certain custom link, webhook, and journal entry fields --- docs/release-notes/version-3.1.md | 1 + netbox/extras/forms/bulk_edit.py | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index da0a34987..743f957c1 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -15,6 +15,7 @@ * [#8564](https://github.com/netbox-community/netbox/issues/8564) - Fix errant table configuration key `available_columns` * [#8578](https://github.com/netbox-community/netbox/issues/8578) - Object change log tables should honor user's configured preferences * [#8604](https://github.com/netbox-community/netbox/issues/8604) - Fix tag filter on config context list filter form +* [#8611](https://github.com/netbox-community/netbox/issues/8611) - Fix bulk editing for certain custom link, webhook, and journal entry fields --- diff --git a/netbox/extras/forms/bulk_edit.py b/netbox/extras/forms/bulk_edit.py index 45b48e9a2..5bae76a94 100644 --- a/netbox/extras/forms/bulk_edit.py +++ b/netbox/extras/forms/bulk_edit.py @@ -4,7 +4,9 @@ from django.contrib.contenttypes.models import ContentType from extras.choices import * from extras.models import * from extras.utils import FeatureQuery -from utilities.forms import BulkEditForm, BulkEditNullBooleanSelect, ColorField, ContentTypeChoiceField, StaticSelect +from utilities.forms import ( + add_blank_choice, BulkEditForm, BulkEditNullBooleanSelect, ColorField, ContentTypeChoiceField, StaticSelect, +) __all__ = ( 'ConfigContextBulkEditForm', @@ -55,7 +57,7 @@ class CustomLinkBulkEditForm(BulkEditForm): required=False ) button_class = forms.ChoiceField( - choices=CustomLinkButtonClassChoices, + choices=add_blank_choice(CustomLinkButtonClassChoices), required=False, widget=StaticSelect() ) @@ -117,21 +119,25 @@ class WebhookBulkEditForm(BulkEditForm): widget=BulkEditNullBooleanSelect() ) http_method = forms.ChoiceField( - choices=WebhookHttpMethodChoices, - required=False + choices=add_blank_choice(WebhookHttpMethodChoices), + required=False, + label='HTTP method' ) payload_url = forms.CharField( - required=False + required=False, + label='Payload URL' ) ssl_verification = forms.NullBooleanField( required=False, - widget=BulkEditNullBooleanSelect() + widget=BulkEditNullBooleanSelect(), + label='SSL verification' ) secret = forms.CharField( required=False ) ca_file_path = forms.CharField( - required=False + required=False, + label='CA file path' ) class Meta: @@ -185,7 +191,7 @@ class JournalEntryBulkEditForm(BulkEditForm): widget=forms.MultipleHiddenInput ) kind = forms.ChoiceField( - choices=JournalEntryKindChoices, + choices=add_blank_choice(JournalEntryKindChoices), required=False ) comments = forms.CharField( From 6e38f7e532e137819f1cf77bf4b6604fc8736332 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Fri, 11 Feb 2022 16:00:01 -0500 Subject: [PATCH 06/17] Changelog for #8577 --- docs/release-notes/version-3.1.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 743f957c1..1d6999bef 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -13,6 +13,7 @@ * [#8548](https://github.com/netbox-community/netbox/issues/8548) - Fix display of VC members when position is zero * [#8561](https://github.com/netbox-community/netbox/issues/8561) - Include option to connect a rear port to a console port * [#8564](https://github.com/netbox-community/netbox/issues/8564) - Fix errant table configuration key `available_columns` +* [#8577](https://github.com/netbox-community/netbox/issues/8577) - Show contact assignment counts in global search results * [#8578](https://github.com/netbox-community/netbox/issues/8578) - Object change log tables should honor user's configured preferences * [#8604](https://github.com/netbox-community/netbox/issues/8604) - Fix tag filter on config context list filter form * [#8611](https://github.com/netbox-community/netbox/issues/8611) - Fix bulk editing for certain custom link, webhook, and journal entry fields From d1b1a457255af585d65ccef5baf4a8e9e83e675c Mon Sep 17 00:00:00 2001 From: Jonathon Reinhart Date: Sun, 13 Feb 2022 03:00:57 -0500 Subject: [PATCH 07/17] Enable tab completion in nbshell --- netbox/extras/management/commands/nbshell.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/netbox/extras/management/commands/nbshell.py b/netbox/extras/management/commands/nbshell.py index 4c11d8821..07f943d15 100644 --- a/netbox/extras/management/commands/nbshell.py +++ b/netbox/extras/management/commands/nbshell.py @@ -70,10 +70,23 @@ class Command(BaseCommand): return namespace def handle(self, **options): + namespace = self.get_namespace() + # If Python code has been passed, execute it and exit. if options['command']: - exec(options['command'], self.get_namespace()) + exec(options['command'], namespace) return - shell = code.interact(banner=BANNER_TEXT, local=self.get_namespace()) + # Try to enable tab-complete + try: + import readline + import rlcompleter + except ModuleNotFoundError: + pass + else: + readline.set_completer(rlcompleter.Completer(namespace).complete) + readline.parse_and_bind('tab: complete') + + # Run interactive shell + shell = code.interact(banner=BANNER_TEXT, local=namespace) return shell From 611f1b57dde48ce0abac9d39b3f9f5a2423a8f7d Mon Sep 17 00:00:00 2001 From: Sergio Saucedo Date: Mon, 14 Feb 2022 00:44:16 -0600 Subject: [PATCH 08/17] Implement custom DateTimeColumn improving null values handling --- netbox/utilities/tables.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/netbox/utilities/tables.py b/netbox/utilities/tables.py index 8a54b82d9..6d88ec91d 100644 --- a/netbox/utilities/tables.py +++ b/netbox/utilities/tables.py @@ -4,10 +4,11 @@ from django.contrib.auth.models import AnonymousUser from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from django.core.exceptions import FieldDoesNotExist -from django.db.models import DateField +from django.db.models import DateField, DateTimeField from django.db.models.fields.related import RelatedField from django.urls import reverse from django.utils.safestring import mark_safe +from django.utils.formats import date_format from django_tables2 import RequestConfig from django_tables2.columns import library from django_tables2.data import TableQuerysetData @@ -224,6 +225,25 @@ class DateColumn(tables.DateColumn): return cls(**kwargs) +@library.register +class DateTimeColumn(tables.DateTimeColumn): + """ + Overrides the default implementation of DateTimeColumn to better handle null values, returning a default value for + tables and null when exporting data. It is registered in the tables library to use this class instead of the + default, making this behavior consistent in all fields of type DateTimeField. + """ + + def value(self, value): + if value: + return date_format(value, format="SHORT_DATETIME_FORMAT") + return None + + @classmethod + def from_field(cls, field, **kwargs): + if isinstance(field, DateTimeField): + return cls(**kwargs) + + class ButtonsColumn(tables.TemplateColumn): """ Render edit, delete, and changelog buttons for an object. From f80452c7d920524643baa83c5dfd2279ed3f1388 Mon Sep 17 00:00:00 2001 From: Sergio Saucedo Date: Mon, 14 Feb 2022 00:47:48 -0600 Subject: [PATCH 09/17] Update import order --- netbox/utilities/tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/utilities/tables.py b/netbox/utilities/tables.py index 6d88ec91d..4821551b9 100644 --- a/netbox/utilities/tables.py +++ b/netbox/utilities/tables.py @@ -7,8 +7,8 @@ from django.core.exceptions import FieldDoesNotExist from django.db.models import DateField, DateTimeField from django.db.models.fields.related import RelatedField from django.urls import reverse -from django.utils.safestring import mark_safe from django.utils.formats import date_format +from django.utils.safestring import mark_safe from django_tables2 import RequestConfig from django_tables2.columns import library from django_tables2.data import TableQuerysetData From 46f4359e1f725cf8bd630aa1a302f2fdd250599f Mon Sep 17 00:00:00 2001 From: Mathieu PAYROL Date: Mon, 7 Feb 2022 18:26:02 +0100 Subject: [PATCH 10/17] Closes #8556: Add 'Full Name' column to Change Log table --- netbox/extras/tables.py | 18 +++++++++++++++++- netbox/templates/extras/objectchange.html | 12 +++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/netbox/extras/tables.py b/netbox/extras/tables.py index 7cc29005f..667dbf6f7 100644 --- a/netbox/extras/tables.py +++ b/netbox/extras/tables.py @@ -29,6 +29,14 @@ CONFIGCONTEXT_ACTIONS = """ {% endif %} """ +OBJECTCHANGE_FULL_NAME = """ +{% if record.user.first_name or record.user.last_name %} + {{ record.user.first_name }} {{ record.user.last_name }} +{% else %} + {{ record.user|default:record.user_name }} +{% endif %} +""" + OBJECTCHANGE_OBJECT = """ {% if record.changed_object and record.changed_object.get_absolute_url %} {{ record.object_repr }} @@ -204,6 +212,14 @@ class ObjectChangeTable(BaseTable): linkify=True, format=settings.SHORT_DATETIME_FORMAT ) + user_name = tables.Column( + verbose_name='Username' + ) + full_name = tables.TemplateColumn( + template_code=OBJECTCHANGE_FULL_NAME, + verbose_name='Full Name', + orderable=False + ) action = ChoiceFieldColumn() changed_object_type = ContentTypeColumn( verbose_name='Type' @@ -219,7 +235,7 @@ class ObjectChangeTable(BaseTable): class Meta(BaseTable.Meta): model = ObjectChange - fields = ('id', 'time', 'user_name', 'action', 'changed_object_type', 'object_repr', 'request_id') + fields = ('id', 'time', 'user_name', 'full_name', 'action', 'changed_object_type', 'object_repr', 'request_id') class ObjectJournalTable(BaseTable): diff --git a/netbox/templates/extras/objectchange.html b/netbox/templates/extras/objectchange.html index 501c9564f..f8b1ad547 100644 --- a/netbox/templates/extras/objectchange.html +++ b/netbox/templates/extras/objectchange.html @@ -36,7 +36,17 @@ - User + Full Name + + {% if object.user.first_name or object.user.last_name %} + {{ object.user.first_name }} {{ object.user.last_name }} + {% else %} + {{ object.user|default:object.user_name }} + {% endif %} + + + + Username {{ object.user|default:object.user_name }} From 8c19124717adcd2ca4a7e4140084a6f5ecd359a7 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Mon, 14 Feb 2022 08:54:36 -0500 Subject: [PATCH 11/17] Fixes #8622: Correct help text of status field on VM import form --- netbox/virtualization/forms/bulk_import.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/virtualization/forms/bulk_import.py b/netbox/virtualization/forms/bulk_import.py index bd3279959..797e13fee 100644 --- a/netbox/virtualization/forms/bulk_import.py +++ b/netbox/virtualization/forms/bulk_import.py @@ -64,7 +64,7 @@ class ClusterCSVForm(CustomFieldModelCSVForm): class VirtualMachineCSVForm(CustomFieldModelCSVForm): status = CSVChoiceField( choices=VirtualMachineStatusChoices, - help_text='Operational status of device' + help_text='Operational status' ) cluster = CSVModelChoiceField( queryset=Cluster.objects.all(), From dd848d754fdd987acde2c3b127546c10b863d416 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Mon, 14 Feb 2022 10:06:56 -0500 Subject: [PATCH 12/17] Changelog & cleanup for #8556 --- docs/release-notes/version-3.1.md | 2 ++ netbox/extras/tables.py | 7 ++----- netbox/templates/extras/objectchange.html | 14 ++++---------- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 1d6999bef..6953e0514 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -6,6 +6,8 @@ * [#7150](https://github.com/netbox-community/netbox/issues/7150) - Linkify devices on the far side of a rack elevation * [#8398](https://github.com/netbox-community/netbox/issues/8398) - Embiggen configuration form fields for banner message content +* [#8556](https://github.com/netbox-community/netbox/issues/8556) - Add full username column to changelog table +* [#8620](https://github.com/netbox-community/netbox/issues/8620) - Enable tab completion for `nbshell` ### Bug Fixes diff --git a/netbox/extras/tables.py b/netbox/extras/tables.py index 667dbf6f7..3f1842a3f 100644 --- a/netbox/extras/tables.py +++ b/netbox/extras/tables.py @@ -30,11 +30,8 @@ CONFIGCONTEXT_ACTIONS = """ """ OBJECTCHANGE_FULL_NAME = """ -{% if record.user.first_name or record.user.last_name %} - {{ record.user.first_name }} {{ record.user.last_name }} -{% else %} - {{ record.user|default:record.user_name }} -{% endif %} +{% load helpers %} +{{ record.user.get_full_name|placeholder }} """ OBJECTCHANGE_OBJECT = """ diff --git a/netbox/templates/extras/objectchange.html b/netbox/templates/extras/objectchange.html index f8b1ad547..f7d5a8f10 100644 --- a/netbox/templates/extras/objectchange.html +++ b/netbox/templates/extras/objectchange.html @@ -36,21 +36,15 @@ - Full Name + User - {% if object.user.first_name or object.user.last_name %} - {{ object.user.first_name }} {{ object.user.last_name }} + {% if object.user.get_full_name %} + {{ object.user.get_full_name }} ({{ object.user_name }}) {% else %} - {{ object.user|default:object.user_name }} + {{ object.user_name }} {% endif %} - - Username - - {{ object.user|default:object.user_name }} - - Action From 18eb9ffae61368c1e895e2d383c096592c4ebe3f Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Mon, 14 Feb 2022 10:34:30 -0500 Subject: [PATCH 13/17] Changelog for #8391 --- docs/release-notes/version-3.1.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 6953e0514..6e40ecfc6 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -12,6 +12,7 @@ ### Bug Fixes * [#8331](https://github.com/netbox-community/netbox/issues/8331) - Implement `replaceAll` string utility function to improve browser compatibility +* [#8391](https://github.com/netbox-community/netbox/issues/8391) - Null date columns should return empty strings during CSV export * [#8548](https://github.com/netbox-community/netbox/issues/8548) - Fix display of VC members when position is zero * [#8561](https://github.com/netbox-community/netbox/issues/8561) - Include option to connect a rear port to a console port * [#8564](https://github.com/netbox-community/netbox/issues/8564) - Fix errant table configuration key `available_columns` From 14240318f1cbe77b649aafea8bb6483613604979 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 15 Feb 2022 08:39:45 -0500 Subject: [PATCH 14/17] Fixes #8609: Display validation error when attempting to assign VLANs to interface with no mode during bulk edit --- docs/release-notes/version-3.1.md | 1 + netbox/dcim/forms/bulk_edit.py | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 6e40ecfc6..067717592 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -19,6 +19,7 @@ * [#8577](https://github.com/netbox-community/netbox/issues/8577) - Show contact assignment counts in global search results * [#8578](https://github.com/netbox-community/netbox/issues/8578) - Object change log tables should honor user's configured preferences * [#8604](https://github.com/netbox-community/netbox/issues/8604) - Fix tag filter on config context list filter form +* [#8609](https://github.com/netbox-community/netbox/issues/8609) - Display validation error when attempting to assign VLANs to interface with no mode during bulk edit * [#8611](https://github.com/netbox-community/netbox/issues/8611) - Fix bulk editing for certain custom link, webhook, and journal entry fields --- diff --git a/netbox/dcim/forms/bulk_edit.py b/netbox/dcim/forms/bulk_edit.py index 9127b072f..3b604d79d 100644 --- a/netbox/dcim/forms/bulk_edit.py +++ b/netbox/dcim/forms/bulk_edit.py @@ -1043,8 +1043,14 @@ class InterfaceBulkEditForm( def clean(self): super().clean() + if not self.cleaned_data['mode']: + if self.cleaned_data['untagged_vlan']: + raise forms.ValidationError({'untagged_vlan': "Interface mode must be specified to assign VLANs"}) + elif self.cleaned_data['tagged_vlans']: + raise forms.ValidationError({'tagged_vlans': "Interface mode must be specified to assign VLANs"}) + # Untagged interfaces cannot be assigned tagged VLANs - if self.cleaned_data['mode'] == InterfaceModeChoices.MODE_ACCESS and self.cleaned_data['tagged_vlans']: + elif self.cleaned_data['mode'] == InterfaceModeChoices.MODE_ACCESS and self.cleaned_data['tagged_vlans']: raise forms.ValidationError({ 'mode': "An access interface cannot have tagged VLANs assigned." }) From 5b7486cff8271f0acc142228035706452a95a9db Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 15 Feb 2022 09:01:58 -0500 Subject: [PATCH 15/17] Release v3.1.8 --- .github/ISSUE_TEMPLATE/bug_report.yaml | 2 +- .github/ISSUE_TEMPLATE/feature_request.yaml | 2 +- docs/release-notes/version-3.1.md | 2 +- netbox/netbox/settings.py | 2 +- requirements.txt | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 1c330e8a8..ad72e0735 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -14,7 +14,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v3.1.7 + placeholder: v3.1.8 validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index eea258c09..68256471c 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -14,7 +14,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v3.1.7 + placeholder: v3.1.8 validations: required: true - type: dropdown diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 067717592..1e7e5ac2f 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -1,6 +1,6 @@ # NetBox v3.1 -## v3.1.8 (FUTURE) +## v3.1.8 (2022-02-15) ### Enhancements diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index c7498d1f2..d5a7bfaec 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -19,7 +19,7 @@ from netbox.config import PARAMS # Environment setup # -VERSION = '3.1.8-dev' +VERSION = '3.1.8' # Hostname HOSTNAME = platform.node() diff --git a/requirements.txt b/requirements.txt index a281a5326..5489b99cd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,7 @@ django-prometheus==2.2.0 django-redis==5.2.0 django-rq==2.5.1 django-tables2==2.4.1 -django-taggit==2.0.0 +django-taggit==2.1.0 django-timezone-field==4.2.3 djangorestframework==3.12.4 drf-yasg[validation]==1.20.0 @@ -18,9 +18,9 @@ gunicorn==20.1.0 Jinja2==3.0.3 Markdown==3.3.6 markdown-include==0.6.0 -mkdocs-material==8.1.9 +mkdocs-material==8.1.11 netaddr==0.8.0 -Pillow==8.4.0 +Pillow==9.0.1 psycopg2-binary==2.9.3 PyYAML==6.0 social-auth-app-django==5.0.0 From ae0ae5fd4e360c19fd091bda6dcb3b7fded1c45c Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 15 Feb 2022 09:20:19 -0500 Subject: [PATCH 16/17] Remove outdated installation video --- docs/installation/index.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/installation/index.md b/docs/installation/index.md index 74b51da7f..a06a60bf6 100644 --- a/docs/installation/index.md +++ b/docs/installation/index.md @@ -11,10 +11,6 @@ The following sections detail how to set up a new instance of NetBox: 5. [HTTP server](5-http-server.md) 6. [LDAP authentication](6-ldap.md) (optional) -The video below demonstrates the installation of NetBox v3.0 on Ubuntu 20.04 for your reference. - - - ## Requirements | Dependency | Minimum Version | From b5e4fdc3d8fcb5d0e796dad1a4f3c1ce2797f7e2 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 15 Feb 2022 09:32:52 -0500 Subject: [PATCH 17/17] PRVB --- docs/release-notes/version-3.1.md | 4 ++++ netbox/netbox/settings.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 1e7e5ac2f..8cddf65ec 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -1,5 +1,9 @@ # NetBox v3.1 +## v3.1.9 (FUTURE) + +--- + ## v3.1.8 (2022-02-15) ### Enhancements diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index d5a7bfaec..f5501f54f 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -19,7 +19,7 @@ from netbox.config import PARAMS # Environment setup # -VERSION = '3.1.8' +VERSION = '3.1.9-dev' # Hostname HOSTNAME = platform.node()