commit 1f2a4000a0cf828e73abbba9f742b0c6f1e53f4b
parent e471063de2e9a32cb9404dea3b958b6e87cb83c7
Author: Paco Esteban <paco@e1e0.net>
Date: Sat, 14 Oct 2023 09:20:47 +0200
we can export to excel based on storage
Diffstat:
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/partsdb/exports/__init__.py b/partsdb/exports/__init__.py
@@ -39,12 +39,17 @@ def export_to_html(dest_folder):
helpers.html_aux_files(dest_folder)
-def export_to_excel(dest_folder="."):
- storages = db.get_storages()
- _create_excel(storages, "storage", f"{dest_folder}/storages.xlsx")
+def export_to_excel(dest_folder=".", storage_id=0):
+ if storage_id == 0:
+ storages = db.get_storages()
+ _create_excel(storages, "storage", f"{dest_folder}/storages.xlsx")
+ parts = db.list_parts()
+ part_filename = "parts_all"
+ else:
+ parts = db.list_parts_by_storage(storage_id)
+ part_filename = f"parts_sto_{storage_id}"
- parts = db.list_parts()
- _create_excel(parts, "part", f"{dest_folder}/parts.xlsx")
+ _create_excel(parts, "part", f"{dest_folder}/{part_filename}.xlsx")
def _create_excel(data, data_type, filename):
diff --git a/partsdb/partsdb.py b/partsdb/partsdb.py
@@ -326,7 +326,14 @@ def main():
action="store_true",
help="Export to Excel. Only parts and storages (default is to HTML)",
)
- ap_export.add_argument("dest_folder", help="Destination folder")
+ ap_export.add_argument(
+ "-s",
+ dest="sto_id",
+ type=int,
+ default=0,
+ help="Export only parts on a given storage ID (default to all)",
+ )
+ ap_export.add_argument("dest_folder", default=".", help="Destination folder")
args = ap.parse_args()
if not args.command:
@@ -361,7 +368,7 @@ def main():
adjust_stock(args.part_id, args.stock_mod, args.comment)
elif args.command == "export":
if args.to_excel:
- exports.export_to_excel(args.dest_folder)
+ exports.export_to_excel(args.dest_folder, args.sto_id)
else:
exports.export_to_html(args.dest_folder)
elif args.command == "cat":