from message.message import Message from message.translation_edit import AddTranslation, EditTranslation from message.simple_messages import ClickMessage from model import Example, Sense, Translation from view import modals class ShowSenseLabelEdit(ClickMessage): def update_model(self, model): model.sense = self.get_arg(0, Sense) model.sense.make_copy() model.modal_set(lambda: modals.edit_sense_label(model.sense)) class ShowSenseDefinitionEdit(ClickMessage): def update_model(self, model): model.sense = self.get_arg(0, Sense) model.modal_set(lambda: modals.edit_sense_definition(model.sense)) class ShowCommentEdit(ClickMessage): def update_model(self, model): model.modal_set(lambda: modals.edit_comment(model.entry.comment)) class ShowVariantsEdit(ClickMessage): def update_model(self, model): model.entry.make_copy() model.modal_set(lambda: modals.edit_variants(model.entry)) class ShowRelatedEntriesEdit(ClickMessage): def update_model(self, model): model.entry.make_copy() model.modal_set(lambda: modals.edit_related_entries(model.entry)) class ShowExampleEdit(ClickMessage): def update_model_default(self, model): example = self.get_arg(0, Example) example.make_copy() model.modal_set(lambda: modals.edit_example(example)) class ShowEditTranslation(ClickMessage): def update_model(self, model): # 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_set(lambda: modals.edit_translation( translation, (cidx, num_clusters), EditTranslation(translation, cidx))) return # if here, that his must be example translation translation.make_copy() model.modal_set(lambda: modals.edit_translation( translation, None, EditTranslation(translation, -1))) class ShowAddTranslation(ClickMessage): def update_model(self, model): chosen_sense_or_example = self.get_arg(0) if isinstance(chosen_sense_or_example, Sense): cluster = (-1, len(chosen_sense_or_example.translations)) else: cluster = None translation = Translation.new_empty() translation.make_copy() model.modal_set(lambda: modals.edit_translation( translation, cluster, AddTranslation(translation, -1, chosen_sense_or_example))) class ShowEntryLabelsEdit(ClickMessage): def update_model(self, model): model.entry.make_copy() model.modal_set(lambda: modals.edit_entry_labels(model.entry))