From e19838a85ccf40ab081df694a1b9b7f9eb9cf44c Mon Sep 17 00:00:00 2001 From: Greg Kempe Date: Fri, 1 Mar 2024 10:43:24 +0200 Subject: [PATCH 1/2] nicer ingestor form --- peachjam/admin.py | 15 ++++++++++++-- .../0121_alter_ingestorsetting_value.py | 20 +++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 peachjam/migrations/0121_alter_ingestorsetting_value.py diff --git a/peachjam/admin.py b/peachjam/admin.py index dafb89467..a8b9eb148 100644 --- a/peachjam/admin.py +++ b/peachjam/admin.py @@ -74,6 +74,7 @@ citations_processor, pj_settings, ) +from peachjam.plugins import plugins from peachjam.resources import ( ArticleResource, AttorneyResource, @@ -821,12 +822,22 @@ class IngestorSettingInline(admin.TabularInline): extra = 3 +class IngestorForm(forms.ModelForm): + adapter = forms.ChoiceField( + choices=lambda: [(y, y) for y in plugins.registry["ingestor-adapter"].keys()] + ) + + class Meta: + model = Ingestor + fields = ("adapter", "name", "last_refreshed_at", "enabled") + + @admin.register(Ingestor) class IngestorAdmin(admin.ModelAdmin): inlines = [IngestorSettingInline] actions = ["refresh_all_content"] - fields = ("adapter", "name", "last_refreshed_at", "enabled") - list_display = ("name", "last_refreshed_at", "enabled") + list_display = ("name", "adapter", "last_refreshed_at", "enabled") + form = IngestorForm def refresh_all_content(self, request, queryset): from peachjam.tasks import run_ingestor diff --git a/peachjam/migrations/0121_alter_ingestorsetting_value.py b/peachjam/migrations/0121_alter_ingestorsetting_value.py new file mode 100644 index 000000000..f6ccb9671 --- /dev/null +++ b/peachjam/migrations/0121_alter_ingestorsetting_value.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.20 on 2024-03-01 08:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("peachjam", "0120_gazette_details"), + ] + + operations = [ + migrations.AlterField( + model_name="ingestorsetting", + name="value", + field=models.CharField( + blank=True, default="", max_length=2048, verbose_name="value" + ), + ), + ] From 67d17172bfb4968b9d23020e4fe0dda1c5459020 Mon Sep 17 00:00:00 2001 From: Greg Kempe Date: Fri, 1 Mar 2024 11:19:40 +0200 Subject: [PATCH 2/2] ignore 404s --- peachjam/adapters/indigo.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/peachjam/adapters/indigo.py b/peachjam/adapters/indigo.py index 2bb10f800..56a5aeeb6 100644 --- a/peachjam/adapters/indigo.py +++ b/peachjam/adapters/indigo.py @@ -75,7 +75,13 @@ def get_doc_list(self): logger.info(f"Getting document list for {place_code}") url = f"{self.api_url}/akn/{place_code}/.json" while url: - res = self.client_get(url).json() + try: + res = self.client_get(url).json() + except requests.exceptions.HTTPError as e: + if e.response.status_code == 404: + logger.warning(f"Ignoring 404 for {url}") + continue + raise e # ignore bills # TODO: later, make this configurable