From 9dd9ac7854a171e91569792d12ebed0b7e73c415 Mon Sep 17 00:00:00 2001 From: Ozbolt Menegatti Date: Sat, 1 Feb 2020 21:43:57 +0100 Subject: [PATCH] Clusters now as multipledigit number, correct-er numbering and some removal --- src/model/entry.py | 2 ++ src/model/example.py | 3 +-- src/model/sense.py | 5 +++++ src/view/modals.py | 15 --------------- src/view/utils.py | 10 ++++++++-- src/view/view.py | 2 +- 6 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/model/entry.py b/src/model/entry.py index 8bf6bd8..6339a66 100644 --- a/src/model/entry.py +++ b/src/model/entry.py @@ -30,6 +30,8 @@ class Entry(Editable): self.measure["text"] = measure.textContent self.labels = import_label_list("head labelList label", entry_xml) + + Sense.reset_cluster_count() self.senses = [Sense(sense_xml) for sense_xml in entry_xml.querySelectorAll("body senseList sense")] diff --git a/src/model/example.py b/src/model/example.py index 4b52def..d5f4841 100644 --- a/src/model/example.py +++ b/src/model/example.py @@ -106,8 +106,7 @@ class MultiwordExample: for key, value in self.other_attributes.items(): result.setAttribute(key, value) - if self.cluster_valid: - result.setAttribute("cluster", str(self.cluster)) + result.setAttribute("cluster", str(self.cluster)) if self.type is not None: result.setAttribute("type", self.type) diff --git a/src/model/sense.py b/src/model/sense.py index 6c45824..f1c8006 100644 --- a/src/model/sense.py +++ b/src/model/sense.py @@ -43,4 +43,9 @@ class Sense(Editable): result.add(cluster) return sorted(result) + + @staticmethod + def reset_cluster_count(): + global cluster_min + cluster_min = 0 diff --git a/src/view/modals.py b/src/view/modals.py index 4f3bff2..51d5cad 100644 --- a/src/view/modals.py +++ b/src/view/modals.py @@ -109,14 +109,6 @@ def do_chosen_examples(example_list, entry): 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 - options = [h("p", {}, "Choose sense for examples")] for idx, sense in enumerate(entry.senses): text = "{}: {}".format(idx + 1, sense.definition["indicator"]) @@ -130,11 +122,4 @@ def do_chosen_examples(example_list, entry): options.append(h("label.checkable", {"attrs": {"for": id_}}, text)) options.append(h("br", {}, [])) - if can_choose_cluster: - options.append(h("hr", {}, [])) - options.append(h("div.flex.five.example-component", {}, [ - h("div.two-fifth", {}, "NOT IMPLEMENTED"), - h("div.three-fifth", {}, - show_toggle_cluster_buttons(entry.senses[sense_of_first_example], example_list[0]))])) - return modal_template(options, "Examples picker", message.DoChosenExamples(example_list)) diff --git a/src/view/utils.py b/src/view/utils.py index 00bcee0..406a2ba 100644 --- a/src/view/utils.py +++ b/src/view/utils.py @@ -2,9 +2,12 @@ from export import export_to_xml from browser import window from lib.snabbdom import h import message +from math import log10 -NUM2STR = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" +def num2str(x): + return str(int(log10(x)) + 1) + def show_toggle_cluster_buttons(sense, example): cls = example.get_cluster() @@ -17,8 +20,11 @@ def show_toggle_cluster_buttons(sense, example): if opt == cls: tag += ".cluster-button-checked" + attrs = {"value": str(opt + 1), "type": "button"} + style = {"width": num2str(opt + 1) + "em"} + result.append(h(tag, - {"attrs": {"value": NUM2STR[opt], "type": "button"}, + {"attrs": attrs, "style": style, "on": {"click": message.msg(message.ExampleClusterEdit(example, opt))}}, [])) return result diff --git a/src/view/view.py b/src/view/view.py index 4a721bb..cba1390 100644 --- a/src/view/view.py +++ b/src/view/view.py @@ -121,7 +121,7 @@ class View: example_content = [] if cluster is not None: - example_content.append(h("span.example-cluster", {}, NUM2STR[cluster])) + example_content.append(h("span.example-cluster", {}, num2str(cluster))) example_text_inner_tag = "span.example-text-{}".format(example.get_view_type()) example_content.append(h(example_text_inner_tag, {}, example.text()))