From e4faac8b46fc8990c576d6c3e1be2474587ce39c Mon Sep 17 00:00:00 2001 From: Rajit Sarkar Date: Tue, 27 Feb 2024 09:23:29 -0500 Subject: [PATCH 1/3] CONCD-696 For all 3 import dashboards, sort campaigns alphabetically --- importer/admin.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/importer/admin.py b/importer/admin.py index 6a96e69d0..c8d77d338 100644 --- a/importer/admin.py +++ b/importer/admin.py @@ -1,7 +1,11 @@ from django.contrib import admin, messages from django.contrib.humanize.templatetags.humanize import naturaltime -from concordia.admin.filters import CampaignProjectListFilter, NullableTimestampFilter +from concordia.admin.filters import ( + CampaignListFilter, + CampaignProjectListFilter, + NullableTimestampFilter, +) from .models import ImportItem, ImportItemAsset, ImportJob from .tasks import download_asset_task @@ -55,6 +59,21 @@ class ImportJobAssetProjectListFilter(CampaignProjectListFilter): project_ref = "import_item__job__project_id" +class ImportJobCampaignListFilter(CampaignListFilter): + parameter_name = "project__campaign__id__exact" + status_filter_parameter = "project__campaign__status" + + +class ImportItemCampaignListFilter(CampaignListFilter): + parameter_name = "job__project__campaign__id__exact" + status_filter_parameter = "job__project__campaign__status" + + +class ImportItemAssetCampaignListFilter(CampaignListFilter): + parameter_name = "import_item__job__project__campaign__id__exact" + status_filter_parameter = "import_item__job__project__campaign__status" + + class TaskStatusModelAdmin(admin.ModelAdmin): readonly_fields = ( "created", @@ -116,7 +135,7 @@ class ImportJobAdmin(TaskStatusModelAdmin): CompletedFilter, FailedFilter, ("created_by", admin.RelatedOnlyFieldListFilter), - "project__campaign", + ImportJobCampaignListFilter, ImportJobProjectListFilter, ) search_fields = ("url", "status") @@ -139,7 +158,7 @@ class ImportItemAdmin(TaskStatusModelAdmin): CompletedFilter, FailedFilter, ("job__created_by", admin.RelatedOnlyFieldListFilter), - "job__project__campaign", + ImportItemCampaignListFilter, ImportJobItemProjectListFilter, ) search_fields = ("url", "status") @@ -166,7 +185,7 @@ class ImportItemAssetAdmin(TaskStatusModelAdmin): CompletedFilter, FailedFilter, ("import_item__job__created_by", admin.RelatedOnlyFieldListFilter), - "import_item__job__project__campaign", + ImportItemAssetCampaignListFilter, ImportJobAssetProjectListFilter, ) search_fields = ("url", "status") From 30bea0e13cd66a3ec5570e4e2bacd9075c9f0f5a Mon Sep 17 00:00:00 2001 From: Rajit Sarkar Date: Tue, 27 Feb 2024 10:12:19 -0500 Subject: [PATCH 2/3] CONCD-696 do not include retired campaigns in campaign filter list --- importer/admin.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/importer/admin.py b/importer/admin.py index c8d77d338..429b62f4b 100644 --- a/importer/admin.py +++ b/importer/admin.py @@ -6,6 +6,7 @@ CampaignProjectListFilter, NullableTimestampFilter, ) +from concordia.models import Campaign from .models import ImportItem, ImportItemAsset, ImportJob from .tasks import download_asset_task @@ -59,17 +60,23 @@ class ImportJobAssetProjectListFilter(CampaignProjectListFilter): project_ref = "import_item__job__project_id" -class ImportJobCampaignListFilter(CampaignListFilter): +class ImportCampaignListFilter(CampaignListFilter): + def lookups(self, request, model_admin): + queryset = Campaign.objects.exclude(status=Campaign.Status.RETIRED) + return queryset.values_list("id", "title").order_by("title") + + +class ImportJobCampaignListFilter(ImportCampaignListFilter): parameter_name = "project__campaign__id__exact" status_filter_parameter = "project__campaign__status" -class ImportItemCampaignListFilter(CampaignListFilter): +class ImportItemCampaignListFilter(ImportCampaignListFilter): parameter_name = "job__project__campaign__id__exact" status_filter_parameter = "job__project__campaign__status" -class ImportItemAssetCampaignListFilter(CampaignListFilter): +class ImportItemAssetCampaignListFilter(ImportCampaignListFilter): parameter_name = "import_item__job__project__campaign__id__exact" status_filter_parameter = "import_item__job__project__campaign__status" From 39b29b2eb5cc6149650c852994b54d100c9f78f5 Mon Sep 17 00:00:00 2001 From: Rajit Sarkar Date: Tue, 27 Feb 2024 10:22:03 -0500 Subject: [PATCH 3/3] CONCD-696 fixing the 'not allowed' error --- importer/admin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/importer/admin.py b/importer/admin.py index 429b62f4b..0d5894d6b 100644 --- a/importer/admin.py +++ b/importer/admin.py @@ -67,17 +67,17 @@ def lookups(self, request, model_admin): class ImportJobCampaignListFilter(ImportCampaignListFilter): - parameter_name = "project__campaign__id__exact" + parameter_name = "project__campaign" status_filter_parameter = "project__campaign__status" class ImportItemCampaignListFilter(ImportCampaignListFilter): - parameter_name = "job__project__campaign__id__exact" + parameter_name = "job__project__campaign" status_filter_parameter = "job__project__campaign__status" class ImportItemAssetCampaignListFilter(ImportCampaignListFilter): - parameter_name = "import_item__job__project__campaign__id__exact" + parameter_name = "import_item__job__project__campaign" status_filter_parameter = "import_item__job__project__campaign__status"