From fa3b063ff020e50c738f8d40172143e4231050ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Setni=C4=8Dka?= <setnicka@seznam.cz>
Date: Sun, 3 Jan 2021 20:49:24 +0100
Subject: [PATCH] =?UTF-8?q?Table:=20P=C5=99id=C3=A1n=20CellCheckbox=20a=20?=
=?UTF-8?q?mo=C5=BEnost=20skr=C3=BDt=20odkazy?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Při použití ve filtrovacích formech je lepší odkaz tvořit ve Formu.
---
mo/web/table.py | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/mo/web/table.py b/mo/web/table.py
index 4121226a..9d816ff2 100644
--- a/mo/web/table.py
+++ b/mo/web/table.py
@@ -55,15 +55,35 @@ class CellLink(Cell):
return a + '>' + escape(self.text) + '</a>'
+class CellCheckbox(Cell):
+ name: str
+ value: str
+ checked: bool
+
+ def __init__(self, name: str, value: str, checked: bool = False):
+ Cell.__init__(self, "")
+ self.name = name
+ self.value = value
+ self.checked = checked
+
+ def to_html(self) -> str:
+ ch = f'<input type="checkbox" name="{self.name}" value="{self.value}"'
+ if self.checked:
+ ch += ' checked'
+ return ch + '>'
+
+
class Table:
columns: Sequence[Column]
rows: Iterable[dict]
filename: str
+ show_downlink: bool
- def __init__(self, columns: Sequence[Column], rows: Iterable[dict], filename: str):
+ def __init__(self, columns: Sequence[Column], rows: Iterable[dict], filename: str, show_downlink: bool = True):
self.columns = columns
self.rows = rows
self.filename = filename
+ self.show_downlink = show_downlink
def to_html(self) -> str:
tab = ['<table class=data>', '<tr>']
@@ -82,7 +102,8 @@ class Table:
tab.append(f'\t<td>{vals}')
tab.append('</table>')
- tab.append("<p>Stáhnout jako <a href='?format=csv'>CSV</a> nebo <a href='?format=tsv'>TSV</a>.")
+ if self.show_downlink:
+ tab.append("<p>Stáhnout jako <a href='?format=csv'>CSV</a> nebo <a href='?format=tsv'>TSV</a>.")
return Markup("\n".join(tab))
def to_csv(self, dialect: str) -> str:
--
GitLab