From 251f6ca2c978b0ee206e97a390b916a130b3abe3 Mon Sep 17 00:00:00 2001 From: Nick Jackson Date: Tue, 24 Sep 2024 16:29:26 +0100 Subject: [PATCH 1/3] feat(sitemap): swap sitemap from using courts in utils to using CourtDates database model --- config/views/sitemaps.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/config/views/sitemaps.py b/config/views/sitemaps.py index 38da236ed..b8d969de7 100644 --- a/config/views/sitemaps.py +++ b/config/views/sitemaps.py @@ -9,8 +9,8 @@ from django.http import Http404 from django.urls import reverse from django.views.generic.base import TemplateResponseMixin, TemplateView -from ds_caselaw_utils import courts +from judgments.models.court_dates import CourtDates from judgments.utils import api_client @@ -31,11 +31,11 @@ def get_context_data(self, **kwargs) -> dict[str, Any]: context["maps"] = [self.request.build_absolute_uri(reverse(map)) for map in map_url_names] # Dynamically append a sitemap for each court - for court in courts.get_listable_courts(): + for court in CourtDates.objects.all(): for year in range(court.start_year, court.end_year): context["maps"].append( self.request.build_absolute_uri( - reverse("sitemap_court", kwargs={"code": court.canonical_param, "year": year}) + reverse("sitemap_court", kwargs={"code": court.param, "year": year}) ) ) @@ -83,12 +83,8 @@ def get_context_data(self, **kwargs) -> dict[str, Any]: context = super().get_context_data(**kwargs) context["items"] = [ - { - "url": self.request.build_absolute_uri( - reverse("court_or_tribunal", kwargs={"param": court.canonical_param}) - ) - } - for court in courts.get_listable_courts() + {"url": self.request.build_absolute_uri(reverse("court_or_tribunal", kwargs={"param": court.param}))} + for court in CourtDates.objects.all() ] return context From 1eeed60d7d03d2ae1fdeaba2abdf9005ab476a99 Mon Sep 17 00:00:00 2001 From: Nick Jackson Date: Tue, 24 Sep 2024 16:30:04 +0100 Subject: [PATCH 2/3] fix(FCL-322): fix off-by-one error in year ranges --- config/views/sitemaps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/views/sitemaps.py b/config/views/sitemaps.py index b8d969de7..7b84ba43e 100644 --- a/config/views/sitemaps.py +++ b/config/views/sitemaps.py @@ -32,7 +32,7 @@ def get_context_data(self, **kwargs) -> dict[str, Any]: # Dynamically append a sitemap for each court for court in CourtDates.objects.all(): - for year in range(court.start_year, court.end_year): + for year in range(court.start_year, court.end_year + 1): context["maps"].append( self.request.build_absolute_uri( reverse("sitemap_court", kwargs={"code": court.param, "year": year}) From 9c2ea3311f3124d5c4fad642505e8859a2431b6a Mon Sep 17 00:00:00 2001 From: Nick Jackson Date: Tue, 24 Sep 2024 16:30:40 +0100 Subject: [PATCH 3/3] fix(court-dates): recalculating court dates can now handle courts with no documents yet --- judgments/management/commands/recalculate_court_dates.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/judgments/management/commands/recalculate_court_dates.py b/judgments/management/commands/recalculate_court_dates.py index e20da3df5..c9f9d0149 100644 --- a/judgments/management/commands/recalculate_court_dates.py +++ b/judgments/management/commands/recalculate_court_dates.py @@ -81,6 +81,15 @@ def _get_year_of_first_document_in_order(self, canonical_court_param, order, doc api_client, SearchParameters(court=canonical_court_param, order=order) ) + if len(search_response.results) == 0: + self.stdout.write( + self.style.WARNING( + f"Could not find document for court {canonical_court_param}, \ +falling back to config value of {fallback}" + ) + ) + return fallback + first_document = search_response.results[0] if first_document.date: