Source code for abed.html.scalar_tables
import dominate
import os
from .common import navbar, bootstrap_radio_group, generate_buttons
from .utils import AbedHTMLTypes, copy_data_file
from ..conf import settings
from ..io import info
from ..utils import clean_str
tags = dominate.tags
[docs]def create_scalar_tables_html(tables):
html = generate_tables_html(tables)
write_tables_html(html)
[docs]def get_table_id(table):
values = []
values.append(clean_str(table.target))
values.append(clean_str(table.type))
if table.is_summary:
values.append("summary")
return "_".join(values)
[docs]def generate_tables_html(tables):
doc = dominate.document(title="ABED Scalar Tables")
with doc.head:
# meta tags
tags.meta(charset="utf-8")
tags.meta(http_equiv="X-UA-Compatible", content="IE=edge")
tags.meta(
name="viewport", content="width=device-width, initial-scale=1"
)
tags.meta(name="description", content="")
tags.meta(name="author", content="")
# tags.link(rel='icon', href=copy_data_file('ABED/images/favicon.ico'))
# JQuery & Bootstrap JS
tags.script(src=copy_data_file("jquery/1.11.3/jquery.min.js"))
tags.script(
src=copy_data_file("bootstrap-3.3.5-dist/js/bootstrap.min.js")
)
# Bootstrap core CSS
tags.link(
rel="stylesheet",
href=copy_data_file("bootstrap-3.3.5-dist/css/bootstrap.min.css"),
)
# Datatables CSS & JS
tags.link(
rel="stylesheet",
href=copy_data_file(
"DataTables-1.10.7/media/css/jquery.dataTables.css"
),
)
tags.script(
type="text/javascript",
src=copy_data_file(
"DataTables-1.10.7/media/js/jquery.dataTables.js"
),
)
# ABED CSS & JS
tags.link(rel="stylesheet", href=copy_data_file("abed/css/abed.css"))
tags.script(
type="text/javascript",
src=copy_data_file("abed/js/abed_showtables.js"),
)
tags.script(
type="text/javascript",
src=copy_data_file("abed/js/abed_scalartables.js"),
)
with doc:
navbar(active=AbedHTMLTypes.SCALAR_TABLES)
with tags.div(_class="container"):
with tags.table(
id="AbedButtons",
_class="display",
cellspacing="0",
width="100%",
):
with tags.thead():
tr = tags.tr()
tr += tags.th("Target")
tr += tags.th("Output Type")
with tags.tbody():
tr = tags.tr()
tr += tags.td(
bootstrap_radio_group(
generate_buttons(tables, "target")
)
)
tr += tags.td(
bootstrap_radio_group(generate_buttons(tables, "type"))
)
for table in tables:
tabid = get_table_id(table)
with tags.div(id="div_" + tabid, _class="AbedTable"):
if "summary" in tabid:
tags.p("Summary Table:")
with tags.table(
id="tbl_" + tabid,
_class="display",
cellspacing="0",
width="100%",
):
with tags.thead():
tr = tags.tr()
for hdr in table.headers:
tr += tags.th(hdr)
if not "summary" in tabid:
with tags.tfoot():
tr = tags.tr()
for hdr in table.headers:
tr += tags.th(hdr)
tags.comment("/.container")
return str(doc)
[docs]def write_tables_html(doc):
fname = "%s%s%s%s%s" % (
settings.OUTPUT_DIR,
os.sep,
"html",
os.sep,
"scalar_tables.html",
)
with open(fname, "w") as fid:
fid.write(doc)
info("Created output file: %s" % fname)