Add slightly (ok, very) dirty code to generate Brother P-Touch files

This commit is contained in:
Piotr Gaczkowski 2026-02-04 10:50:33 +01:00
parent 1abbcbdc86
commit 7aa8fbee31
3 changed files with 165 additions and 31 deletions

25
main.py
View file

@ -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,9 +25,16 @@ 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)
@ -26,3 +42,4 @@ if __name__ == "__main__":
DiscourseDatabase()
generate_dashboard()
print("Done!")

File diff suppressed because one or more lines are too long