Skip to content

Commit

Permalink
adds causelist registries
Browse files Browse the repository at this point in the history
  • Loading branch information
actlikewill committed Oct 16, 2024
1 parent 38045d9 commit 4b2e915
Show file tree
Hide file tree
Showing 11 changed files with 196 additions and 89 deletions.
71 changes: 0 additions & 71 deletions peachjam/migrations/0166_alter_coredocument_doc_type_causelist.py

This file was deleted.

39 changes: 39 additions & 0 deletions peachjam/models/judgment.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,23 @@ def save(self, *args, **kwargs):
return super().save(*args, **kwargs)


class CourtDivision(models.Model):
name = models.CharField(_("name"), max_length=255, null=False, unique=True)
code = models.SlugField(_("code"), max_length=255, null=False, unique=True)
entity_profile = GenericRelation(
"peachjam.EntityProfile", verbose_name=_("profile")
)
order = models.IntegerField(_("order"), null=True, blank=True)

def __str__(self):
return self.name

def save(self, *args, **kwargs):
if not self.code:
self.code = f"{slugify(self.name)}"
return super().save(*args, **kwargs)


class Court(models.Model):
name = models.CharField(_("name"), max_length=255, null=False, unique=True)
code = models.SlugField(_("code"), max_length=255, null=False, unique=True)
Expand Down Expand Up @@ -551,9 +568,31 @@ class CauseList(CoreDocument):
verbose_name=_("court"),
related_name="causelists",
)
registry = models.ForeignKey(
CourtRegistry,
on_delete=models.PROTECT,
null=True,
related_name="causelists",
blank=True,
)
division = models.ForeignKey(
CourtDivision,
on_delete=models.PROTECT,
null=True,
related_name="causelists",
blank=True,
)
judges = models.ManyToManyField(Judge, blank=True, verbose_name=_("judges"))

def assign_title(self):
court_name = self.court.name if self.court else ""
nature_name = self.nature.name if self.nature else ""
date_str = self.date.strftime("%Y-%m-%d") if self.date else ""

self.title = f"{court_name} {nature_name} {date_str}"

def pre_save(self):
self.assign_title()
self.frbr_uri_doctype = "doc"
self.doc_type = "causelist"
super().pre_save()
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,5 @@
{% block month_option %}
<option value="{% url "causelist_court_month" court.code year m|date:'n' %}"
{% if m|date:"F" == month %} selected{% endif %}>
{{ m|date:"F" }}
</option>
{% endblock %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{% extends "peachjam/_court_months_list.html" %}
{% load i18n %}
{% block month_link %}
<a href="{% url "causelist_court_registry_month" court.code registry.code year m|date:'n' %}">{{ m|date:"F" }}</a>
{% endblock %}
{% block month_option %}
<option value="{% url "causelist_court_registry_month" court.code registry.code year m|date:'n' %}"
{% if m|date:"F" == month %} selected{% endif %}>
{{ m|date:"F" }}
</option>
{% endblock %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{% extends "peachjam/_court_years_list.html" %}
{% load i18n %}
{% block year_link %}
<a href="{% url "causelist_court_registry_year" court.code registry.code y.year %}">{{ y.year }}</a>
{% endblock %}
{% block year_option %}
<option value="{% url "causelist_court_registry_year" court.code registry.code y.year %}"
{% if y.year == year %} selected{% endif %}>
{{ y.year }}
</option>
{% endblock %}
4 changes: 2 additions & 2 deletions peachjam/templates/peachjam/causelist_court_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@
{% include 'peachjam/_registries.html' %}
{% endblock %}
{% block year_list %}
{% include 'peachjam/_causelist_years_list.html' %}
{% include 'peachjam/_causelist_court_years_list.html' %}
{% endblock %}
{% block month_list %}
{% include 'peachjam/_causelist_months_list.html' %}
{% include 'peachjam/_causelist_court_months_list.html' %}
{% endblock %}
{% endblock %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{% extends 'peachjam/causelist_court_detail.html' %}
{% load i18n %}
{% block year_list %}
{% include "peachjam/_causelist_court_registries_years_list.html" %}
{% endblock %}
{% block month_list %}
{% include "peachjam/_causelist_court_registries_months_list.html" %}
{% endblock %}
52 changes: 52 additions & 0 deletions peachjam/templates/peachjam/causelist_detail.html
Original file line number Diff line number Diff line change
@@ -1 +1,53 @@
{% extends 'peachjam/layouts/document_detail.html' %}
{% load i18n %}
{% block breadcrumbs %}
<div class="container">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'home_page' %}">{% trans 'Home' %}</a>
</li>
<li class="breadcrumb-item">
<a href="{% url 'causelist_list' %}">{% trans 'Cause Lists' %}</a>
</li>
{% if document.court.court_class.show_listing_page %}
<li class="breadcrumb-item">
<a href="{% url 'causelist_court_class' document.court.court_class.slug %}">{{ document.court.court_class.name }}</a>
</li>
{% endif %}
{% if document.court %}
<li class="breadcrumb-item">
<a href="{% url 'causelist_court' document.court.code %}">{{ document.court.name }}</a>
</li>
{% endif %}
</ol>
</nav>
</div>
{% endblock %}
{% block document-metadata-content-citation %}
{{ block.super }}
{% if document.court %}
<dt>
{% trans 'Court' %}
</dt>
<dd class="text-muted">
<a href="{% url 'causelist_court' document.court.code %}">{{ document.court.name }}</a>
</dd>
{% endif %}
{% if document.registry %}
<dt>
{{ document.registry.model_label }}
</dt>
<dd class="text-muted">
<a href="{% url 'causelist_court_registry' document.court.code document.registry.code %}">{{ document.registry.name }}</a>
</dd>
{% endif %}
{% if document.division %}
<dt>
{% trans 'Division' %}
</dt>
<dd class="text-muted">
{{ document.division.name }}
</dd>
{% endif %}
{% endblock %}
36 changes: 27 additions & 9 deletions peachjam/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@
CauseListCourtClassYearView,
CauseListCourtDetailView,
CauseListCourtMonthView,
CauseListCourtRegistryDetailView,
CauseListCourtRegistryMonthView,
CauseListCourtRegistryYearView,
CauseListCourtYearView,
CauseListListView,
CourtClassDetailView,
Expand Down Expand Up @@ -166,6 +169,21 @@
CauseListCourtDetailView.as_view(),
name="causelist_court",
),
path(
"causelists/court-class/<str:court_class>/",
CauseListCourtClassView.as_view(),
name="causelist_court_class",
),
path(
"causelists/court-class/<str:court_class>/<int:year>/",
CauseListCourtClassYearView.as_view(),
name="causelist_court_class_year",
),
path(
"causelists/court-class/<str:court_class>/<int:year>/<int:month>/",
CauseListCourtClassMonthView.as_view(),
name="causelist_court_class_month",
),
path(
"causelists/<str:code>/<int:year>/",
CauseListCourtYearView.as_view(),
Expand All @@ -177,19 +195,19 @@
name="causelist_court_month",
),
path(
"causelists/court-class/<str:court_class>/",
CauseListCourtClassView.as_view(),
name="causelist_court_class",
"causelists/<str:code>/<str:registry_code>/",
CauseListCourtRegistryDetailView.as_view(),
name="causelist_court_registry",
),
path(
"causelists/court-class/<str:court_class>/<int:year>/",
CauseListCourtClassYearView.as_view(),
name="causelist_court_class_year",
"causelists/<str:code>/<str:registry_code>/<int:year>/",
CauseListCourtRegistryYearView.as_view(),
name="causelist_court_registry_year",
),
path(
"causelists/court-class/<str:court_class>/<int:year>/<int:month>/",
CauseListCourtClassMonthView.as_view(),
name="causelist_court_class_month",
"causelists/<str:code>/<str:registry_code>/<int:year>/<int:month>/",
CauseListCourtRegistryMonthView.as_view(),
name="causelist_court_registry_month",
),
path("place/<str:code>", PlaceDetailView.as_view(), name="place"),
path("legislation/", LegislationListView.as_view(), name="legislation_list"),
Expand Down
52 changes: 46 additions & 6 deletions peachjam/views/causelist.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
from django.views.generic import TemplateView

from peachjam.helpers import lowercase_alphabet
from peachjam.models import CauseList, Court, CourtClass, Judge, Taxonomy
from peachjam.models import CauseList, Court, CourtClass, CourtRegistry, Judge, Taxonomy
from peachjam.registry import registry
from peachjam.views import BaseDocumentDetailView, FilteredDocumentListView
from peachjam.views.courts import MonthMixin
from peachjam.views.courts import MonthMixin, RegistryMixin
from peachjam.views.generic_views import YearMixin


Expand Down Expand Up @@ -146,26 +146,64 @@ def get_base_queryset(self, exclude=None):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["court"] = self.court
context["all_years_url"] = reverse("causelist_court", args=[self.court.code])
context["registry_label_plural"] = CourtRegistry.model_label_plural
registries = self.court.registries.exclude(causelists__isnull=True)
split_index = ceil(registries.count() / 2)
for r in registries:
r.get_absolute_url = reverse(
"causelist_court_registry", args=[self.court.code, r.code]
)

context["registries"] = registries
context["registry_groups"] = [
registries[:split_index],
registries[split_index:],
]
context["all_years_url"] = reverse("causelist_court", args=[self.court.code])
return context


class CauseListCourtYearView(YearMixin, CauseListCourtDetailView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["year"] = self.year
context["all_months_url"] = reverse(
"causelist_court_year", args=[self.court.code, self.year]
)
return context


class CauseListCourtMonthView(MonthMixin, CauseListCourtYearView):
pass


class CauseListCourtRegistryDetailView(RegistryMixin, CauseListCourtDetailView):
template_name = "peachjam/causelist_court_registry_detail.html"

def base_view_name(self):
return f'{super().base_view_name()} {_("Cause Lists")}'

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["month"] = self.month
context["all_years_url"] = reverse(
"causelist_court_registry", args=[self.court.code, self.registry.code]
)
return context


class CauseListCourtRegistryYearView(YearMixin, CauseListCourtRegistryDetailView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["all_months_url"] = reverse(
"causelist_court_registry_year",
args=[self.court.code, self.registry.code, self.year],
)
return context


class CauseListCourtRegistryMonthView(MonthMixin, CauseListCourtRegistryYearView):
pass


class CauseListCourtClassView(FilteredCauseListView):
template_name = "peachjam/causelist_court_class_detail.html"

Expand Down Expand Up @@ -203,7 +241,9 @@ def get_context_data(self, **kwargs):
registries[:split_index],
registries[split_index:],
]
context["all_years_url"] = self.court_class.get_absolute_url()
context["all_years_url"] = reverse(
"causelist_court_class", args=[self.court_class.slug]
)

return context

Expand Down

0 comments on commit 4b2e915

Please sign in to comment.