diff --git a/src/message/common_accessors.py b/src/message/common_accessors.py new file mode 100644 index 0000000..5588f72 --- /dev/null +++ b/src/message/common_accessors.py @@ -0,0 +1,11 @@ +from browser import document + + +def generic_list_getter(): + result = [] + for input_el in document.getElementsByClassName("list-adder-input"): + result_candidate = input_el.value + if result_candidate != "": + result.append(result_candidate) + return result + diff --git a/src/message/simple_edits.py b/src/message/simple_edits.py index 5d7bf0d..a04955a 100644 --- a/src/message/simple_edits.py +++ b/src/message/simple_edits.py @@ -1,5 +1,6 @@ from message.message import Message from message.simple_messages import NoReset +import message.common_accessors as common_accessors from browser import document from model import Sense, Example @@ -50,12 +51,7 @@ class EditExampleTranslation(Message): self.example = prop def update_model(self, model): - self.example.translations = [] - for input_el in document.getElementsByClassName("list-adder-input"): - new_example_translation = input_el.value - if new_example_translation != "": - self.example.translations.append(new_example_translation) - + self.example.translations = common_accessors.generic_list_getter() class AddSense(SimpleEditMessage): diff --git a/src/view/modal_templates.py b/src/view/modal_templates.py index 4fefdf0..01d255d 100644 --- a/src/view/modal_templates.py +++ b/src/view/modal_templates.py @@ -21,7 +21,7 @@ def one_question_modal(title, msg, question, current_value, prop): return modal_template(content, title, msg, prop) -def list_adder(title, element_list_getter, add_click_message): +def generic_list_editor(title, element_list_getter, add_click_message): content = [h("span", {}, title)] for slabel in element_list_getter(): content.append(h("label", {}, [ diff --git a/src/view/modals.py b/src/view/modals.py index 8f5d042..5d220b1 100644 --- a/src/view/modals.py +++ b/src/view/modals.py @@ -63,7 +63,7 @@ def edit_sense_label(sense): def edit_example_translation(example): etl_getter = lambda: example.copy().translations - content = list_adder("Edit example translations", etl_getter, message.msg(message.AddExampleTranslation, example)) + content = generic_list_editor("Edit example translations", etl_getter, message.msg(message.AddExampleTranslation, example)) return modal_template(content, "Example Translations", message.EditExampleTranslation, example)