Files
lapp/initialize_data.py
T

55 lines
2.2 KiB
Python

from lapp import create_app
import os
import secrets
import sqlalchemy as sa
from models import db, User, ListOfItems, Shared, Item, Group
def initial_secret(env_name):
return os.environ.get(env_name) or secrets.token_urlsafe(18)
if __name__ == "__main__":
app = create_app()
app.app_context().push()
query = sa.select(User)
users = db.session.scalars(query).all()
if len(users) == 0:
admin_group_secret = initial_secret("LAPP_INITIAL_ADMIN_GROUP")
user_group_secret = initial_secret("LAPP_INITIAL_USER_GROUP")
admin_password = initial_secret("LAPP_INITIAL_ADMIN_PASSWORD")
user_password = initial_secret("LAPP_INITIAL_USER_PASSWORD")
g = Group(secret=admin_group_secret)
db.session.add(g)
g = Group(secret=user_group_secret)
db.session.add(g)
admin = User(name="admin", group_id=1, is_admin=True, is_approved=True, is_private=True)
admin.set_password(admin_password)
db.session.add(admin)
user1 = User(name="ignace", group_id=2, is_admin=False, is_approved=True)
user1.set_password(user_password)
db.session.add(user1)
db.session.commit()
print("Created initial credentials:")
print(f"admin password: {admin_password}")
print(f"admin group secret: {admin_group_secret}")
print(f"ignace password: {user_password}")
print(f"ignace group secret: {user_group_secret}")
lol1 = ListOfItems(owner_user_id = user1.id, name="Supermarkt", is_active=True)
db.session.add(lol1)
lol2 = ListOfItems(owner_user_id = user1.id, name="Klusjes", is_active=True)
db.session.add(lol2)
db.session.commit()
item1 = Item(listofitems_id=lol1.id, label="Stokbrood")
item2 = Item(listofitems_id=lol1.id, label="Speltbroodje", category="Brood")
item3 = Item(listofitems_id=lol1.id, label="Boter", category="Zuivel", unit='x', quantity=1)
item4 = Item(listofitems_id=lol1.id, label="Notenbroodjes", is_checked=True)
db.session.add(item1)
db.session.add(item2)
db.session.add(item3)
db.session.add(item4)
db.session.commit()