Viewing example clusters in main view

This commit is contained in:
2020-01-28 23:05:48 +01:00
parent dc03f84e8b
commit cab655497b
7 changed files with 114 additions and 58 deletions

View File

@@ -1,6 +1,7 @@
from lib.snabbdom import h
import message
from view.modal_templates import *
from view.utils import show_toggle_cluster_buttons
def edit_translation(translation, cluster_idx, num_clusters, cls):
@@ -63,6 +64,13 @@ def edit_example(example):
h("div.three-fifth", {}, middle),
h("div.one-fifth", {}, buttons_right(idx))]))
cluster = example.get_cluster()
if cluster is not None:
divs.append(h("hr", {}, []))
divs.append(h("div.flex.five.example-component", {}, [
h("div.one-fifth", {}, "Cluster"),
h("div.four-fifth", {}, show_toggle_cluster_buttons(list(range(10))))]))
return modal_template(divs, "Edit Example", message.EditExampleText(example_original))
@@ -92,15 +100,24 @@ def edit_comment(comment):
def do_chosen_examples(example_list, entry):
# assert len(example_list) > 0
sense_of_first_example = None
example_senses = []
for idx, sense in enumerate(entry.senses):
for ex in sense.examples:
if ex == example_list[0]:
sense_of_first_example = idx
if ex in example_list:
example_senses.append(idx)
break
sense_of_first_example = example_senses[0]
# determine if one can choose clusters
# this can happen ef every example from same sense and every example a collocation
can_choose_cluster = len(set(example_senses)) == 1
idx = 0
while can_choose_cluster and idx < len(example_list):
can_choose_cluster = example_list[idx].is_collocation()
idx += 1
console.log(can_choose_cluster)
options = [h("p", {}, "Choose sense for examples")]
for idx, sense in enumerate(entry.senses):
text = "{}: {}".format(idx + 1, sense.definition["indicator"])

View File

@@ -1,5 +1,19 @@
from export import export_to_xml
from browser import window
from lib.snabbdom import h
NUM2STR = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
def show_toggle_cluster_buttons(sense, example):
result = []
for opt in sense.example_clusters():
tag = "input.cluster-list-button"
if opt == example.get_cluster():
tag += ".cluster-button-checked"
result.append(h(tag, {"attrs": {"value": NUM2STR[opt], "type": "button"}}, []))
return result
def clean_label(label):

View File

@@ -98,7 +98,7 @@ class View:
@staticmethod
def view_sense(sense, senseNum, model):
examples = [View.view_example(example, model) for example in sense.examples]
examples = [View.view_example(example, sense, model) for example in sense.examples]
result = h("div.elm-div", {}, [
h("div.sense-num", {"on": {"click": msg(ShowSenseMenu(sense))}}, str(senseNum + 1)),
@@ -111,7 +111,7 @@ class View:
return result
@staticmethod
def view_example(example, model):
def view_example(example, sense, model):
example_tag = "div.example-rest"
if example in model.chosen_examples:
example_tag += ".example-chosen"
@@ -140,6 +140,7 @@ class View:
h("div.example-dot", dot_attr, ""),
h(example_tag, {}, [
h("span.example-text", {"on": {"click": msg(ShowExampleMenu(example))} }, example_content),
h("div.example-clusters", {}, show_toggle_cluster_buttons(sense, example)),
h("div.example-translation-list", {}, [
h("div.example-translation", {}, View.view_translations(example.translations, example, model))])])])