from message.message import Message from message.translation_edit import AddTranslation, EditTranslation from message.simple_messages import ClickMessage, CtrlClickMessage from model import Example, Sense, Translation from view import modals class ShowSenseLabelEdit(ClickMessage): def update_model(self, model): model.modal_shown = True model.sense = self.get_arg(0, Sense) model.sense.make_copy() model.modal = lambda: modals.edit_sense_label(model.sense) class ShowSenseDefinitionEdit(ClickMessage): def update_model(self, model): model.modal_shown = True model.sense = self.get_arg(0, Sense) model.modal = lambda: modals.edit_sense_definition(model.sense) class ShowCommentEdit(ClickMessage): def update_model(self, model): model.modal_shown = True model.modal = lambda: modals.edit_comment(model.entry.comment) class ShowVariantsEdit(ClickMessage): def update_model(self, model): model.modal_shown = True model.entry.make_copy() model.modal = lambda: modals.edit_variants(model.entry) class ShowExampleEdit(CtrlClickMessage): def update_model_noctrl(self, model): model.modal_shown = True example = self.get_arg(0, Example) # if some are chosen, then show modal for choosing senses if len(model.chosen_examples) > 0 and example in model.chosen_examples: chosen_examples = model.chosen_examples model.modal = lambda: modals.do_chosen_examples(chosen_examples, model.entry) else: model.modal = lambda: modals.edit_example(example) def update_model_ctrl(self, model): example = self.get_arg(0, Example) if example in model.chosen_examples: model.chosen_examples.remove(example) else: model.chosen_examples.append(example) def reset(self): # special case, when choosing messages dont reset return not self.ctrl class ShowExampleTranslationEdit(ClickMessage): def update_model(self, model): model.modal_shown = True example = self.get_arg(0, Example) example.make_copy() model.modal = lambda: modals.edit_example_translation(example) class ShowEditTranslation(ClickMessage): def update_model(self, model): model.modal_shown = True # I need to get number of all clusters and cluster of self.arg translation = self.get_arg(0, Translation) for sense in model.entry.senses: num_clusters = len(sense.translations) for cidx, cluster in enumerate(sense.translations): for t in cluster: if t == translation: # fount the one! translation.make_copy() model.modal = lambda: modals.edit_translation( translation, cidx, num_clusters, EditTranslation(translation, cidx)) return console.log("Should not be here!") class ShowAddTranslation(ClickMessage): def update_model(self, model): model.modal_shown = True chosen_sense = self.get_arg(0, Sense) for sense in model.entry.senses: if sense == chosen_sense: translation = Translation.new_empty() translation.make_copy() model.modal = lambda: modals.edit_translation( translation, -1, len(sense.translations), AddTranslation(translation, -1, sense)) return console.log("Should not be here!") class ShowEntryLabelsEdit(ClickMessage): def update_model(self, model): model.modal_shown = True model.entry.make_copy() model.modal = lambda: modals.edit_entry_labels(model.entry)