fix(knowledge): improve upload workflow and seed manufacturers
This commit is contained in:
parent
964b545bc5
commit
612e1ad8ed
13 changed files with 429 additions and 20 deletions
56
backend/hermes/app/knowledge_seed.py
Normal file
56
backend/hermes/app/knowledge_seed.py
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
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})
|
||||
Loading…
Add table
Add a link
Reference in a new issue