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 class QuestionMessage(Message): def on_event(self, event): input_element = document.getElementById("modal-question") self.new_text = input_element.value class EditSenseLabel(Message): def update_model(self, model): sense = self.get_arg(0, Sense) sense.labels = [] for input_el in document.getElementsByClassName("sense-edit-input"): new_sense_label = input_el.value if new_sense_label != "": sense.labels.append(new_sense_label) class AddSenseLabel(NoReset): def update_model(self, model): sense = self.get_arg(0, Sense) # just adding to the copy to show in the modal sense.copy().labels.append("") class AddExampleTranslation(NoReset): def update_model(self, model): example = self.get_arg(0, Example) # just adding to the copy to show in the modal example.copy().translations.append("") def update_model(self, model): # just adding to the copy to show in the modal self.example.copy().translations.append("") class EditExampleTranslation(Message): def update_model(self, model): example = self.get_arg(0, Example) example.translations = common_accessors.generic_list_getter() class AddSense(QuestionMessage): def update_model(self, model): sense = Sense.new_empty() sense.labels = [self.new_text] model.entry.senses.append(sense) class EditSenseDefinition(QuestionMessage): def update_model(self, model): sense = self.get_arg(0, Sense) sense.definition = self.new_text class EditComment(QuestionMessage): def update_model(self, model): model.entry.comment = self.new_text class EditExample(QuestionMessage): def update_model(self, model): example = self.get_arg(0, Example) example.example = self.new_text