56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
import logging
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
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__)
|
|
|
|
STANDARD_MANUFACTURERS = [
|
|
"Stabo",
|
|
"President",
|
|
"Albrecht",
|
|
"Marconi",
|
|
"Rohde & Schwarz",
|
|
"HP",
|
|
"CRT",
|
|
"Alinco",
|
|
"Motorola",
|
|
"Team",
|
|
]
|
|
|
|
|
|
def seed_knowledge_manufacturers(db: Session) -> None:
|
|
created = 0
|
|
|
|
for name in STANDARD_MANUFACTURERS:
|
|
manufacturer = KnowledgeRepository.get_manufacturer_by_name(db, name)
|
|
if manufacturer is not None:
|
|
changed = False
|
|
if not manufacturer.slug:
|
|
manufacturer.slug = unique_slug(
|
|
db,
|
|
manufacturer.name,
|
|
lambda session, value: KnowledgeRepository.get_manufacturer_by_slug(
|
|
session,
|
|
value,
|
|
manufacturer.id,
|
|
) is not None,
|
|
)
|
|
changed = True
|
|
if changed:
|
|
db.add(manufacturer)
|
|
continue
|
|
|
|
slug = unique_slug(
|
|
db,
|
|
name,
|
|
lambda session, value: KnowledgeRepository.get_manufacturer_by_slug(session, value) is not None,
|
|
)
|
|
db.add(KnowledgeManufacturer(name=name, slug=slug, website="", notes=""))
|
|
created += 1
|
|
|
|
db.commit()
|
|
logger.info("knowledge.manufacturers.seeded", extra={"created": created})
|