Add function for create website
This commit is contained in:
@@ -12,31 +12,58 @@ from flask import session
|
|||||||
class DataSite:
|
class DataSite:
|
||||||
user_folder = None
|
user_folder = None
|
||||||
username = str()
|
username = str()
|
||||||
datas = str()
|
datas = dict()
|
||||||
static_path = None
|
static_path = None
|
||||||
trash = list()
|
trash = list()
|
||||||
filej= None
|
filej= None
|
||||||
|
|
||||||
def __init__(self, username :str , users_folder :str ):
|
def __init__(self, username :str , users_folder :str ):
|
||||||
self.username = username
|
self.username = username
|
||||||
self.user_folder = PurePosixPath(users_folder).joinpath(username)
|
self.user_folder = Path(PurePosixPath(users_folder).joinpath(username))
|
||||||
self.filej = Path(PurePosixPath(self.user_folder).joinpath('ident.json'))
|
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.static_path = Path(PurePosixPath(self.user_folder.joinpath('public')))
|
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):
|
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}")
|
raise FileNotFoundError(f"Le fichier ident.json n'existe pas : {self.filej}")
|
||||||
|
|
||||||
with self.filej.open(newline='', mode='r', encoding='utf-8') as f:
|
with self.filej.open(newline='', mode='r', encoding='utf-8') as f:
|
||||||
self.datas = json.load(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):
|
def get_blocs(self, page: str):
|
||||||
|
|
||||||
@@ -52,7 +79,7 @@ class DataSite:
|
|||||||
|
|
||||||
return datas
|
return datas
|
||||||
|
|
||||||
|
|
||||||
def update_bloc(self, bloc, form, files=None):
|
def update_bloc(self, bloc, form, files=None):
|
||||||
print (form)
|
print (form)
|
||||||
for field in form():
|
for field in form():
|
||||||
@@ -86,7 +113,7 @@ class DataSite:
|
|||||||
img['subtitle']=""
|
img['subtitle']=""
|
||||||
img['text'] = ""
|
img['text'] = ""
|
||||||
img['category'] = ""
|
img['category'] = ""
|
||||||
img['file'] = image_uploaded
|
img['file'] = '/img/' + image_uploaded
|
||||||
|
|
||||||
return img
|
return img
|
||||||
|
|
||||||
@@ -108,10 +135,11 @@ class DataSite:
|
|||||||
|
|
||||||
return bloc
|
return bloc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def save_menu(self, menu:dict):
|
def save_menu(self, menu:dict):
|
||||||
self.datas['menu'] = menu
|
self.datas['menu'] = menu
|
||||||
self.filej.write_text(json.dumps(self.datas, indent=5))
|
self.update_json()
|
||||||
|
|
||||||
|
|
||||||
def save_blocs(self, page='', blocs=dict()):
|
def save_blocs(self, page='', blocs=dict()):
|
||||||
@@ -127,12 +155,11 @@ class DataSite:
|
|||||||
page_info.write_text(json.dumps(datas, indent=3))
|
page_info.write_text(json.dumps(datas, indent=3))
|
||||||
else:
|
else:
|
||||||
self.datas['blocs']= blocs
|
self.datas['blocs']= blocs
|
||||||
self.filej.write_text(json.dumps(self.datas, indent=5))
|
self.update_json()
|
||||||
|
|
||||||
def save_server_info(self, serverInfos=dict()):
|
def save_server_info(self, serverInfos=dict()):
|
||||||
self.datas['publish'] = serverInfos
|
self.datas['publish'] = serverInfos
|
||||||
self.filej.write_text(json.dumps(self.datas, indent=5))
|
self.update_json()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_theme(self):
|
def get_theme(self):
|
||||||
@@ -144,7 +171,7 @@ class DataSite:
|
|||||||
for folder in folders.iterdir():
|
for folder in folders.iterdir():
|
||||||
if folder.name != 'public' and folder.is_dir():
|
if folder.name != 'public' and folder.is_dir():
|
||||||
mypages.append(folder.name)
|
mypages.append(folder.name)
|
||||||
|
|
||||||
return mypages
|
return mypages
|
||||||
|
|
||||||
def new_page(self, pageName:str, pageType:str):
|
def new_page(self, pageName:str, pageType:str):
|
||||||
@@ -160,10 +187,10 @@ class DataSite:
|
|||||||
|
|
||||||
if not page.exists():
|
if not page.exists():
|
||||||
raise FileNotFoundError(f"La page n'a pas pu etre créé : {page}")
|
raise FileNotFoundError(f"La page n'a pas pu etre créé : {page}")
|
||||||
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def rm_page(self, pageName :str):
|
def rm_page(self, pageName:str):
|
||||||
page_folder = Path(PurePosixPath(self.user_folder).joinpath(pageName))
|
page_folder = Path(PurePosixPath(self.user_folder).joinpath(pageName))
|
||||||
page = Path(PurePosixPath(self.user_folder).joinpath(pageName, 'page.json'))
|
page = Path(PurePosixPath(self.user_folder).joinpath(pageName, 'page.json'))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user