Files
monsiteperso/app/utils.py

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