diff --git a/peachjam/migrations/0166_alter_coredocument_doc_type_causelist.py b/peachjam/migrations/0166_alter_coredocument_doc_type_causelist.py deleted file mode 100644 index 590bdbd8d..000000000 --- a/peachjam/migrations/0166_alter_coredocument_doc_type_causelist.py +++ /dev/null @@ -1,71 +0,0 @@ -# Generated by Django 4.2.16 on 2024-10-11 13:46 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("peachjam", "0165_editactivity"), - ] - - operations = [ - 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", - ), - ), - 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, - related_name="causelists", - 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",), - ), - ] diff --git a/peachjam/models/judgment.py b/peachjam/models/judgment.py index 811dea1bd..fed299b0e 100644 --- a/peachjam/models/judgment.py +++ b/peachjam/models/judgment.py @@ -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) @@ -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() diff --git a/peachjam/templates/peachjam/_causelist_months_list.html b/peachjam/templates/peachjam/_causelist_court_months_list.html similarity index 94% rename from peachjam/templates/peachjam/_causelist_months_list.html rename to peachjam/templates/peachjam/_causelist_court_months_list.html index dde3e98e2..339ec8a00 100644 --- a/peachjam/templates/peachjam/_causelist_months_list.html +++ b/peachjam/templates/peachjam/_causelist_court_months_list.html @@ -6,6 +6,5 @@ {% block month_option %} {% endblock %} diff --git a/peachjam/templates/peachjam/_causelist_court_registries_months_list.html b/peachjam/templates/peachjam/_causelist_court_registries_months_list.html new file mode 100644 index 000000000..95dd5b7b0 --- /dev/null +++ b/peachjam/templates/peachjam/_causelist_court_registries_months_list.html @@ -0,0 +1,11 @@ +{% extends "peachjam/_court_months_list.html" %} +{% load i18n %} +{% block month_link %} + {{ m|date:"F" }} +{% endblock %} +{% block month_option %} + +{% endblock %} diff --git a/peachjam/templates/peachjam/_causelist_court_registries_years_list.html b/peachjam/templates/peachjam/_causelist_court_registries_years_list.html new file mode 100644 index 000000000..be54df368 --- /dev/null +++ b/peachjam/templates/peachjam/_causelist_court_registries_years_list.html @@ -0,0 +1,11 @@ +{% extends "peachjam/_court_years_list.html" %} +{% load i18n %} +{% block year_link %} + {{ y.year }} +{% endblock %} +{% block year_option %} + +{% endblock %} diff --git a/peachjam/templates/peachjam/_causelist_years_list.html b/peachjam/templates/peachjam/_causelist_court_years_list.html similarity index 100% rename from peachjam/templates/peachjam/_causelist_years_list.html rename to peachjam/templates/peachjam/_causelist_court_years_list.html diff --git a/peachjam/templates/peachjam/causelist_court_detail.html b/peachjam/templates/peachjam/causelist_court_detail.html index 44e38decd..4bb57cf14 100644 --- a/peachjam/templates/peachjam/causelist_court_detail.html +++ b/peachjam/templates/peachjam/causelist_court_detail.html @@ -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 %} diff --git a/peachjam/templates/peachjam/causelist_court_registry_detail.html b/peachjam/templates/peachjam/causelist_court_registry_detail.html new file mode 100644 index 000000000..82bbd31c1 --- /dev/null +++ b/peachjam/templates/peachjam/causelist_court_registry_detail.html @@ -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 %} diff --git a/peachjam/templates/peachjam/causelist_detail.html b/peachjam/templates/peachjam/causelist_detail.html index 4aa29da67..50a777390 100644 --- a/peachjam/templates/peachjam/causelist_detail.html +++ b/peachjam/templates/peachjam/causelist_detail.html @@ -1 +1,53 @@ {% extends 'peachjam/layouts/document_detail.html' %} +{% load i18n %} +{% block breadcrumbs %} +