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:
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():