diff --git a/scipost_django/journals/views.py b/scipost_django/journals/views.py index 98184c03e90c7b9bb2ec9078a4d8d6cc4cba1885..953ad128ba3309098db2b035b18fd37e254f3cef 100644 --- a/scipost_django/journals/views.py +++ b/scipost_django/journals/views.py @@ -1201,7 +1201,18 @@ def _hx_citation_list_item_delete(request, doi_label, index: int): "You do not have permission to delete a citation in this non-draft Publication" ) - publication.metadata["citation_list"].pop(index) + if publication.metadata is None: + return HTMXResponse("No metadata found", tag="danger") + elif "citation_list" not in publication.metadata: + return HTMXResponse("No citation list found", tag="danger") + + try: + publication.metadata["citation_list"].pop(index) + except IndexError: + return HTMXResponse( + f"Index {index} out of range ({len(publication.metadata['citation_list'])})", + tag="danger", + ) publication.save() return HttpResponse("")