diff --git a/bookwyrm/templates/book/format_filter.html b/bookwyrm/templates/book/format_filter.html index 7bd8f6c7..05275528 100644 --- a/bookwyrm/templates/book/format_filter.html +++ b/bookwyrm/templates/book/format_filter.html @@ -5,8 +5,11 @@
diff --git a/bookwyrm/templates/book/language_filter.html b/bookwyrm/templates/book/language_filter.html index fc21d5e2..c6798a9b 100644 --- a/bookwyrm/templates/book/language_filter.html +++ b/bookwyrm/templates/book/language_filter.html @@ -5,8 +5,11 @@
diff --git a/bookwyrm/views/books.py b/bookwyrm/views/books.py index 6d10e131..8434cec0 100644 --- a/bookwyrm/views/books.py +++ b/bookwyrm/views/books.py @@ -252,11 +252,18 @@ class Editions(View): if is_api_request(request): return ActivitypubResponse(work.to_edition_list(**request.GET)) + filters = {} + + if request.GET.get("language"): + filters["languages__contains"] = [request.GET.get("language")] + if request.GET.get("format"): + filters["physical_format__iexact"] = request.GET.get("format") + editions = work.editions.order_by("-edition_rank").all() languages = set(sum([e.languages for e in editions], [])) data = { - "editions": editions, + "editions": editions.filter(**filters).all(), "work": work, "languages": languages, "formats": set(e.physical_format.lower() for e in editions),