diff --git a/app/models/sites.py b/app/models/sites.py index b680027..48c128a 100644 --- a/app/models/sites.py +++ b/app/models/sites.py @@ -12,31 +12,58 @@ from flask import session class DataSite: user_folder = None username = str() - datas = str() + datas = dict() static_path = None trash = list() filej= None def __init__(self, username :str , users_folder :str ): self.username = username - self.user_folder = PurePosixPath(users_folder).joinpath(username) - self.filej = Path(PurePosixPath(self.user_folder).joinpath('ident.json')) - - - with self.filej.open(newline='', mode='r', encoding='utf-8') as f: - self.datas = json.load(f) + self.user_folder = Path(PurePosixPath(users_folder).joinpath(username)) + self.filej = Path(PurePosixPath(self.user_folder).joinpath('ident.json')) self.static_path = Path(PurePosixPath(self.user_folder.joinpath('public'))) - self.static_path.mkdir(parents=True, exist_ok=True) + + def create(self, theme:str): + + themesImgFolder = Path(PurePosixPath('app').joinpath('static','themes', theme, 'img')) + imgFolder = Path(PurePosixPath(self.user_folder).joinpath('public', 'img')) + #imgFolder.mkdir(exist_ok=True) + + site_default = Path('./app/templates/themes/'+theme+'/ident-default.json') + + if self.user_folder.exists(): + raise FileNotFoundError(f"Ce site existe déjà") + return False + else: + self.user_folder.mkdir(parents=True, exist_ok=False) + self.filej.write_text(site_default.read_text()) + self.static_path.mkdir(parents=True, exist_ok=True) + copytree(themesImgFolder, imgFolder) + + + if not self.filej.exists(): + raise FileNotFoundError(f"Le site n'a pas pu etre créé") + return False + else: + self.load_file() + return True def load_file(self): - if not self.filej.isfile(): + if not self.filej.is_file(): raise FileNotFoundError(f"Le fichier ident.json n'existe pas : {self.filej}") with self.filej.open(newline='', mode='r', encoding='utf-8') as f: self.datas = json.load(f) - - + def update_json(self): + self.filej.write_text(json.dumps(self.datas, indent=5)) + + def set_passwd(self, passwd:str): + self.datas['config']['passwd'] + self.update_json() + + def get_passwd(self): + return self.datas['config']['passwd'] def get_blocs(self, page: str): @@ -52,7 +79,7 @@ class DataSite: return datas - + def update_bloc(self, bloc, form, files=None): print (form) for field in form(): @@ -86,7 +113,7 @@ class DataSite: img['subtitle']="" img['text'] = "" img['category'] = "" - img['file'] = image_uploaded + img['file'] = '/img/' + image_uploaded return img @@ -108,10 +135,11 @@ class DataSite: return bloc + def save_menu(self, menu:dict): self.datas['menu'] = menu - self.filej.write_text(json.dumps(self.datas, indent=5)) + self.update_json() def save_blocs(self, page='', blocs=dict()): @@ -127,12 +155,11 @@ class DataSite: page_info.write_text(json.dumps(datas, indent=3)) else: self.datas['blocs']= blocs - self.filej.write_text(json.dumps(self.datas, indent=5)) + self.update_json() def save_server_info(self, serverInfos=dict()): self.datas['publish'] = serverInfos - self.filej.write_text(json.dumps(self.datas, indent=5)) - + self.update_json() def get_theme(self): @@ -144,7 +171,7 @@ class DataSite: for folder in folders.iterdir(): if folder.name != 'public' and folder.is_dir(): mypages.append(folder.name) - + return mypages def new_page(self, pageName:str, pageType:str): @@ -160,10 +187,10 @@ class DataSite: if not page.exists(): raise FileNotFoundError(f"La page n'a pas pu etre créé : {page}") - + return False return True - def rm_page(self, pageName :str): + def rm_page(self, pageName:str): page_folder = Path(PurePosixPath(self.user_folder).joinpath(pageName)) page = Path(PurePosixPath(self.user_folder).joinpath(pageName, 'page.json'))