mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-26 19:01:39 -04:00
34 lines
1,016 B
Python
34 lines
1,016 B
Python
|
|
import wrolpi
|
||
|
|
from wrolpi.db import get_db_session
|
||
|
|
from .api import bp
|
||
|
|
from .inventory import logger, DEFAULT_CATEGORIES, DEFAULT_INVENTORIES
|
||
|
|
from .models import Item, Inventory
|
||
|
|
|
||
|
|
INVENTORY_INITIALIZED = False
|
||
|
|
|
||
|
|
|
||
|
|
@wrolpi.before_startup
|
||
|
|
def init(force=False):
|
||
|
|
"""
|
||
|
|
Initialize inventory categories, but only if none already exist. Initializes the inventories, but only if none
|
||
|
|
already exist.
|
||
|
|
"""
|
||
|
|
global INVENTORY_INITIALIZED
|
||
|
|
if INVENTORY_INITIALIZED and force is False:
|
||
|
|
return
|
||
|
|
|
||
|
|
logger.info('Initializing inventory')
|
||
|
|
|
||
|
|
with get_db_session(commit=True) as session:
|
||
|
|
if session.query(Item).count() == 0:
|
||
|
|
for subcategory, category in DEFAULT_CATEGORIES:
|
||
|
|
item = Item(subcategory=subcategory, category=category)
|
||
|
|
session.add(item)
|
||
|
|
|
||
|
|
if session.query(Inventory).count() == 0:
|
||
|
|
for name in DEFAULT_INVENTORIES:
|
||
|
|
inv = Inventory(name=name)
|
||
|
|
session.add(inv)
|
||
|
|
|
||
|
|
INVENTORY_INITIALIZED = True
|