From de5fa0daee48efb95017a6f03beb279db4c262ff Mon Sep 17 00:00:00 2001 From: PouyaMohseni Date: Sun, 5 Apr 2026 15:36:06 -0400 Subject: [PATCH] fix: try to assign a new instrument name when the main name/language is removed resolved #541 --- .../apps/instruments/views/update_umil_db.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/web-app/django/VIM/apps/instruments/views/update_umil_db.py b/web-app/django/VIM/apps/instruments/views/update_umil_db.py index 6817025d..579fd008 100644 --- a/web-app/django/VIM/apps/instruments/views/update_umil_db.py +++ b/web-app/django/VIM/apps/instruments/views/update_umil_db.py @@ -273,9 +273,33 @@ def delete_name(request: HttpRequest) -> JsonResponse: instrument_id = instrument_name.instrument_id + # Retain language and label info before deletion + language_id = instrument_name.language_id + was_umil_label = instrument_name.umil_label + # Delete the name instrument_name.delete() + # Assign new label: If the deleted name was the main/UMIL label for its instrument/language + # AND there's at least one other name for this instrument in that language, + if was_umil_label: + next_label_name = ( + InstrumentName.objects.filter( + instrument_id=instrument_id, language_id=language_id + ) + .order_by("pk") + .first() + ) + if next_label_name: + next_label_name.umil_label = True + try: + next_label_name.save(update_fields=["umil_label"]) + except Exception as e: + logger.error( + f"Could not assign new main name for instrument_id={instrument_id} " + f"language_id={language_id}: {e}" + ) + # Schedule Solr reindex after commit so the deleted name is removed from search def schedule_indexing(): try: