Viewing example clusters in main view
This commit is contained in:
@@ -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"])
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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))])])])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user