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 django.urls import reverse
from epplibwrapper.errors import ErrorCode, RegistryError from epplibwrapper.errors import ErrorCode, RegistryError
from registrar.models.domain import Domain 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.models.utility.admin_sort_fields import AdminSortFields
from registrar.utility import csv_export from registrar.utility import csv_export
from . import models from . import models
@ -546,6 +548,18 @@ class DomainApplicationAdminForm(forms.ModelForm):
class DomainApplicationAdmin(ListHeaderAdmin): class DomainApplicationAdmin(ListHeaderAdmin):
"""Custom domain applications admin class.""" """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 # Columns
list_display = [ list_display = [
@ -558,7 +572,7 @@ class DomainApplicationAdmin(ListHeaderAdmin):
] ]
# Filters # Filters
list_filter = ("status", "organization_type", "investigator") list_filter = ("status", "organization_type", InvestigatorFilter)
# Search # Search
search_fields = [ search_fields = [
@ -641,6 +655,10 @@ class DomainApplicationAdmin(ListHeaderAdmin):
kwargs["queryset"] = models.Website.objects.all().order_by("website") # Sort websites kwargs["queryset"] = models.Website.objects.all().order_by("website") # Sort websites
return super().formfield_for_manytomany(db_field, request, **kwargs) 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 # Trigger action when a fieldset is changed
def save_model(self, request, obj, form, change): def save_model(self, request, obj, form, change):
if obj and obj.creator.status != models.User.RESTRICTED: if obj and obj.creator.status != models.User.RESTRICTED: