Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cause lists #2099

Merged
merged 14 commits into from
Oct 17, 2024
8 changes: 8 additions & 0 deletions peachjam/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
Book,
CaseHistory,
CaseNumber,
CauseList,
CitationLink,
CitationProcessing,
CoreDocument,
Expand Down Expand Up @@ -925,6 +926,13 @@ def get_fieldsets(self, request, obj=None):
return fieldsets


@admin.register(CauseList)
class CauseListAdmin(DocumentAdmin):
fieldsets = copy.deepcopy(DocumentAdmin.fieldsets)
fieldsets[0][1]["fields"].insert(3, "court")
fieldsets[0][1]["fields"].insert(3, "judges")


@admin.register(Predicate)
class PredicateAdmin(admin.ModelAdmin):
list_display = ("name",)
Expand Down
50 changes: 50 additions & 0 deletions peachjam/migrations/0165_causelist.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Generated by Django 4.2.15 on 2024-10-09 13:12

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("peachjam", "0164_peachjamsettings_robots_txt"),
]

operations = [
migrations.CreateModel(
name="CauseList",
fields=[
(
"coredocument_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="peachjam.coredocument",
),
),
(
"court",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.PROTECT,
to="peachjam.court",
verbose_name="court",
),
),
(
"judges",
models.ManyToManyField(
blank=True, to="peachjam.judge", verbose_name="judges"
),
),
],
options={
"abstract": False,
"base_manager_name": "objects",
},
bases=("peachjam.coredocument",),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Generated by Django 4.2.16 on 2024-10-11 13:28

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("peachjam", "0165_causelist"),
]

operations = [
migrations.AlterField(
model_name="causelist",
name="court",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.PROTECT,
related_name="causelists",
to="peachjam.court",
verbose_name="court",
),
),
migrations.AlterField(
model_name="coredocument",
name="doc_type",
field=models.CharField(
choices=[
("core_document", "Core Document"),
("gazette", "Gazette"),
("generic_document", "Generic Document"),
("judgment", "Judgment"),
("legal_instrument", "Legal Instrument"),
("legislation", "Legislation"),
("book", "Book"),
("journal", "Journal"),
("causelist", "Cause List"),
],
default="core_document",
max_length=255,
verbose_name="document type",
),
),
]
1 change: 1 addition & 0 deletions peachjam/models/core_document_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,7 @@ class CoreDocument(PolymorphicModel):
("legislation", "Legislation"),
("book", "Book"),
("journal", "Journal"),
("causelist", "Cause List"),
)

# The name of the default nature to use for this type of document, if one is not set. This allows us to ensure
Expand Down
18 changes: 18 additions & 0 deletions peachjam/models/judgment.py
Original file line number Diff line number Diff line change
Expand Up @@ -539,3 +539,21 @@ def __str__(self):
elif self.case_number:
return f"{self.case_number}"
return _("Case history")


class CauseList(CoreDocument):
frbr_uri_doctypes = ["doc"]
default_nature = ("causelist", "Cause list")
court = models.ForeignKey(
Court,
on_delete=models.PROTECT,
null=True,
verbose_name=_("court"),
related_name="causelists",
)
judges = models.ManyToManyField(Judge, blank=True, verbose_name=_("judges"))

def pre_save(self):
self.frbr_uri_doctype = "doc"
self.doc_type = "causelist"
longhotsummer marked this conversation as resolved.
Show resolved Hide resolved
super().pre_save()
11 changes: 11 additions & 0 deletions peachjam/templates/peachjam/_causelist_court_class_month_list.html
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_class_month" court_class.slug year m|date:'n' %}">{{ m|date:"F" }}</a>
{% endblock %}
{% block month_option %}
<option value="{% url "causelist_court_class_month" court_class.slug year m|date:'n' %}"
{% if m|date:"F" == month %} selected{% endif %}>
{{ m|date:"F" }}
</option>
{% endblock %}
11 changes: 11 additions & 0 deletions peachjam/templates/peachjam/_causelist_court_class_years_list.html
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_class_year" court_class.slug y.year %}">{{ y.year }}</a>
{% endblock %}
{% block year_option %}
<option value="{% url "causelist_court_class_year" court_class.slug y.year %}"
{% if y.year == year %} selected{% endif %}>
{{ y.year }}
</option>
{% endblock %}
8 changes: 8 additions & 0 deletions peachjam/templates/peachjam/_causelist_court_list.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{% extends "peachjam/_court_list.html" %}
{% load i18n %}
{% block court_class_link %}
<a href="{% url 'causelist_court_class' court_class.slug %}">{% trans 'All causelists' %}</a>
{% endblock %}
{% block court_link %}
<a href="{% url 'causelist_court' court.code %}">{{ court.name }}</a>
{% endblock %}
11 changes: 11 additions & 0 deletions peachjam/templates/peachjam/_causelist_months_list.html
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_month" court.code year m|date:'n' %}">{{ m|date:"F" }}</a>
{% endblock %}
{% 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 %}
11 changes: 11 additions & 0 deletions peachjam/templates/peachjam/_causelist_years_list.html
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_year" court.code y.year %}">{{ y.year }}</a>
{% endblock %}
{% block year_option %}
<option value="{% url "causelist_court_year" court.code y.year %}"
{% if y.year == year %} selected{% endif %}>
{{ y.year }}
</option>
{% endblock %}
8 changes: 6 additions & 2 deletions peachjam/templates/peachjam/_court_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,18 @@
<h4 class="mb-2">{{ court_class }}</h4>
{% if court_class.show_listing_page %}
<div class="mb-3">
<a href="{% url 'court_class' court_class.slug %}">{% trans 'All judgments' %}</a>
{% block court_class_link %}
<a href="{% url 'court_class' court_class.slug %}">{% trans 'All judgments' %}</a>
{% endblock %}
</div>
{% endif %}
{% if court_class.courts.all %}
<ul class="list-unstyled">
{% for court in court_class.courts.all %}
<li>
<a href="{% url 'court' court.code %}">{{ court.name }}</a>
{% block court_link %}
<a href="{% url 'court' court.code %}">{{ court.name }}</a>
{% endblock %}
</li>
{% endfor %}
</ul>
Expand Down
8 changes: 8 additions & 0 deletions peachjam/templates/peachjam/causelist_court_class_detail.html
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_class_years_list.html" %}
{% endblock %}
{% block month_list %}
{% include "peachjam/_causelist_court_class_month_list.html" %}
{% endblock %}
46 changes: 46 additions & 0 deletions peachjam/templates/peachjam/causelist_court_detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{% extends 'peachjam/layouts/document_list.html' %}
{% load i18n %}
{% block title %}{{ page_title }}{% endblock %}
{% 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 court.court_class.show_listing_page %}
<li class="breadcrumb-item">
<a href="{% url 'causelist_court_class' court.court_class.slug %}">{{ court.court_class.name }}</a>
</li>
{% elif court_class.show_listing_page %}
<li class="breadcrumb-item">
<a href="{% url 'causelist_court_class' court_class.slug %}">{{ court_class.name }}</a>
</li>
{% endif %}
{% if court %}
<li class="breadcrumb-item">
<a href="{% url 'causelist_court' court.code %}">{{ court.name }}</a>
</li>
{% endif %}
</ol>
</nav>
</div>
{% endblock %}
{% block page-title %}
{% if not entity_profile %}<h1 class="mt-4">{{ page_title }}</h1>{% endif %}
{% endblock %}
{% block page-header %}
{{ block.super }}
{% block court_list %}
{% include 'peachjam/_registries.html' %}
{% endblock %}
{% block year_list %}
{% include 'peachjam/_causelist_years_list.html' %}
{% endblock %}
{% block month_list %}
{% include 'peachjam/_causelist_months_list.html' %}
{% endblock %}
{% endblock %}
1 change: 1 addition & 0 deletions peachjam/templates/peachjam/causelist_detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{% extends 'peachjam/layouts/document_detail.html' %}
19 changes: 19 additions & 0 deletions peachjam/templates/peachjam/causelist_list.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{% extends "peachjam/layouts/document_list.html" %}
{% load i18n %}
{% block title %}
{% trans 'Cause Lists' %}
{% endblock %}
{% block page-title %}
<h1 class="mt-4">{% trans 'Cause Lists' %}</h1>
{% endblock %}
{% block document-table %}
{% include 'peachjam/_causelist_court_list.html' %}
<h4 class="mb-2 mt-4">
{% if title %}
{{ title }}
{% else %}
{% trans 'Recent Cause Lists' %}
{% endif %}
</h4>
{% include 'peachjam/_recent_document_list.html' with documents=recent_causelists %}
{% endblock %}
38 changes: 38 additions & 0 deletions peachjam/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@
ArticleYearArchiveView,
AuthorDetailView,
BookListView,
CauseListCourtClassMonthView,
CauseListCourtClassView,
CauseListCourtClassYearView,
CauseListCourtDetailView,
CauseListCourtMonthView,
CauseListCourtYearView,
CauseListListView,
CourtClassDetailView,
CourtClassMonthView,
CourtClassYearView,
Expand Down Expand Up @@ -153,6 +160,37 @@
CourtRegistryMonthView.as_view(),
name="court_registry_month",
),
path("causelists/", CauseListListView.as_view(), name="causelist_list"),
path(
"causelists/<str:code>/",
CauseListCourtDetailView.as_view(),
name="causelist_court",
),
path(
"causelists/<str:code>/<int:year>/",
CauseListCourtYearView.as_view(),
name="causelist_court_year",
),
path(
"causelists/<str:code>/<int:year>/<int:month>/",
CauseListCourtMonthView.as_view(),
name="causelist_court_month",
),
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("place/<str:code>", PlaceDetailView.as_view(), name="place"),
path("legislation/", LegislationListView.as_view(), name="legislation_list"),
path(
Expand Down
1 change: 1 addition & 0 deletions peachjam/views/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from .authors import *
from .autocomplete import *
from .books import *
from .causelist import *
from .courts import *
from .document_nature import *
from .document_problem import *
Expand Down
Loading
Loading