fix(knowledge): fix manufacturer seed logging

This commit is contained in:
Schubert Ferenc 2026-07-03 18:48:40 +02:00
parent 612e1ad8ed
commit 22e54f212c

View file

@ -1,14 +1,13 @@
import logging import logging
from sqlalchemy import select
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from app.models.knowledge import KnowledgeManufacturer from app.models.knowledge import KnowledgeManufacturer
from app.repositories.knowledge_repository import KnowledgeRepository
from app.services.knowledge_service import unique_slug
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
STANDARD_MANUFACTURERS = [ DEFAULT_MANUFACTURERS = [
"Stabo", "Stabo",
"President", "President",
"Albrecht", "Albrecht",
@ -22,35 +21,57 @@ STANDARD_MANUFACTURERS = [
] ]
def seed_knowledge_manufacturers(db: Session) -> None: def _slugify(value: str) -> str:
created = 0 normalized = value.strip().lower()
normalized = normalized.replace("&", "und")
normalized = normalized.replace("ß", "ss")
normalized = normalized.replace("ö", "oe")
normalized = normalized.replace("ä", "ae")
normalized = normalized.replace("ü", "ue")
for name in STANDARD_MANUFACTURERS: parts = []
manufacturer = KnowledgeRepository.get_manufacturer_by_name(db, name) current = []
if manufacturer is not None:
changed = False for char in normalized:
if not manufacturer.slug: if char.isalnum():
manufacturer.slug = unique_slug( current.append(char)
db, elif current:
manufacturer.name, parts.append("".join(current))
lambda session, value: KnowledgeRepository.get_manufacturer_by_slug( current = []
session,
value, if current:
manufacturer.id, parts.append("".join(current))
) is not None,
) return "-".join(parts)
changed = True
if changed:
db.add(manufacturer) def seed_knowledge_manufacturers(db: Session) -> None:
created_count = 0
existing = {
manufacturer.name.lower(): manufacturer
for manufacturer in db.scalars(select(KnowledgeManufacturer)).all()
}
for name in DEFAULT_MANUFACTURERS:
existing_manufacturer = existing.get(name.lower())
if existing_manufacturer:
if not existing_manufacturer.slug:
existing_manufacturer.slug = _slugify(name)
continue continue
slug = unique_slug( manufacturer = KnowledgeManufacturer(
db, name=name,
name, slug=_slugify(name),
lambda session, value: KnowledgeRepository.get_manufacturer_by_slug(session, value) is not None, notes="Systemseitig initial angelegt",
) )
db.add(KnowledgeManufacturer(name=name, slug=slug, website="", notes="")) db.add(manufacturer)
created += 1 created_count += 1
db.commit() db.commit()
logger.info("knowledge.manufacturers.seeded", extra={"created": created})
logger.info(
"knowledge.manufacturers.seeded",
extra={"manufacturer_seed_created_count": created_count},
)