default filter applied when clicking domain requests from editing a domain request

This commit is contained in:
David Kennedy 2024-04-15 08:50:13 -04:00
parent 64d0ec3f93
commit 5673d5951e
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B

View file

@ -1435,12 +1435,35 @@ class DomainRequestAdmin(ListHeaderAdmin):
""" """
Override changelist_view to set the selected value of status filter. Override changelist_view to set the selected value of status filter.
""" """
# there are two conditions which should set the default selected filter:
# 1 - there are no query parameters in the request and the request is the
# initial request for this view
# 2 - there are no query parameters in the request and the referring url is
# the change view for a domain request
should_apply_default_filter = False
# use http_referer in order to distinguish between request as a link from another page # use http_referer in order to distinguish between request as a link from another page
# and request as a removal of all filters # and request as a removal of all filters
http_referer = request.META.get("HTTP_REFERER", "") http_referer = request.META.get("HTTP_REFERER", "")
# if there are no query parameters in the request # if there are no query parameters in the request
# and the request is the initial request for this view if not bool(request.GET):
if not bool(request.GET) and request.path not in http_referer: # if the request is the initial request for this view
if request.path not in http_referer:
should_apply_default_filter = True
# elif the request is a referral from changelist view or from
# domain request change view
elif request.path in http_referer:
# find the index to determine the referring url after the path
index = http_referer.find(request.path)
# Check if there is a character following the path in http_referer
if index + len(request.path) < len(http_referer):
next_char = http_referer[index + len(request.path)]
# Check if the next character is a digit, if so, this indicates
# a change view for domain request
if next_char.isdigit():
should_apply_default_filter = True
if should_apply_default_filter:
# modify the GET of the request to set the selected filter # modify the GET of the request to set the selected filter
modified_get = copy.deepcopy(request.GET) modified_get = copy.deepcopy(request.GET)
modified_get["status__in"] = "submitted,in review,action needed" modified_get["status__in"] = "submitted,in review,action needed"