64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
from flask import Flask, render_template, url_for, request, flash, redirect, session
|
|
from functools import wraps
|
|
import os
|
|
from pathlib import Path, PurePath, PurePosixPath
|
|
|
|
def login_required(f):
|
|
@wraps(f)
|
|
def decorated_function(*args, **kwargs):
|
|
if 'username' not in session:
|
|
return redirect(url_for('login', next=request.url))
|
|
return f(*args, **kwargs)
|
|
return decorated_function
|
|
|
|
def init_app(config):
|
|
|
|
if 'USERS_FOLDER' in config.keys() and 'PUBLIC_FOLDER' in config.keys():
|
|
users_folder = config['USERS_FOLDER']
|
|
public_folder = config['PUBLIC_FOLDER']
|
|
else:
|
|
print ("L'application n'est pas configuré correctement, veuillez renseigner les paramètres USERS_FOLDER et/ou PUBLIC_FOLDER ne sont pas configuré")
|
|
return False
|
|
|
|
if os.path.isdir(users_folder):
|
|
print("Le dossier {} existe".format(users_folder))
|
|
else:
|
|
os.makedirs(users_folder)
|
|
print("Le dossier {} a été créé".format(users_folder))
|
|
|
|
if os.path.isdir(public_folder):
|
|
print("Le dossier {} existe".format(public_folder))
|
|
else:
|
|
os.makedirs(public_folder)
|
|
print("Le dossier {} a été créé".format(public_folder))
|
|
|
|
return True
|
|
|
|
|
|
def list_type_blocs(theme):
|
|
|
|
type_blocs = list()
|
|
|
|
blocs_list = Path(PurePosixPath('app').joinpath('templates','themes', theme, 'blocs'))
|
|
for bloc_type in blocs_list.iterdir():
|
|
if not(bloc_type.is_dir()):
|
|
name_bloc=bloc_type.name.split('.')[0]
|
|
type_blocs.append(name_bloc[1:])
|
|
|
|
return type_blocs
|
|
|
|
def list_type_pages(theme):
|
|
|
|
type_pages = list()
|
|
|
|
pages_list = Path(PurePosixPath('app').joinpath('templates','themes', theme, 'pages'))
|
|
for page_type in pages_list.iterdir():
|
|
if not(page_type.is_dir()):
|
|
name_page=page_type.name.split('.')[0]
|
|
type_pages.append(name_page)
|
|
|
|
return type_pages
|
|
|
|
|
|
|