diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index db9adffa3..740a9c9a6 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -402,7 +402,9 @@ class DeviceTypeBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm): u_height = forms.IntegerField(min_value=1, required=False) is_full_depth = forms.NullBooleanField(required=False, widget=BulkEditNullBooleanSelect, label='Is full depth') interface_ordering = forms.ChoiceField(choices=add_blank_choice(IFACE_ORDERING_CHOICES), required=False) - is_console_server = forms.NullBooleanField(required=False, widget=BulkEditNullBooleanSelect, label='Is full depth') + is_console_server = forms.NullBooleanField( + required=False, widget=BulkEditNullBooleanSelect, label='Is a console server' + ) is_pdu = forms.NullBooleanField(required=False, widget=BulkEditNullBooleanSelect, label='Is a PDU') is_network_device = forms.NullBooleanField( required=False, widget=BulkEditNullBooleanSelect, label='Is a network device' diff --git a/netbox/ipam/forms.py b/netbox/ipam/forms.py index f290335d2..e19376e8e 100644 --- a/netbox/ipam/forms.py +++ b/netbox/ipam/forms.py @@ -264,7 +264,7 @@ class PrefixCSVForm(forms.ModelForm): required=False ) status = CSVChoiceField( - choices=IPADDRESS_STATUS_CHOICES, + choices=PREFIX_STATUS_CHOICES, help_text='Operational status' ) role = forms.ModelChoiceField( diff --git a/netbox/secrets/admin.py b/netbox/secrets/admin.py index 3780dccd2..ac7a91fd6 100644 --- a/netbox/secrets/admin.py +++ b/netbox/secrets/admin.py @@ -42,13 +42,15 @@ class UserKeyAdmin(admin.ModelAdmin): if 'activate' in request.POST: form = ActivateUserKeyForm(request.POST) if form.is_valid(): - try: - master_key = my_userkey.get_master_key(form.cleaned_data['secret_key']) + master_key = my_userkey.get_master_key(form.cleaned_data['secret_key']) + if master_key is not None: for uk in form.cleaned_data['_selected_action']: uk.activate(master_key) return redirect('admin:secrets_userkey_changelist') - except ValueError: - messages.error(request, "Invalid private key provided. Unable to retrieve master key.") + else: + messages.error( + request, "Invalid private key provided. Unable to retrieve master key.", extra_tags='error' + ) else: form = ActivateUserKeyForm(initial={'_selected_action': request.POST.getlist(admin.ACTION_CHECKBOX_NAME)}) diff --git a/netbox/secrets/forms.py b/netbox/secrets/forms.py index aafa9c4b1..e71bb92fa 100644 --- a/netbox/secrets/forms.py +++ b/netbox/secrets/forms.py @@ -40,7 +40,7 @@ class SecretRoleForm(BootstrapMixin, forms.ModelForm): class Meta: model = SecretRole - fields = ['name', 'slug'] + fields = ['name', 'slug', 'users', 'groups'] # diff --git a/netbox/utilities/views.py b/netbox/utilities/views.py index a1d001380..1ec21b628 100644 --- a/netbox/utilities/views.py +++ b/netbox/utilities/views.py @@ -123,7 +123,7 @@ class ObjectListView(View): # Construct the table based on the user's permissions table = self.table(self.queryset) if 'pk' in table.base_columns and (permissions['change'] or permissions['delete']): - table.base_columns['pk'].visible = True + table.columns.show('pk') # Apply the request context paginate = { diff --git a/requirements.txt b/requirements.txt index 21382bb6c..8cd72419f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ django-debug-toolbar>=1.7 django-filter>=1.0.2 django-mptt==0.8.7 django-rest-swagger>=2.1.0 -django-tables2>=1.6.0 +django-tables2>=1.7.0 djangorestframework>=3.6.2 graphviz>=0.6 Markdown>=2.6.7