From ab0e9265c58a49c03e5493c76a4297b2137cfc41 Mon Sep 17 00:00:00 2001 From: Seth Foster Date: Thu, 16 Nov 2023 00:50:38 -0500 Subject: [PATCH] Add search fields to views Make receptoraddress list views searchable by "address" Other changes: - Add help text to source and target of the InstanceLink model Signed-off-by: Seth Foster --- awx/api/views/__init__.py | 17 +++++++---------- awx/main/migrations/0188_inbound_hop_nodes.py | 8 +++++--- awx/main/models/ha.py | 4 ++-- awx/main/models/receptor_address.py | 1 + 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/awx/api/views/__init__.py b/awx/api/views/__init__.py index dfc09f0453..ae9baaa4dd 100644 --- a/awx/api/views/__init__.py +++ b/awx/api/views/__init__.py @@ -376,31 +376,28 @@ class InstanceUnifiedJobsList(SubListAPIView): class InstancePeersList(SubListAPIView): name = _("Peers") - parent_model = models.Instance model = models.ReceptorAddress serializer_class = serializers.ReceptorAddressSerializer + parent_model = models.Instance parent_access = 'read' relationship = 'peers' - search_fields = 'address' + search_fields = ('address',) -class InstanceReceptorAddressesList(ListCreateAPIView): +class InstanceReceptorAddressesList(SubListCreateAPIView): name = _("Receptor Addresses") model = models.ReceptorAddress + parent_key = 'instance' + parent_model = models.Instance serializer_class = serializers.ReceptorAddressSerializer - - def get_queryset(self): - return models.ReceptorAddress.objects.filter(instance=self.kwargs['pk']) - - def post(self, request, *args, **kwargs): - request.data.update({'instance': self.kwargs['pk']}) - return super().post(request, *args, **kwargs) + search_fields = ('address',) class ReceptorAddressesList(ListCreateAPIView): name = _("Receptor Addresses") model = models.ReceptorAddress serializer_class = serializers.ReceptorAddressSerializer + search_fields = ('address',) class ReceptorAddressDetail(RetrieveUpdateDestroyAPIView): diff --git a/awx/main/migrations/0188_inbound_hop_nodes.py b/awx/main/migrations/0188_inbound_hop_nodes.py index 244b1efffa..3493ac19e8 100644 --- a/awx/main/migrations/0188_inbound_hop_nodes.py +++ b/awx/main/migrations/0188_inbound_hop_nodes.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.6 on 2023-11-15 17:32 +# Generated by Django 4.2.6 on 2023-11-16 05:50 import django.core.validators from django.db import migrations, models @@ -56,7 +56,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='instancelink', name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='main.instance'), + field=models.ForeignKey(help_text='The source instance of this peer link.', on_delete=django.db.models.deletion.CASCADE, to='main.instance'), ), migrations.AddConstraint( model_name='instancelink', @@ -80,7 +80,9 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='instancelink', name='target', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='main.receptoraddress'), + field=models.ForeignKey( + help_text='The target receptor address of this peer link.', on_delete=django.db.models.deletion.CASCADE, to='main.receptoraddress' + ), ), migrations.AddConstraint( model_name='receptoraddress', diff --git a/awx/main/models/ha.py b/awx/main/models/ha.py index 8f606c1487..e42fbbcdf6 100644 --- a/awx/main/models/ha.py +++ b/awx/main/models/ha.py @@ -70,8 +70,8 @@ class InstanceLink(BaseModel): ordering = ("id",) constraints = [models.UniqueConstraint(fields=['source', 'target'], name='source_target_unique_together')] - source = models.ForeignKey('Instance', on_delete=models.CASCADE) - target = models.ForeignKey('ReceptorAddress', on_delete=models.CASCADE) + source = models.ForeignKey('Instance', on_delete=models.CASCADE, help_text=_("The source instance of this peer link.")) + target = models.ForeignKey('ReceptorAddress', on_delete=models.CASCADE, help_text=_("The target receptor address of this peer link.")) class States(models.TextChoices): ADDING = 'adding', _('Adding') diff --git a/awx/main/models/receptor_address.py b/awx/main/models/receptor_address.py index 7c131a8e81..a503712638 100644 --- a/awx/main/models/receptor_address.py +++ b/awx/main/models/receptor_address.py @@ -35,6 +35,7 @@ class ReceptorAddress(models.Model): 'Instance', related_name='receptor_addresses', on_delete=models.CASCADE, + null=False, ) def __str__(self):