From eb3850458b53c2a55cda3768d885642b3f94e51a Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:11:22 -0600 Subject: [PATCH] Fix url path bug --- src/registrar/models/domain_request.py | 8 ++++-- .../models/utility/generic_helper.py | 19 +++++++++++++ .../templates/includes/header_extended.html | 6 ++-- src/registrar/templatetags/custom_filters.py | 28 +++++++++++++++++++ 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/src/registrar/models/domain_request.py b/src/registrar/models/domain_request.py index 865d4fec8..a6c7f7bc1 100644 --- a/src/registrar/models/domain_request.py +++ b/src/registrar/models/domain_request.py @@ -598,9 +598,11 @@ class DomainRequest(TimeStampedModel): def get_first_status_set_date(self, status): """Returns the date when the domain request was first set to the given status.""" - log_entry = LogEntry.objects.filter( - content_type__model="domainrequest", object_pk=self.pk, changes__status__1=status - ).order_by("-timestamp").first() + log_entry = ( + LogEntry.objects.filter(content_type__model="domainrequest", object_pk=self.pk, changes__status__1=status) + .order_by("-timestamp") + .first() + ) return log_entry.timestamp.date() if log_entry else None def get_first_status_started_date(self): diff --git a/src/registrar/models/utility/generic_helper.py b/src/registrar/models/utility/generic_helper.py index 8c44a3bdd..3cafe87c4 100644 --- a/src/registrar/models/utility/generic_helper.py +++ b/src/registrar/models/utility/generic_helper.py @@ -3,6 +3,7 @@ import time import logging from urllib.parse import urlparse, urlunparse, urlencode +from django.urls import resolve, Resolver404 logger = logging.getLogger(__name__) @@ -315,3 +316,21 @@ def convert_queryset_to_dict(queryset, is_model=True, key="id"): request_dict = {value[key]: value for value in queryset} return request_dict + + +def get_url_name(path): + """ + Given a URL path, returns the corresponding URL name defined in urls.py. + + Args: + path (str): The URL path to resolve. + + Returns: + str or None: The URL name if it exists, otherwise None. + """ + try: + match = resolve(path) + return match.url_name + except Resolver404: + logger.error(f"No matching URL name found for path: {path}") + return None diff --git a/src/registrar/templates/includes/header_extended.html b/src/registrar/templates/includes/header_extended.html index ba6eef48a..960d96bce 100644 --- a/src/registrar/templates/includes/header_extended.html +++ b/src/registrar/templates/includes/header_extended.html @@ -59,7 +59,7 @@ {% url 'domain-requests' as url %}