Sfoglia il codice sorgente

Closes #5496: Add form field to filter rack reservation by user

Jeremy Stretch 5 anni fa
parent
commit
6ca9e2a777
2 ha cambiato i file con 12 aggiunte e 2 eliminazioni
  1. 1 0
      docs/release-notes/version-2.10.md
  2. 11 2
      netbox/dcim/forms.py

+ 1 - 0
docs/release-notes/version-2.10.md

@@ -5,6 +5,7 @@
 ### Enhancements
 
 * [#5489](https://github.com/netbox-community/netbox/issues/5489) - Add filters for type and width to racks list
+* [#5496](https://github.com/netbox-community/netbox/issues/5496) - Add form field to filter rack reservation by user
 
 ### Bug Fixes
 

+ 11 - 2
netbox/dcim/forms.py

@@ -21,7 +21,7 @@ from ipam.models import IPAddress, VLAN
 from tenancy.forms import TenancyFilterForm, TenancyForm
 from tenancy.models import Tenant, TenantGroup
 from utilities.forms import (
-    APISelect, add_blank_choice, BootstrapMixin, BulkEditForm, BulkEditNullBooleanSelect,
+    APISelect, APISelectMultiple, add_blank_choice, BootstrapMixin, BulkEditForm, BulkEditNullBooleanSelect,
     ColorSelect, CommentField, CSVChoiceField, CSVContentTypeField, CSVModelChoiceField, CSVModelForm,
     DynamicModelChoiceField, DynamicModelMultipleChoiceField, ExpandableNameField, form_from_model, JSONField,
     NumericArrayField, SelectWithPK, SmallTextarea, SlugField, StaticSelect2, StaticSelect2Multiple, TagFilterField,
@@ -860,7 +860,7 @@ class RackReservationBulkEditForm(BootstrapMixin, AddRemoveTagsForm, BulkEditFor
 
 class RackReservationFilterForm(BootstrapMixin, TenancyFilterForm):
     model = RackReservation
-    field_order = ['q', 'region', 'site', 'group_id', 'tenant_group', 'tenant']
+    field_order = ['q', 'region', 'site', 'group_id', 'user_id', 'tenant_group', 'tenant']
     q = forms.CharField(
         required=False,
         label='Search'
@@ -884,6 +884,15 @@ class RackReservationFilterForm(BootstrapMixin, TenancyFilterForm):
         label='Rack group',
         null_option='None'
     )
+    user_id = DynamicModelMultipleChoiceField(
+        queryset=User.objects.all(),
+        required=False,
+        display_field='username',
+        label='User',
+        widget=APISelectMultiple(
+            api_url='/api/users/users/',
+        )
+    )
     tag = TagFilterField(model)