diff --git a/django/cantusdb_project/main_app/admin/chant.py b/django/cantusdb_project/main_app/admin/chant.py index e5524468b..373b59916 100644 --- a/django/cantusdb_project/main_app/admin/chant.py +++ b/django/cantusdb_project/main_app/admin/chant.py @@ -1,10 +1,20 @@ from django.contrib import admin from main_app.admin.base_admin import EXCLUDE, READ_ONLY, BaseModelAdmin +from main_app.admin.filters import InputFilter from main_app.forms import AdminChantForm from main_app.models import Chant +class SourceKeyFilter(InputFilter): + parameter_name = "source_id" + title = "Source ID" + + def queryset(self, request, queryset): + if self.value(): + return queryset.filter(source_id=self.value()) + + @admin.register(Chant) class ChantAdmin(BaseModelAdmin): @@ -30,11 +40,13 @@ def get_source_siglum(self, obj): "incipit", "cantus_id", "id", + "source__holding_institution__siglum" ) readonly_fields = READ_ONLY + ("incipit",) list_filter = ( + SourceKeyFilter, "genre", "service", )