From edc851cf43323f224398451b43e101053f3ee883 Mon Sep 17 00:00:00 2001 From: Wilson Gaturu Date: Mon, 4 Mar 2024 12:37:36 +0300 Subject: [PATCH] adds lower bench model --- peachjam/admin.py | 9 +++ .../0120_judgment_lower_court_judges.py | 23 ------- .../migrations/0120_lower_court_judges.py | 60 +++++++++++++++++++ peachjam/models/judgment.py | 17 ++++++ 4 files changed, 86 insertions(+), 23 deletions(-) delete mode 100644 peachjam/migrations/0120_judgment_lower_court_judges.py create mode 100644 peachjam/migrations/0120_lower_court_judges.py diff --git a/peachjam/admin.py b/peachjam/admin.py index 02e13693f..20ac7bd02 100644 --- a/peachjam/admin.py +++ b/peachjam/admin.py @@ -67,6 +67,7 @@ LegalInstrument, Legislation, Locality, + LowerBench, MatterType, OrderOutcome, PeachJamSettings, @@ -700,6 +701,13 @@ class BenchInline(admin.TabularInline): verbose_name_plural = gettext_lazy("judges") +class LowerBenchInline(admin.TabularInline): + model = LowerBench + extra = 3 + verbose_name = gettext_lazy("lower court judge") + verbose_name_plural = gettext_lazy("lower court judges") + + class JudgmentRelationshipStackedInline(NonrelatedTabularInline): model = Relationship fields = ["predicate", "subject_work"] @@ -748,6 +756,7 @@ class JudgmentAdmin(ImportExportMixin, DocumentAdmin): resource_class = JudgmentResource inlines = [ BenchInline, + LowerBenchInline, CaseNumberAdmin, JudgmentRelationshipStackedInline, ] + DocumentAdmin.inlines diff --git a/peachjam/migrations/0120_judgment_lower_court_judges.py b/peachjam/migrations/0120_judgment_lower_court_judges.py deleted file mode 100644 index 0d2f51018..000000000 --- a/peachjam/migrations/0120_judgment_lower_court_judges.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.21 on 2024-02-29 14:24 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("peachjam", "0119_matomo"), - ] - - operations = [ - migrations.AddField( - model_name="judgment", - name="lower_court_judges", - field=models.ManyToManyField( - blank=True, - related_name="lower_court_judgments", - to="peachjam.Judge", - verbose_name="lower court judges", - ), - ), - ] diff --git a/peachjam/migrations/0120_lower_court_judges.py b/peachjam/migrations/0120_lower_court_judges.py new file mode 100644 index 000000000..9237e9941 --- /dev/null +++ b/peachjam/migrations/0120_lower_court_judges.py @@ -0,0 +1,60 @@ +# Generated by Django 3.2.21 on 2024-03-04 09:26 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("peachjam", "0119_matomo"), + ] + + operations = [ + migrations.CreateModel( + name="LowerBench", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "judge", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="peachjam.judge", + verbose_name="lower_court_judge", + ), + ), + ( + "judgment", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="lower_bench", + to="peachjam.judgment", + verbose_name="judgment", + ), + ), + ], + options={ + "ordering": ("pk",), + "unique_together": {("judgment", "judge")}, + }, + ), + migrations.AddField( + model_name="judgment", + name="lower_court_judges", + field=models.ManyToManyField( + blank=True, + related_name="lower_court_judgments", + through="peachjam.LowerBench", + to="peachjam.Judge", + verbose_name="lower court judges", + ), + ), + ] diff --git a/peachjam/models/judgment.py b/peachjam/models/judgment.py index e89deef49..42e7ae291 100644 --- a/peachjam/models/judgment.py +++ b/peachjam/models/judgment.py @@ -185,6 +185,22 @@ class Meta: unique_together = ("judgment", "judge") +class LowerBench(models.Model): + judgment = models.ForeignKey( + "Judgment", + related_name="lower_bench", + on_delete=models.CASCADE, + verbose_name=_("judgment"), + ) + judge = models.ForeignKey( + Judge, on_delete=models.PROTECT, verbose_name=_("lower_court_judge") + ) + + class Meta: + ordering = ("pk",) + unique_together = ("judgment", "judge") + + class Judgment(CoreDocument): court = models.ForeignKey( Court, on_delete=models.PROTECT, null=True, verbose_name=_("court") @@ -201,6 +217,7 @@ class Judgment(CoreDocument): ) lower_court_judges = models.ManyToManyField( Judge, + through=LowerBench, blank=True, verbose_name=_("lower court judges"), related_name="lower_court_judgments",