homonymy basic implementation

This commit is contained in:
matic_t
2020-07-15 04:17:58 -07:00
parent e37cf198cf
commit a22490c0fc
8 changed files with 186 additions and 139 deletions

View File

@@ -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

View File

@@ -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"):

View File

@@ -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))

View File

@@ -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())