mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	Adds assigned bool for IP address API (#13301)
* adds assigned bool for ip address API #13151 * Add filterset test --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							ab916a1819
						
					
				
				
					commit
					57860f26b7
				
			@@ -591,6 +591,10 @@ class IPAddressFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
 | 
			
		||||
        method='_assigned_to_interface',
 | 
			
		||||
        label=_('Is assigned to an interface'),
 | 
			
		||||
    )
 | 
			
		||||
    assigned = django_filters.BooleanFilter(
 | 
			
		||||
        method='_assigned',
 | 
			
		||||
        label=_('Is assigned'),
 | 
			
		||||
    )
 | 
			
		||||
    status = django_filters.MultipleChoiceFilter(
 | 
			
		||||
        choices=IPAddressStatusChoices,
 | 
			
		||||
        null_value=None
 | 
			
		||||
@@ -706,6 +710,18 @@ class IPAddressFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
 | 
			
		||||
                assigned_object_id__isnull=False
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
    def _assigned(self, queryset, name, value):
 | 
			
		||||
        if value:
 | 
			
		||||
            return queryset.exclude(
 | 
			
		||||
                assigned_object_type__isnull=True,
 | 
			
		||||
                assigned_object_id__isnull=True
 | 
			
		||||
            )
 | 
			
		||||
        else:
 | 
			
		||||
            return queryset.filter(
 | 
			
		||||
                assigned_object_type__isnull=True,
 | 
			
		||||
                assigned_object_id__isnull=True
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class FHRPGroupFilterSet(NetBoxModelFilterSet):
 | 
			
		||||
    protocol = django_filters.MultipleChoiceFilter(
 | 
			
		||||
 
 | 
			
		||||
@@ -992,6 +992,12 @@ class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTests):
 | 
			
		||||
        params = {'fhrpgroup_id': [fhrp_groups[0].pk, fhrp_groups[1].pk]}
 | 
			
		||||
        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 | 
			
		||||
 | 
			
		||||
    def test_assigned(self):
 | 
			
		||||
        params = {'assigned': 'true'}
 | 
			
		||||
        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
 | 
			
		||||
        params = {'assigned': 'false'}
 | 
			
		||||
        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 | 
			
		||||
 | 
			
		||||
    def test_assigned_to_interface(self):
 | 
			
		||||
        params = {'assigned_to_interface': 'true'}
 | 
			
		||||
        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user