definitionList UI support

This commit is contained in:
matic_t
2020-10-30 05:01:58 -07:00
parent a571a9ceb1
commit 30d0709781
7 changed files with 92 additions and 17 deletions

View File

@@ -26,6 +26,11 @@ def double_list_getter(firstParameter, secondParameter, allowEmptyField = False)
return result
def definitions_getter():
result = {}
result["indicator"] = document.getElementById("indicator-input").value
result["explanation"] = document.getElementById("explanation-input").value
return result
def label_list_getter():
result = []

View File

@@ -16,6 +16,7 @@ class ShowSenseLabelEdit(ClickMessage):
class ShowSenseDefinitionEdit(ClickMessage):
def update_model(self, model):
model.sense = self.get_arg(0, Sense)
model.sense.make_copy()
model.modal_set(lambda: modals.edit_sense_definition(model.sense))

View File

@@ -43,15 +43,42 @@ class AddToLabelList(NoReset):
class AddSense(Message):
def update_model(self, model):
sense = Sense()
sense.definition = {"indicator": "New Sense"}
sense.definitions = [{"type": "indicator", "value": "Nov pomen"}]
model.entry.senses.append(sense)
class EditSenseDefinition(QuestionMessage):
class EditSenseDefinition(Message):
def update_model(self, model):
sense = self.get_arg(0, Sense)
sense.definition["indicator"] = self.new_text
definitions_values = common_accessors.definitions_getter()
indicator = None
explanation = None
for x in sense.definitions:
if indicator is None and x["type"] == "indicator":
indicator = x
if explanation is not None:
break
if explanation is None and x["type"] == "explanation":
explanation = x
if indicator is not None:
break
if definitions_values["indicator"] != "":
if indicator is None:
indicator = {"type": "indicator"}
sense.definitions.append(indicator)
indicator["value"] = definitions_values["indicator"]
elif indicator is not None:
sense.definitions.remove(indicator)
if definitions_values["explanation"] != "":
if explanation is None:
explanation = {"type": "explanation"}
sense.definitions.append(explanation)
explanation["value"] = definitions_values["explanation"]
elif explanation is not None:
sense.definitions.remove(explanation)
class EditComment(QuestionMessage):
def update_model(self, model):