Implements functions in backend

This commit is contained in:
2026-07-23 04:28:15 +02:00
parent 395f938576
commit b6dd8b7caf

View File

@@ -13,7 +13,7 @@ from flask_bcrypt import Bcrypt
from copy import deepcopy from copy import deepcopy
from app.forms import Login, CreateWebsite from app.forms import Login, CreateWebsite
from functools import wraps from functools import wraps
from app.utils import login_required from app.utils import login_required, list_type_blocs, list_type_pages
from flask_wtf.csrf import CSRFProtect from flask_wtf.csrf import CSRFProtect
from datetime import datetime from datetime import datetime
@@ -43,11 +43,11 @@ def login():
password = str(request.form['passwd']) password = str(request.form['passwd'])
if login in os.listdir(USERS_FOLDER): if login in os.listdir(USERS_FOLDER):
db = DataSite(login, USERS_FOLDER) db = DataSite(login, USERS_FOLDER)
db.load_file()
passwd_bcrypt = db.datas['config']['passwd'] passwd_bcrypt = db.datas['config']['passwd']
if bcrypt.check_password_hash(passwd_bcrypt, password) is True: if bcrypt.check_password_hash(passwd_bcrypt, password) is True:
session['username'] = login session['username'] = login
session['upload'] = None
resp = redirect(url_for('edit', _external=True)) resp = redirect(url_for('edit', _external=True))
else: else:
flash(u'Mauvais mot de passe', 'error') flash(u'Mauvais mot de passe', 'error')
@@ -73,9 +73,20 @@ def new_website():
@app.route('/create-website', methods=[ 'POST']) @app.route('/create-website', methods=[ 'POST'])
def create_website(): def create_website():
form = CreateWebsite(request.form) form = CreateWebsite(request.form)
if form.validate() : login = str(form.login.data)
passwd = str(form.passwd.data)
theme = str(form.theme.data)
if form.validate():
db = DataSite(login, USERS_FOLDER)
print("Trop cool !") print("Trop cool !")
resp = redirect(url_for('edit', _external=True)) if db.create(theme):
db.set_passwd(bcrypt.generate_password_hash(passwd))
session['username'] = login
resp = redirect(url_for('edit'))
else:
flash(u'Erreur lors de la création du site', error)
resp = redirect(url_for('login', _external=True))
else: else:
resp = render_template('/admin/create_website.html', form=form) resp = render_template('/admin/create_website.html', form=form)
return resp return resp
@@ -87,12 +98,17 @@ def edit(page):
user = '%s'% escape(session['username']) user = '%s'% escape(session['username'])
page = '%s' % escape(page) page = '%s' % escape(page)
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
type_pages = list_type_pages(db.datas['config']['theme'])
type_blocs = list_type_blocs(db.datas['config']['theme'])
myblocs = db.get_blocs(page)['blocs'] myblocs = db.get_blocs(page)['blocs']
print(myblocs)
return render_template('/edit.html.tpl', return render_template('/edit.html.tpl',
blocEdit="", blocEdit="",
config=db.datas['config'], config=db.datas['config'],
menu=db.datas['menu'], menu=db.datas['menu'],
type_blocs=type_blocs,
type_pages=type_pages,
theme=db.datas['config']['theme'], theme=db.datas['config']['theme'],
pagesList=db.get_pages(), pagesList=db.get_pages(),
page=page, page=page,
@@ -111,6 +127,7 @@ def edit_img(page, image, bloc):
bloc = '%s' % escape(bloc) bloc = '%s' % escape(bloc)
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
theme = db.datas['config']['theme'] theme = db.datas['config']['theme']
form = ImageForm() form = ImageForm()
myblocs = db.get_blocs(page)['blocs'] myblocs = db.get_blocs(page)['blocs']
@@ -134,6 +151,8 @@ def drop_upload(page, bloc):
user = '%s'% escape(session['username']) user = '%s'% escape(session['username'])
page = '%s' % escape(page) page = '%s' % escape(page)
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
datas = dict() datas = dict()
file = request.files['file'] file = request.files['file']
filename = secure_filename(file.filename) filename = secure_filename(file.filename)
@@ -178,6 +197,8 @@ def del_image(page, bloc, image):
user = '%s'% escape(session['username']) user = '%s'% escape(session['username'])
page = '%s' % escape(page) page = '%s' % escape(page)
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
myblocs = db.get_blocs(page)['blocs'] myblocs = db.get_blocs(page)['blocs']
myblocs[bloc] = db.del_img(myblocs[bloc], image) myblocs[bloc] = db.del_img(myblocs[bloc], image)
@@ -194,6 +215,8 @@ def images_list(page, blocname):
blocname = '%s' % escape(blocname) blocname = '%s' % escape(blocname)
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
theme = db.datas['config']['theme'] theme = db.datas['config']['theme']
myblocs = db.get_blocs(page)['blocs'] myblocs = db.get_blocs(page)['blocs']
bloc = myblocs[blocname] bloc = myblocs[blocname]
@@ -208,6 +231,8 @@ def edit_bloc(page, blocname):
user = '%s'% escape(session['username']) user = '%s'% escape(session['username'])
page = '%s' % escape(page) page = '%s' % escape(page)
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
theme = db.datas['config']['theme'] theme = db.datas['config']['theme']
myblocs = db.get_blocs(page)['blocs'] myblocs = db.get_blocs(page)['blocs']
bloc = myblocs[blocname] bloc = myblocs[blocname]
@@ -270,6 +295,8 @@ def view_bloc(page, bloc):
page = '%s' % escape(page) page = '%s' % escape(page)
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
theme = db.datas['config']['theme'] theme = db.datas['config']['theme']
myblocs = db.get_blocs(page)['blocs'] myblocs = db.get_blocs(page)['blocs']
bloc = myblocs[bloc] bloc = myblocs[bloc]
@@ -285,6 +312,8 @@ def add_bloc(page):
page = '%s' % escape(page) page = '%s' % escape(page)
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
datas = dict() datas = dict()
print("page add bloc :" + page) print("page add bloc :" + page)
myblocs = db.get_blocs(page)['blocs'] myblocs = db.get_blocs(page)['blocs']
@@ -304,11 +333,10 @@ def add_bloc(page):
db.save_blocs(page, myblocs) db.save_blocs(page, myblocs)
if "hx-request" in request.headers: if page == '':
return render_template('/admin/_blocs-list.html', return redirect("/#"+blocName)
myblocs=myblocs)
else: else:
return redirect(url_for('edit')) return redirect("/"+page+"#"+blocName)
@app.route('/addPage', methods=['POST']) @app.route('/addPage', methods=['POST'])
@login_required @login_required
@@ -316,6 +344,8 @@ def add_page():
user = '%s'% escape(session['username']) user = '%s'% escape(session['username'])
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
datas = dict() datas = dict()
pageName = '%s' % escape(request.form['pageName']) pageName = '%s' % escape(request.form['pageName'])
@@ -342,7 +372,8 @@ def rm_page(pageName):
user = '%s'% escape(session['username']) user = '%s'% escape(session['username'])
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
try: try:
db.rm_page(pageName) db.rm_page(pageName)
flash (u'Page supprimé avec succès', 'success'); flash (u'Page supprimé avec succès', 'success');
@@ -360,6 +391,8 @@ def sortblocs(page):
page = '%s' % escape(page) page = '%s' % escape(page)
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
config = db.datas['config'] config = db.datas['config']
menu = db.datas['menu'] menu = db.datas['menu']
datas = dict() datas = dict()
@@ -382,6 +415,8 @@ def sortblocs(page):
def edit_menu(): def edit_menu():
user = '%s'% escape(session['username']) user = '%s'% escape(session['username'])
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
db.datas['menu']=dict() db.datas['menu']=dict()
for menu in request.form: for menu in request.form:
if '§§' in menu: if '§§' in menu:
@@ -426,6 +461,8 @@ def favicon():
def publish_progress(): def publish_progress():
user = '%s' % escape(session['username']) user = '%s' % escape(session['username'])
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
progress = 0 progress = 0
error = False error = False
@@ -461,6 +498,8 @@ def publish_progress():
def publish(): def publish():
user = '%s' % escape(session['username']) user = '%s' % escape(session['username'])
db = DataSite(user, USERS_FOLDER) db = DataSite(user, USERS_FOLDER)
db.load_file()
listPages = db.get_pages() listPages = db.get_pages()
theme = db.datas['config']['theme'] theme = db.datas['config']['theme']
menu = db.datas['menu'] menu = db.datas['menu']