feature: UI/UX improvements

This commit is contained in:
Dobin
2024-03-23 12:16:20 +00:00
parent 0333fc2673
commit ba933bd018
7 changed files with 46 additions and 23 deletions
+18 -5
View File
@@ -1,4 +1,6 @@
import pickle
import os
import yaml
from typing import List, Tuple
from model.settings import Settings
@@ -14,20 +16,31 @@ class Storage():
def __init__(self):
self.data: List[Project] = self.get_data()
def get_project(self, name):
def get_project(self, name: str) -> Project:
for project in self.data:
if project.name == name:
return project
return None
def add_project(self, project):
def add_project(self, project: Project):
# data
self.data.append(project)
self.save_data()
def get_data(self):
# directories and contents
os.makedirs("app/projects/{}".format(project.name), exist_ok=True)
with open("app/projects/{}/settings.yaml".format(project.name), "w") as f:
f.write(yaml.dump(project.settings))
def get_data(self) -> List[Project]:
# if file does not exist, create an empty one
if not os.path.exists("app/data.pickle"):
with open("app/data.pickle", "wb") as f:
f.write(pickle.dumps([]))
with open("app/data.pickle", "rb") as f:
data = f.read()
data = pickle.loads(data)
data_raw = f.read()
data: List[Project] = pickle.loads(data_raw)
return data
def save_data(self):