Alphabetical ordering and filter

This commit is contained in:
zandercymatics 2023-12-13 09:02:23 -07:00
parent a9a4d99ad1
commit c66ac66018
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7

View file

@ -11,6 +11,8 @@ from django.http.response import HttpResponseRedirect
from django.urls import reverse
from epplibwrapper.errors import ErrorCode, RegistryError
from registrar.models.domain import Domain
from registrar.models.user import User
from registrar.models.user_domain_role import UserDomainRole
from registrar.models.utility.admin_sort_fields import AdminSortFields
from registrar.utility import csv_export
from . import models
@ -546,6 +548,18 @@ class DomainApplicationAdminForm(forms.ModelForm):
class DomainApplicationAdmin(ListHeaderAdmin):
"""Custom domain applications admin class."""
class InvestigatorFilter(admin.SimpleListFilter):
title = 'investigator'
parameter_name = 'investigator'
def lookups(self, request, model_admin):
valid_user_ids = UserDomainRole.objects.filter(role=UserDomainRole.Roles.MANAGER).values_list('user__id', flat=True)
privileged_users = User.objects.filter(id__in=valid_user_ids)
return [(user.id, user) for user in privileged_users]
def queryset(self, request, queryset):
print(f"look here: {self.value()}")
return queryset.filter(investigator=self.value())
# Columns
list_display = [
@ -558,7 +572,7 @@ class DomainApplicationAdmin(ListHeaderAdmin):
]
# Filters
list_filter = ("status", "organization_type", "investigator")
list_filter = ("status", "organization_type", InvestigatorFilter)
# Search
search_fields = [
@ -641,6 +655,10 @@ class DomainApplicationAdmin(ListHeaderAdmin):
kwargs["queryset"] = models.Website.objects.all().order_by("website") # Sort websites
return super().formfield_for_manytomany(db_field, request, **kwargs)
def get_queryset(self, request):
query_set = super().get_queryset(request)
return query_set.order_by("requested_domain__name")
# Trigger action when a fieldset is changed
def save_model(self, request, obj, form, change):
if obj and obj.creator.status != models.User.RESTRICTED: