diff --git a/src/message/translation_edit.py b/src/message/translation_edit.py index a9c1d57..51a4dae 100644 --- a/src/message/translation_edit.py +++ b/src/message/translation_edit.py @@ -18,6 +18,11 @@ class EditTranslation(DataChgClickMessage): # common_accessors.label_list_getter() self.translation.tags = common_accessors.label_list_getter() + # check if empty, remove! + if self.translation.is_empty(): + model.entry.remove_translation(self.translation) + return + new_cluster_idx = int(document.getElementById("cluster-num").value) - 1 self.handle_cluster_change(new_cluster_idx, model) diff --git a/src/model/entry.py b/src/model/entry.py index 0b99bb9..8bf6bd8 100644 --- a/src/model/entry.py +++ b/src/model/entry.py @@ -35,4 +35,16 @@ class Entry(Editable): def get_measure_text(self): return self.measure["text"] if "text" in self.measure else "" - + + def remove_translation(self, translation): + for sense in self.senses: + for cluster in sense.translations: + if translation in cluster: + cluster.remove(translation) + return + for example in sense.examples: + for cluster in example.translations: + if translation in cluster: + cluster.remove(translation) + return + diff --git a/src/model/translation.py b/src/model/translation.py index 86ea168..0641a10 100644 --- a/src/model/translation.py +++ b/src/model/translation.py @@ -38,3 +38,12 @@ class Translation(Editable): self.explanation = explanation.textContent if explanation else "" self.tags = import_label_list("labelList label", translation_xml) + def is_empty(self): + result = True + result = result and self.translation == "" + # next two are not checked as the also can not be deleted via gui + # result = result and self.source == "" + # result = result and self.targetLang == "" + result = result and self.explanation == "" + result = result and len(self.tags) == 0 + return result