You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lexonomy_custom_editor/src/message/simple_edits.py

71 lines
2.1 KiB

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