Add slightly (ok, very) dirty code to generate Brother P-Touch files
This commit is contained in:
parent
1abbcbdc86
commit
7aa8fbee31
3 changed files with 165 additions and 31 deletions
27
main.py
27
main.py
|
|
@ -1,8 +1,17 @@
|
|||
import os, shutil
|
||||
import os, re, shutil
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
import pandas as pd
|
||||
from discourse import DiscourseDatabase
|
||||
|
||||
|
||||
def add_download_button(row):
|
||||
item_id = re.sub(r'<a href.*/([0-9]+)".*', "\\1", row[1])
|
||||
download_button = (
|
||||
f'<button id="btn_{item_id}"><i class="fa fa-download"></i> {item_id}</button>'
|
||||
)
|
||||
return row + [download_button]
|
||||
|
||||
|
||||
def generate_dashboard():
|
||||
"""Generate dashboard from zasoby.csv file"""
|
||||
print("Generating HTML dashboard")
|
||||
|
|
@ -16,13 +25,21 @@ def generate_dashboard():
|
|||
shutil.copytree("template/static", f"{website_folder}/static")
|
||||
template = env.get_template("_main_layout.html")
|
||||
with open(f"{website_folder}/index.html", "w+", encoding="utf-8") as file:
|
||||
header_row = data.columns.values.tolist()
|
||||
rows = data.values.tolist()
|
||||
html = template.render(title="Baza Zasobów Hackerspace Trójmiasto", t_header=header_row, t_body=rows)
|
||||
header_row = data.columns.values.tolist() + ["label"]
|
||||
rows = map(
|
||||
add_download_button,
|
||||
data.values.tolist(),
|
||||
)
|
||||
html = template.render(
|
||||
title="Baza Zasobów Hackerspace Trójmiasto",
|
||||
t_header=header_row,
|
||||
t_body=rows,
|
||||
)
|
||||
file.write(html)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
DiscourseDatabase()
|
||||
generate_dashboard()
|
||||
print("Done!")
|
||||
print("Done!")
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,14 +1,14 @@
|
|||
footer {
|
||||
padding: 12px;
|
||||
margin-top: auto;
|
||||
padding: 12px;
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
/* || Sidenav */
|
||||
.sidenav {
|
||||
width: 250px;
|
||||
position: sticky;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
overflow-x: hidden;
|
||||
padding: 6px 8px 6px 16px;
|
||||
}
|
||||
width: 250px;
|
||||
position: sticky;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
overflow-x: hidden;
|
||||
padding: 6px 8px 6px 16px;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue