From 9517bb4b6384c48e23661efed0bda0924906e45c Mon Sep 17 00:00:00 2001 From: Ozbolt Menegatti Date: Sun, 26 Jan 2020 17:10:27 +0100 Subject: [PATCH] Able to remove empty translations --- src/message/translation_edit.py | 5 +++++ src/model/entry.py | 14 +++++++++++++- src/model/translation.py | 9 +++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) 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