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 from jinja2 import Environment, FileSystemLoader
import pandas as pd import pandas as pd
from discourse import DiscourseDatabase 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(): def generate_dashboard():
"""Generate dashboard from zasoby.csv file""" """Generate dashboard from zasoby.csv file"""
print("Generating HTML dashboard") print("Generating HTML dashboard")
@ -16,9 +25,16 @@ def generate_dashboard():
shutil.copytree("template/static", f"{website_folder}/static") shutil.copytree("template/static", f"{website_folder}/static")
template = env.get_template("_main_layout.html") template = env.get_template("_main_layout.html")
with open(f"{website_folder}/index.html", "w+", encoding="utf-8") as file: with open(f"{website_folder}/index.html", "w+", encoding="utf-8") as file:
header_row = data.columns.values.tolist() header_row = data.columns.values.tolist() + ["label"]
rows = data.values.tolist() rows = map(
html = template.render(title="Baza Zasobów Hackerspace Trójmiasto", t_header=header_row, t_body=rows) 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) file.write(html)
@ -26,3 +42,4 @@ if __name__ == "__main__":
DiscourseDatabase() DiscourseDatabase()
generate_dashboard() generate_dashboard()
print("Done!") print("Done!")

File diff suppressed because one or more lines are too long