Dockerfile updates
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
import os
|
||||
from datetime import date, datetime
|
||||
from pathlib import Path
|
||||
from typing import Iterable
|
||||
@@ -16,6 +17,10 @@ logger = logging.getLogger("data_entry_app.throughput")
|
||||
PRODUCTION_SHEET = "Production"
|
||||
NAMES_SHEET = "Names"
|
||||
|
||||
# The historical throughput export. Bundled into the image under input_data/ so
|
||||
# the seed can import it on a fresh deployment (e.g. a new Postgres volume).
|
||||
WORKBOOK_FILENAME = "Operations Throughput.xlsx"
|
||||
|
||||
# Anything at or above this kg/bag is treated as a bulka batch, not a per-bag count.
|
||||
_BULKA_BAG_SIZE_THRESHOLD = 100.0
|
||||
|
||||
@@ -57,6 +62,10 @@ def serialize_entry(entry: ProductionThroughput) -> dict:
|
||||
"label_correct": entry.label_correct,
|
||||
"bag_sealed": entry.bag_sealed,
|
||||
"pallet_good_condition": entry.pallet_good_condition,
|
||||
"for_order": entry.for_order,
|
||||
"for_stock": entry.for_stock,
|
||||
"job_number": entry.job_number,
|
||||
"stock_quantity": entry.stock_quantity,
|
||||
"sample_box_no": entry.sample_box_no,
|
||||
"test_weight_1": entry.test_weight_1,
|
||||
"test_weight_2": entry.test_weight_2,
|
||||
@@ -323,16 +332,30 @@ def import_workbook(db: Session, workbook_path: Path, tenant_id: str) -> dict:
|
||||
|
||||
def workbook_candidates() -> Iterable[Path]:
|
||||
repo_root = Path(__file__).resolve().parents[3]
|
||||
cwd = Path.cwd()
|
||||
|
||||
env_value = os.getenv("THROUGHPUT_WORKBOOK_PATH")
|
||||
env_path = Path(env_value.strip()) if isinstance(env_value, str) and env_value.strip() else None
|
||||
|
||||
# input_data/ is where the workbook is bundled in the image; in the
|
||||
# container the working directory is /app, so cwd/input_data resolves it.
|
||||
candidates = [
|
||||
repo_root / "Operations Throughput.xlsx",
|
||||
repo_root.parent / "Operations Throughput.xlsx",
|
||||
Path.cwd() / "Operations Throughput.xlsx",
|
||||
Path("/srv/lean101-clients") / "Operations Throughput.xlsx",
|
||||
Path("/app") / "Operations Throughput.xlsx",
|
||||
env_path,
|
||||
repo_root / "input_data" / WORKBOOK_FILENAME,
|
||||
cwd / "input_data" / WORKBOOK_FILENAME,
|
||||
Path("/app") / "input_data" / WORKBOOK_FILENAME,
|
||||
Path("/srv/lean101-clients") / "input_data" / WORKBOOK_FILENAME,
|
||||
repo_root / WORKBOOK_FILENAME,
|
||||
repo_root.parent / WORKBOOK_FILENAME,
|
||||
cwd / WORKBOOK_FILENAME,
|
||||
Path("/srv/lean101-clients") / WORKBOOK_FILENAME,
|
||||
Path("/app") / WORKBOOK_FILENAME,
|
||||
]
|
||||
seen: set[str] = set()
|
||||
ordered: list[Path] = []
|
||||
for candidate in candidates:
|
||||
if candidate is None:
|
||||
continue
|
||||
key = str(candidate)
|
||||
if key in seen:
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user