homonymy basic implementation
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
from message.simple_messages import NoReset, Reset, ModalNotOkClose, ClickMessage, DataChgClickMessage, KeyboardPress, NoAction
|
||||
from message.translation_edit import EditTranslation, MoveRight, MoveLeft, BinTranslation
|
||||
from message.show_messages import ShowEntryLabelsEdit, ShowEditTranslation, ShowSenseLabelEdit, ShowSenseDefinitionEdit, ShowCommentEdit, ShowAddTranslation, ShowExampleEdit, ShowVariantsEdit, ShowRelatedEntriesEdit
|
||||
from message.simple_edits import EditSenseLabel, EditSenseDefinition, EditComment, AddSenseLabel, AddSense, AddExampleTranslation, DoChosenExamples, AddToLabelList, AddToGenericList, EditVariants, EditRelatedEntries, EditEntryLabels, ExampleClusterEdit, ExampleClusterAdd
|
||||
from message.show_messages import ShowEntryLabelsEdit, ShowEditTranslation, ShowSenseLabelEdit, ShowSenseDefinitionEdit, ShowCommentEdit, ShowAddTranslation, ShowExampleEdit, ShowVariantsEdit, ShowHomonymyEdit, ShowRelatedEntriesEdit
|
||||
from message.simple_edits import EditSenseLabel, EditSenseDefinition, EditComment, AddSenseLabel, AddSense, AddExampleTranslation, DoChosenExamples, AddToLabelList, AddToGenericList, EditVariants, EditHomonymy, EditRelatedEntries, EditEntryLabels, ExampleClusterEdit, ExampleClusterAdd
|
||||
from message.show_menu import ShowTranslationMenu, ShowSenseMenu, ShowExampleMenu
|
||||
from message.sense_edit import SenseMoveUp, SenseMoveDown, SenseBin, AddMultiwordExample
|
||||
from message.example_edit import ExampleMoveUp, ExampleMoveDown, ExampleBin, ExampleRoleChange, ExampleComponentSpace, ExampleComponentAdd, ExampleComponentRemove, EditExampleText, ToggleExamples, ToggleClusters
|
||||
from message.delete_messages import DeleteComment, DeleteVariants, DeleteRelatedEntries, DeleteEntryLabels
|
||||
from message.delete_messages import DeleteComment, DeleteVariants, DeleteHomonymy, DeleteRelatedEntries, DeleteEntryLabels
|
||||
from message.ske_messages import ShowSkeModal, SearchInSkeModal, SkeInsert
|
||||
|
||||
from message.message import msg, delayed_msg
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,18 +6,26 @@ from message.simple_messages import NoReset
|
||||
class DeleteComment(NoReset):
|
||||
def update_model(self, model):
|
||||
document.getElementById("modal-question").value = ""
|
||||
|
||||
|
||||
|
||||
|
||||
class DeleteVariants(NoReset):
|
||||
def update_model(self, model):
|
||||
for el in document.getElementsByClassName("list-adder-input"):
|
||||
el.value = ""
|
||||
|
||||
|
||||
|
||||
|
||||
class DeleteRelatedEntries(DeleteVariants):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class DeleteHomonymy(NoReset):
|
||||
def update_model(self, model):
|
||||
for el in document.getElementsByClassName("list-adder-input"):
|
||||
el.value = ""
|
||||
|
||||
|
||||
|
||||
class DeleteEntryLabels(NoReset):
|
||||
def update_model(self, model):
|
||||
for sel in document.getElementsByClassName("label-value"):
|
||||
|
||||
@@ -3,16 +3,16 @@ 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)
|
||||
@@ -22,35 +22,41 @@ class ShowSenseDefinitionEdit(ClickMessage):
|
||||
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 ShowHomonymyEdit(ClickMessage):
|
||||
def update_model(self, model):
|
||||
model.entry.make_copy()
|
||||
model.modal_set(lambda: modals.edit_homonymy(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(self, model):
|
||||
example = self.get_arg(0, Example)
|
||||
sense = self.get_arg(1, Sense)
|
||||
example.make_copy()
|
||||
model.modal_set(lambda: modals.edit_example(example, sense))
|
||||
|
||||
|
||||
|
||||
|
||||
class ShowEditTranslation(ClickMessage):
|
||||
def update_model(self, model):
|
||||
translation = self.get_arg(0, Translation)
|
||||
|
||||
|
||||
# Get translation location
|
||||
(cidx, idx), (parent, cluster) = EditTranslation.get_translation_location(model.entry, translation)
|
||||
|
||||
|
||||
translation.make_copy()
|
||||
num_clusters = len(parent.translations)
|
||||
model.modal_set(lambda: modals.edit_translation(
|
||||
@@ -61,10 +67,10 @@ class ShowAddTranslation(ClickMessage):
|
||||
def update_model(self, model):
|
||||
chosen_sense_or_example = self.get_arg(0)
|
||||
translation = Translation()
|
||||
|
||||
|
||||
translation.make_copy()
|
||||
model.modal_set(lambda: modals.edit_translation(
|
||||
translation,
|
||||
translation,
|
||||
chosen_sense_or_example,
|
||||
-1,
|
||||
len(chosen_sense_or_example.translations),
|
||||
@@ -75,4 +81,4 @@ class ShowEntryLabelsEdit(ClickMessage):
|
||||
def update_model(self, model):
|
||||
model.entry.make_copy()
|
||||
model.modal_set(lambda: modals.edit_entry_labels(model.entry))
|
||||
|
||||
|
||||
|
||||
@@ -22,20 +22,20 @@ class AddToGenericList(NoReset):
|
||||
def update_model(self, model):
|
||||
list_getter = self.get_arg(0)
|
||||
list_getter().append("")
|
||||
|
||||
|
||||
def data_change(self):
|
||||
return False
|
||||
|
||||
|
||||
|
||||
|
||||
class AddToLabelList(NoReset):
|
||||
def update_model(self, model):
|
||||
list_to_add_to = self.get_arg(0, list)
|
||||
thing_to_add_getter = self.get_arg(1)
|
||||
thing_to_add = thing_to_add_getter()
|
||||
|
||||
|
||||
# just adding to the copy to show in the modal
|
||||
list_to_add_to.append(thing_to_add)
|
||||
|
||||
|
||||
def data_change(self):
|
||||
return False
|
||||
|
||||
@@ -45,14 +45,14 @@ class AddSense(Message):
|
||||
sense = Sense()
|
||||
sense.definition = {"indicator": "New Sense"}
|
||||
model.entry.senses.append(sense)
|
||||
|
||||
|
||||
|
||||
|
||||
class EditSenseDefinition(QuestionMessage):
|
||||
def update_model(self, model):
|
||||
sense = self.get_arg(0, Sense)
|
||||
sense.definition["indicator"] = self.new_text
|
||||
|
||||
|
||||
|
||||
|
||||
class EditComment(QuestionMessage):
|
||||
def update_model(self, model):
|
||||
model.entry.comment = self.new_text
|
||||
@@ -61,24 +61,24 @@ class EditComment(QuestionMessage):
|
||||
class DoChosenExamples(Message):
|
||||
def update_model(self, model):
|
||||
chosen_examples = self.get_arg(0, list)
|
||||
|
||||
|
||||
inputs = document.getElementsByClassName("checkable-input")
|
||||
selected = None
|
||||
for idx, el in enumerate(inputs):
|
||||
if el.checked:
|
||||
selected = idx
|
||||
break
|
||||
|
||||
|
||||
# none was selected
|
||||
if selected is None:
|
||||
return
|
||||
|
||||
|
||||
# first, remove the selected examples from wherever they were
|
||||
for sense in model.entry.senses:
|
||||
for example in chosen_examples:
|
||||
if example in sense.examples:
|
||||
sense.examples.remove(example)
|
||||
|
||||
|
||||
# now, append selected examples to chosen sense
|
||||
model.entry.senses[selected].examples.extend(chosen_examples)
|
||||
|
||||
@@ -87,8 +87,13 @@ class EditVariants(Message):
|
||||
def update_model(self, model):
|
||||
variants = common_accessors.generic_list_getter()
|
||||
model.entry.variants = variants
|
||||
|
||||
|
||||
|
||||
class EditHomonymy(Message):
|
||||
def update_model(self, model):
|
||||
homonymy = common_accessors.generic_list_getter()
|
||||
model.entry.homonymy = homonymy
|
||||
|
||||
|
||||
class EditRelatedEntries(Message):
|
||||
def update_model(self, model):
|
||||
related_entries = common_accessors.generic_list_getter()
|
||||
@@ -99,17 +104,17 @@ class EditEntryLabels(Message):
|
||||
def update_model(self, model):
|
||||
labels = common_accessors.label_list_getter()
|
||||
model.entry.labels = labels
|
||||
|
||||
|
||||
|
||||
|
||||
class ExampleClusterEdit(DataChgClickMessage):
|
||||
def update_model(self, model):
|
||||
example = self.get_arg(0, Example)
|
||||
cluster = self.get_arg(1, int)
|
||||
example.set_cluster(cluster)
|
||||
|
||||
|
||||
|
||||
|
||||
class ExampleClusterAdd(DataChgClickMessage):
|
||||
def update_model(self, model):
|
||||
example = self.get_arg(0, Example)
|
||||
example.set_cluster(ExampleClusters.first_empty_cluster())
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user