refactor: rebrand project to HartOMat
This commit is contained in:
@@ -1014,9 +1014,9 @@ async def get_dashboard_stats(
|
||||
if isinstance(entry, dict) and entry.get("material"):
|
||||
all_mat_names.add(entry["material"])
|
||||
|
||||
# Library materials (name starts with SCHAEFFLER_)
|
||||
# Library materials (name starts with HARTOMAT_)
|
||||
lib_count_result = await db.execute(
|
||||
select(func.count(Material.id)).where(Material.name.like("SCHAEFFLER_%"))
|
||||
select(func.count(Material.id)).where(Material.name.like("HARTOMAT_%"))
|
||||
)
|
||||
library_material_count = lib_count_result.scalar() or 0
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ async def get_material_pbr_map(db: AsyncSession = Depends(get_db)):
|
||||
}
|
||||
|
||||
# Also index by aliases so frontend can look up by raw Excel names
|
||||
# (e.g. "Steel--Stahl" → same PBR as "SCHAEFFLER_010101_Steel-Bare")
|
||||
# (e.g. "Steel--Stahl" → same PBR as "HARTOMAT_010101_Steel-Bare")
|
||||
# Bypass RLS — this is public data and aliases may have NULL tenant_id
|
||||
if pbr_map:
|
||||
await db.execute(text("SET LOCAL app.current_tenant_id = 'bypass'"))
|
||||
|
||||
@@ -23,7 +23,7 @@ class MaterialOut(BaseModel):
|
||||
name: str
|
||||
description: str | None
|
||||
source: str
|
||||
schaeffler_code: int | None = None
|
||||
hartomat_code: int | None = None
|
||||
created_by_name: str | None = None
|
||||
aliases: list[str] = []
|
||||
created_at: datetime
|
||||
@@ -42,7 +42,7 @@ class MaterialCreate(BaseModel):
|
||||
name: str
|
||||
description: str | None = None
|
||||
source: str = "manual"
|
||||
schaeffler_code: int | None = None
|
||||
hartomat_code: int | None = None
|
||||
|
||||
|
||||
class MaterialUpdate(BaseModel):
|
||||
@@ -64,7 +64,7 @@ def _to_out(mat: Material) -> MaterialOut:
|
||||
name=mat.name,
|
||||
description=mat.description,
|
||||
source=mat.source,
|
||||
schaeffler_code=mat.schaeffler_code,
|
||||
hartomat_code=mat.hartomat_code,
|
||||
created_by_name=creator_name,
|
||||
aliases=alias_names,
|
||||
created_at=mat.created_at,
|
||||
@@ -94,9 +94,9 @@ async def get_next_code(
|
||||
range_end = prefix_int + 99
|
||||
|
||||
result = await db.execute(
|
||||
select(func.max(Material.schaeffler_code)).where(
|
||||
Material.schaeffler_code >= range_start,
|
||||
Material.schaeffler_code <= range_end,
|
||||
select(func.max(Material.hartomat_code)).where(
|
||||
Material.hartomat_code >= range_start,
|
||||
Material.hartomat_code <= range_end,
|
||||
)
|
||||
)
|
||||
max_code = result.scalar_one_or_none()
|
||||
@@ -113,16 +113,16 @@ async def get_next_code(
|
||||
}
|
||||
|
||||
|
||||
@router.post("/seed-schaeffler")
|
||||
async def seed_schaeffler_materials(
|
||||
@router.post("/seed-hartomat")
|
||||
async def seed_hartomat_materials(
|
||||
user: User = Depends(require_admin_or_pm),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
"""Bulk-create the 35 standard Schaeffler materials. Skips existing by name."""
|
||||
from app.data.schaeffler_materials import SCHAEFFLER_MATERIALS
|
||||
"""Bulk-create the 35 standard HartOMat materials. Skips existing by name."""
|
||||
from app.data.hartomat_materials import HARTOMAT_MATERIALS
|
||||
|
||||
inserted = 0
|
||||
for mat_data in SCHAEFFLER_MATERIALS:
|
||||
for mat_data in HARTOMAT_MATERIALS:
|
||||
existing = await db.execute(
|
||||
select(Material).where(Material.name == mat_data["name"])
|
||||
)
|
||||
@@ -132,14 +132,14 @@ async def seed_schaeffler_materials(
|
||||
name=mat_data["name"],
|
||||
description=mat_data["description"],
|
||||
source=mat_data["source"],
|
||||
schaeffler_code=mat_data["schaeffler_code"],
|
||||
hartomat_code=mat_data["hartomat_code"],
|
||||
created_by=user.id,
|
||||
)
|
||||
db.add(mat)
|
||||
inserted += 1
|
||||
|
||||
await db.commit()
|
||||
return {"inserted": inserted, "total": len(SCHAEFFLER_MATERIALS)}
|
||||
return {"inserted": inserted, "total": len(HARTOMAT_MATERIALS)}
|
||||
|
||||
|
||||
@router.post("/seed-aliases")
|
||||
@@ -273,7 +273,7 @@ async def create_material(
|
||||
name=body.name,
|
||||
description=body.description,
|
||||
source=body.source,
|
||||
schaeffler_code=body.schaeffler_code,
|
||||
hartomat_code=body.hartomat_code,
|
||||
created_by=user.id,
|
||||
)
|
||||
db.add(mat)
|
||||
|
||||
@@ -475,8 +475,8 @@ async def scale_workers(
|
||||
compose_file = os.path.join(compose_dir, "docker-compose.yml")
|
||||
# Derive project name from compose dir on host (directory name = project name).
|
||||
# Inside the container the compose file is at /compose, but the host project
|
||||
# dir name determines the container naming prefix (e.g. "schaefflerautomat").
|
||||
compose_project = os.environ.get("COMPOSE_PROJECT_NAME", "schaefflerautomat")
|
||||
# dir name determines the container naming prefix (e.g. "hartomat").
|
||||
compose_project = os.environ.get("COMPOSE_PROJECT_NAME", "hartomat")
|
||||
|
||||
def _scale() -> subprocess.CompletedProcess:
|
||||
return subprocess.run(
|
||||
|
||||
Reference in New Issue
Block a user