Refactored db setup; extended layout to add header widget zone

This commit is contained in:
2023-11-19 15:37:11 -06:00
parent f9707c8d6e
commit 1986bab879
10 changed files with 155 additions and 41 deletions

38
src/utils/db.py Normal file
View File

@@ -0,0 +1,38 @@
# Python imports
from typing import Optional
from os import path
# Lib imports
from sqlmodel import Session, create_engine
# Application imports
from .models import SQLModel, User
class DB:
def __init__(self):
super(DB, self).__init__()
self.create_engine()
# NOTE: for sake of example we create an admin user with no password set.
self.add_user_entry(name = "Admin", password = "", email = "admin@domain.com")
def create_engine(self):
db_path = f"sqlite:///{settings_manager.get_home_config_path()}/database.db"
self.engine = create_engine(db_path)
SQLModel.metadata.create_all(self.engine)
def _add_entry(self, entry):
with Session(self.engine) as session:
session.add(entry)
session.commit()
def add_user_entry(self, name = None, password = None, email = None):
if not name or not password or not email: return
user = User(name, password, email)
self._add_entry(user)

View File

@@ -2,7 +2,7 @@
from typing import Optional
# Lib imports
from sqlmodel import Field, Session, SQLModel, create_engine
from sqlmodel import SQLModel, Field
# Application imports
@@ -13,13 +13,3 @@ class User(SQLModel, table = True):
name: str
password: str
email: Optional[str] = None
# NOTE: for sake of example we create an admin user with no password set.
user = User(name = "Admin", password = "", email = "admin@domain.com")
engine = create_engine("sqlite:///database.db")
SQLModel.metadata.create_all(engine)
with Session(engine) as session:
session.add(user)
session.commit()