partsdb

electronic parts inventory
git clone https://git.e1e0.net/partsdb.git
Log | Files | Refs | README | LICENSE

commit dc4f7c304c10374c092048d3b13d3eea29779234
parent 2e92e26fd6dad72b5057326fe423237b07fb5073
Author: Paco Esteban <paco@e1e0.net>
Date:   Sat,  7 Oct 2023 19:58:08 +0200

move export function to its own module where it belongs

Diffstat:
Mpartsdb/exports/__init__.py | 40++++++++++++++++++++++++++++++++++++++++
Mpartsdb/partsdb.py | 27++-------------------------
2 files changed, 42 insertions(+), 25 deletions(-)

diff --git a/partsdb/exports/__init__.py b/partsdb/exports/__init__.py @@ -0,0 +1,40 @@ +import os +from jinja2 import Environment, PackageLoader, select_autoescape + +from partsdb import database as pdb +from partsdb import helpers + + +db = pdb.PartsDB( + os.getenv("PARTSDB_FILE", f"{os.getenv('HOME')}/.local/share/partsdb/parts.db") +) + + +def export_to_html(dest_folder): + env = Environment( + loader=PackageLoader("partsdb.exports", "templates"), + autoescape=select_autoescape(["html", "xml"]), + ) + categories = db.get_categories() + storages = db.get_storages() + helpers.html_main_index(dest_folder, categories, storages, env) + for s in categories: + parts = db.list_parts_by_category(s["name"]) + helpers.html_category_index(dest_folder, s, parts, env) + for s in storages: + parts = db.list_parts_by_storage(s["name"]) + helpers.html_storage_index(dest_folder, s, parts, env) + parts = db.list_parts() + for p in parts: + part = db.get_part(p["id"]) + history = db.get_part_history(p["id"]) + helpers.html_part(dest_folder, part, history, env) + image = db.get_image(p["id"]) + datasheet = db.get_datasheet(p["id"]) + helpers.html_attachments(dest_folder, p["id"], datasheet, image) + helpers.html_css(dest_folder, env) + helpers.html_aux_files(dest_folder) + + +def export_to_excel(dest_folder="."): + pass diff --git a/partsdb/partsdb.py b/partsdb/partsdb.py @@ -7,9 +7,8 @@ import os import sys import urllib.request -from jinja2 import Environment, PackageLoader, select_autoescape - from partsdb import database as pdb +from partsdb import exports from partsdb import helpers from partsdb import octopart as oc @@ -178,29 +177,7 @@ def adjust_stock(part_id, stock_mod, comment): def export_db(dest_folder): - env = Environment( - loader=PackageLoader("partsdb.exports", "templates"), - autoescape=select_autoescape(["html", "xml"]), - ) - categories = db.get_categories() - storages = db.get_storages() - helpers.html_main_index(dest_folder, categories, storages, env) - for s in categories: - parts = db.list_parts_by_category(s["name"]) - helpers.html_category_index(dest_folder, s, parts, env) - for s in storages: - parts = db.list_parts_by_storage(s["name"]) - helpers.html_storage_index(dest_folder, s, parts, env) - parts = db.list_parts() - for p in parts: - part = db.get_part(p["id"]) - history = db.get_part_history(p["id"]) - helpers.html_part(dest_folder, part, history, env) - image = db.get_image(p["id"]) - datasheet = db.get_datasheet(p["id"]) - helpers.html_attachments(dest_folder, p["id"], datasheet, image) - helpers.html_css(dest_folder, env) - helpers.html_aux_files(dest_folder) + exports.export_to_html(dest_folder) def list_categories():