Moving last one: translation to new view
This commit is contained in:
parent
46fd628f11
commit
f822aed45a
|
@ -62,7 +62,7 @@ class ShowAddTranslation(ClickMessage):
|
||||||
def update_model(self, model):
|
def update_model(self, model):
|
||||||
chosen_sense_or_example = self.get_arg(0)
|
chosen_sense_or_example = self.get_arg(0)
|
||||||
|
|
||||||
translation = Translation.new_empty()
|
translation = Translation()
|
||||||
translation.make_copy()
|
translation.make_copy()
|
||||||
model.modal_set(lambda: modals.edit_translation(
|
model.modal_set(lambda: modals.edit_translation(
|
||||||
translation,
|
translation,
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
from model.tags import import_label_list
|
from model.tags import import_label_list
|
||||||
from model.data import Data as Editable
|
from model.data import Data
|
||||||
|
|
||||||
|
from lib.snabbdom import h
|
||||||
|
from view.utils import clean_label
|
||||||
|
import message as M
|
||||||
|
|
||||||
|
|
||||||
def from_container_list(translation_list_container_xml):
|
def from_container_list(translation_list_container_xml):
|
||||||
|
@ -12,7 +16,9 @@ def from_container_list(translation_list_container_xml):
|
||||||
num_cluster = int(translation_xml.getAttribute("cluster"))
|
num_cluster = int(translation_xml.getAttribute("cluster"))
|
||||||
|
|
||||||
max_num_cluster = max(max_num_cluster, num_cluster)
|
max_num_cluster = max(max_num_cluster, num_cluster)
|
||||||
translations.append((num_cluster, Translation(translation_xml)))
|
t = Translation()
|
||||||
|
t.import_xml(translation_xml)
|
||||||
|
translations.append((num_cluster, t))
|
||||||
|
|
||||||
result = [[] for _ in range(max_num_cluster)]
|
result = [[] for _ in range(max_num_cluster)]
|
||||||
for clusterNum, translation in translations:
|
for clusterNum, translation in translations:
|
||||||
|
@ -21,23 +27,46 @@ def from_container_list(translation_list_container_xml):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
class Translation(Editable):
|
class Translation(Data):
|
||||||
def __init__(self, translation_xml):
|
def __init__(self, translation_xml):
|
||||||
|
self.translation = ""
|
||||||
|
self.source = ""
|
||||||
|
self.targetLang = ""
|
||||||
|
self.explanation = ""
|
||||||
|
self.tags = []
|
||||||
|
|
||||||
|
def import_xml(self, translation_xml):
|
||||||
translation = translation_xml.querySelector("translation")
|
translation = translation_xml.querySelector("translation")
|
||||||
|
|
||||||
if translation:
|
if translation:
|
||||||
self.translation = translation.textContent
|
self.translation = translation.textContent
|
||||||
self.source = translation.getAttribute("source") if translation.hasAttribute("source") else ""
|
self.source = translation.getAttribute("source") if translation.hasAttribute("source") else ""
|
||||||
self.targetLang = translation.getAttribute("targetLang") if translation.hasAttribute("targetLang") else ""
|
self.targetLang = translation.getAttribute("targetLang") if translation.hasAttribute("targetLang") else ""
|
||||||
else:
|
|
||||||
self.translation = ""
|
|
||||||
self.source = ""
|
|
||||||
self.targetLang = ""
|
|
||||||
|
|
||||||
explanation = translation_xml.querySelector("explanation")
|
explanation = translation_xml.querySelector("explanation")
|
||||||
self.explanation = explanation.textContent if explanation else ""
|
self.explanation = explanation.textContent if explanation else ""
|
||||||
self.tags = import_label_list("labelList label", translation_xml)
|
self.tags = import_label_list("labelList label", translation_xml)
|
||||||
|
|
||||||
|
|
||||||
|
def view(self, model):
|
||||||
|
elements = []
|
||||||
|
|
||||||
|
if self.tags:
|
||||||
|
tags = h("div.translation-tags", {}, [
|
||||||
|
h("span", {"attr": {"title": key}}, clean_label(value))
|
||||||
|
for key, value in self.tags])
|
||||||
|
elements.append(tags)
|
||||||
|
|
||||||
|
elements.append(h("span.translation-text", {}, self.translation))
|
||||||
|
if self.source:
|
||||||
|
elements.append(h("span.translation-source", {}, self.source))
|
||||||
|
|
||||||
|
explanation_class = ".translation-explanation" if self.translation else ""
|
||||||
|
elements.append(h("span{}".format(explanation_class), {}, self.explanation))
|
||||||
|
|
||||||
|
return h("div.translation-div", {"on": {"click": M.msg(M.ShowTranslationMenu, self) }}, elements)
|
||||||
|
|
||||||
|
|
||||||
def is_empty(self):
|
def is_empty(self):
|
||||||
result = True
|
result = True
|
||||||
result = result and self.translation == ""
|
result = result and self.translation == ""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user