replace name of methods and funtions
This commit is contained in:
@@ -18,17 +18,17 @@ class MyBlocs:
|
||||
mybloc['type'] = str(blocType)
|
||||
return mybloc
|
||||
|
||||
def makeForm(bloc):
|
||||
def make_form(bloc):
|
||||
form = FormBloc()
|
||||
return form
|
||||
|
||||
def imgForm():
|
||||
def img_form():
|
||||
return ImageForm()
|
||||
|
||||
def newImgForm():
|
||||
def new_img_form():
|
||||
return ImageUpload()
|
||||
|
||||
def listTypeBlocs(theme):
|
||||
def list_type_blocs(theme):
|
||||
typeBlocs = list()
|
||||
folders = Path(PurePosixPath('./app').joinpath('templates', theme, 'blocs'))
|
||||
for folder in folders.iterdir():
|
||||
|
||||
@@ -26,7 +26,7 @@ class DataSite:
|
||||
self.static_path = Path(PurePosixPath(self.user_folder.joinpath('public')))
|
||||
self.static_path.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
def loadFile(self):
|
||||
def load_file(self):
|
||||
if not self.filej.isfile():
|
||||
raise FileNotFoundError(f"Le fichier ident.json n'existe pas : {self.filej}")
|
||||
|
||||
@@ -36,7 +36,7 @@ class DataSite:
|
||||
|
||||
|
||||
|
||||
def getBlocs(self, page: str):
|
||||
def get_blocs(self, page: str):
|
||||
|
||||
if page != '':
|
||||
page = Path(self.user_folder.joinpath(page, 'page.json'))
|
||||
@@ -51,7 +51,7 @@ class DataSite:
|
||||
return datas
|
||||
|
||||
|
||||
def updateBloc(self, bloc, form, files=None):
|
||||
def update_bloc(self, bloc, form, files=None):
|
||||
print (form)
|
||||
for field in form():
|
||||
print(field)
|
||||
@@ -68,7 +68,7 @@ class DataSite:
|
||||
|
||||
return bloc
|
||||
|
||||
def updateImg(self, image, form):
|
||||
def update_img(self, image, form):
|
||||
img = dict()
|
||||
img['title'] = form.title.data
|
||||
img['subtitle'] = form.subtitle.data
|
||||
@@ -77,7 +77,7 @@ class DataSite:
|
||||
img['file'] = image
|
||||
return img
|
||||
|
||||
def addImg(self, image_uploaded):
|
||||
def add_img(self, image_uploaded):
|
||||
img = dict()
|
||||
|
||||
img['title'] = ""
|
||||
@@ -89,7 +89,7 @@ class DataSite:
|
||||
return img
|
||||
|
||||
|
||||
def delImg(self, bloc, img):
|
||||
def del_img(self, bloc, img):
|
||||
|
||||
if bloc['type'] == 'gallery':
|
||||
img_file = Path(PurePosixPath(self.user_folder).joinpath('public', 'img', bloc[img]['file'] ))
|
||||
@@ -107,12 +107,12 @@ class DataSite:
|
||||
return bloc
|
||||
|
||||
|
||||
def saveMenu(self, menu:dict):
|
||||
def save_menu(self, menu:dict):
|
||||
self.datas['menu'] = menu
|
||||
self.filej.write_text(json.dumps(self.datas, indent=5))
|
||||
|
||||
|
||||
def saveBlocs(self, page='', blocs=dict()):
|
||||
def save_blocs(self, page='', blocs=dict()):
|
||||
if page != '':
|
||||
datas = dict()
|
||||
datas['blocs'] = blocs
|
||||
@@ -128,7 +128,10 @@ class DataSite:
|
||||
self.filej.write_text(json.dumps(self.datas, indent=5))
|
||||
|
||||
|
||||
def getPages(self):
|
||||
def get_theme(self):
|
||||
return self.datas['config']['theme']
|
||||
|
||||
def get_pages(self):
|
||||
mypages = list()
|
||||
folders = Path(self.user_folder)
|
||||
for folder in folders.iterdir():
|
||||
@@ -194,7 +197,8 @@ class DataSite:
|
||||
userDir = Path(PurePosixPath(self.user_folder))
|
||||
|
||||
|
||||
command = "lftp -u \"{}\",\"{}\" -p {} {} -e ' mirror -R public {}; bye;'".format(user,
|
||||
command = "lftp -u \"{}\",\"{}\" -p {} {} -e ' mirror -R public {}; chmod -R o+rx ./; bye;'".format(user,
|
||||
|
||||
password,
|
||||
serverPort,
|
||||
serverAddress,
|
||||
@@ -216,3 +220,6 @@ class DataSite:
|
||||
if path.exists((self.static_path+'img/portfolio/thumbnails/'+file)):
|
||||
remove(self.static_path+'img/portfolio/thumbnails/'+file)
|
||||
self.trash.clear()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ csrf = CSRFProtect(app)
|
||||
app.secret_key = 'your_secret_key'
|
||||
app.config.from_pyfile('config.py')
|
||||
|
||||
THEMES_FOLDER = './templates/themes/'
|
||||
THEMES_FOLDER = '/themes/'
|
||||
USERS_FOLDER = app.config['USERS_FOLDER']
|
||||
bcrypt = Bcrypt(app)
|
||||
|
||||
@@ -53,7 +53,7 @@ def login():
|
||||
|
||||
return resp
|
||||
|
||||
@app.route( '/logout/', methods=['GET'] )
|
||||
@app.route( '/logout', methods=['GET'] )
|
||||
@login_required
|
||||
def logout():
|
||||
session.pop('username', None) # Supprimer username de la session s'il s'y trouve
|
||||
@@ -68,10 +68,10 @@ def edit(page):
|
||||
user = '%s'% escape(session['username'])
|
||||
page = '%s' % escape(page)
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
mypages = db.getPages()
|
||||
mypages = db.get_pages()
|
||||
theme = db.datas['config']['theme']
|
||||
menu = db.datas['menu']
|
||||
myblocs = db.getBlocs(page)['blocs']
|
||||
myblocs = db.get_blocs(page)['blocs']
|
||||
|
||||
return render_template('/edit.html.tpl',
|
||||
blocEdit="",
|
||||
@@ -87,7 +87,7 @@ def edit(page):
|
||||
@app.route('/edit/images/<bloc>/<image>', methods=['GET', 'POST'], defaults={'page': ''})
|
||||
@app.route('/<page>/edit/images/<bloc>/<image>', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def editPhoto(page, image, bloc):
|
||||
def edit_photo(page, image, bloc):
|
||||
user = '%s'% escape(session['username'])
|
||||
page = '%s' % escape(page)
|
||||
image = '%s' % escape(image)
|
||||
@@ -96,12 +96,12 @@ def editPhoto(page, image, bloc):
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
theme = db.datas['config']['theme']
|
||||
form = ImageForm()
|
||||
myblocs = db.getBlocs(page)['blocs']
|
||||
myblocs = db.get_blocs(page)['blocs']
|
||||
|
||||
if form.validate_on_submit():
|
||||
if request.method == 'POST':
|
||||
myblocs[bloc][image] = db.updateImg(image, form)
|
||||
db.saveBlocs(page, myblocs)
|
||||
myblocs[bloc][image] = db.update_img(image, form)
|
||||
db.save_blocs(page, myblocs)
|
||||
form = MyBlocs.makeForm(db.datas['blocs'][bloc])
|
||||
if "hx-request" in request.headers:
|
||||
return make_response(('Image modified', 200))
|
||||
@@ -120,7 +120,7 @@ def drop_upload(page, bloc):
|
||||
datas = dict()
|
||||
file = request.files['file']
|
||||
filename = secure_filename(file.filename)
|
||||
myblocs = db.getBlocs(page)['blocs']
|
||||
myblocs = db.get_blocs(page)['blocs']
|
||||
ext = os.path.splitext(filename)[-1]
|
||||
save_path = os.path.join(USERS_FOLDER, user, 'public', 'img' )
|
||||
if ext not in EXT_IMG :
|
||||
@@ -150,35 +150,35 @@ def drop_upload(page, bloc):
|
||||
img.save(os.path.join(save_path, 'thumbnails', filename ) )
|
||||
|
||||
myblocs[bloc][filename] = db.addImg(filename)
|
||||
db.saveBlocs(page, myblocs)
|
||||
db.save_blocs(page, myblocs)
|
||||
return make_response(('Chunk upload succesfull', 200))
|
||||
|
||||
|
||||
@app.route('/edit/images/<bloc>/del/<image>', methods=['GET'], defaults={'page': ''})
|
||||
@app.route('/<page>/edit/images/<bloc>/del/<image>', methods=['GET'])
|
||||
@login_required
|
||||
def delImage(page, bloc, image):
|
||||
def del_image(page, bloc, image):
|
||||
user = '%s'% escape(session['username'])
|
||||
page = '%s' % escape(page)
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
myblocs = db.getBlocs(page)['blocs']
|
||||
myblocs = db.get_blocs(page)['blocs']
|
||||
|
||||
myblocs[bloc] = db.delImg(myblocs[bloc], image)
|
||||
db.saveBlocs(page, myblocs)
|
||||
myblocs[bloc] = db.del_img(myblocs[bloc], image)
|
||||
db.save_blocs(page, myblocs)
|
||||
|
||||
return make_response(('Image removed', 200))
|
||||
|
||||
@app.route('/imgs_list/<blocname>', methods=['GET'], defaults={'page': ''})
|
||||
@app.route('/<page>/imgs_list/<blocname>', methods=['GET'])
|
||||
@login_required
|
||||
def imagesList(page, blocname):
|
||||
def images_list(page, blocname):
|
||||
user = '%s'% escape(session['username'])
|
||||
page = '%s' % escape(page)
|
||||
blocname = '%s' % escape(blocname)
|
||||
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
theme = db.datas['config']['theme']
|
||||
myblocs = db.getBlocs(page)['blocs']
|
||||
myblocs = db.get_blocs(page)['blocs']
|
||||
bloc = myblocs[blocname]
|
||||
|
||||
return render_template(THEMES_FOLDER+theme+'/blocs/edit/images_list.html',page=page,
|
||||
@@ -187,29 +187,26 @@ def imagesList(page, blocname):
|
||||
@app.route('/edit/<blocname>', methods=['GET', 'POST'], defaults={'page': ''})
|
||||
@app.route('/<page>/edit/<blocname>', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def editBloc(page, blocname):
|
||||
def edit_bloc(page, blocname):
|
||||
user = '%s'% escape(session['username'])
|
||||
page = '%s' % escape(page)
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
theme = db.datas['config']['theme']
|
||||
myblocs = db.getBlocs(page)['blocs']
|
||||
myblocs = db.get_blocs(page)['blocs']
|
||||
bloc = myblocs[blocname]
|
||||
form = MyBlocs.makeForm(bloc)
|
||||
form = MyBlocs.make_form(bloc)
|
||||
|
||||
if request.method == 'POST':
|
||||
datas=dict()
|
||||
if form.validate_on_submit():
|
||||
|
||||
for field, value in request.form.items():
|
||||
print (field)
|
||||
if field != 'csrf_token' and field != 'image':
|
||||
myblocs[blocname][field] = value
|
||||
if 'image' in request.files.keys():
|
||||
file = request.files['image']
|
||||
print ('filename: '+ file.filename)
|
||||
filename = secure_filename(file.filename)
|
||||
bg_custom = 'bg_custom_'+bloc['name']+filename
|
||||
print('bg_custom : '+ bg_custom)
|
||||
file.save(os.path.join(USERS_FOLDER, user, 'public', 'img', bg_custom ))
|
||||
if 'bg_img' in bloc.keys():
|
||||
db.delImg(bloc, bloc['bg_img'])
|
||||
@@ -217,7 +214,7 @@ def editBloc(page, blocname):
|
||||
|
||||
myblocs[blocname]['bg_img'] = bg_custom
|
||||
|
||||
db.saveBlocs(page, myblocs)
|
||||
db.save_blocs(page, myblocs)
|
||||
flash(u'Vos changements on été pris en compte et enregistré', 'success')
|
||||
else:
|
||||
print(form.errors)
|
||||
@@ -251,13 +248,13 @@ def editBloc(page, blocname):
|
||||
@app.route('/view/<bloc>', methods=['GET'], defaults={'page': ''})
|
||||
@app.route('/<page>/view/<bloc>', methods=['GET'])
|
||||
@login_required
|
||||
def viewBloc(page, bloc):
|
||||
def view_bloc(page, bloc):
|
||||
user = '%s'% escape(session['username'])
|
||||
page = '%s' % escape(page)
|
||||
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
theme = db.datas['config']['theme']
|
||||
myblocs = db.getBlocs(page)['blocs']
|
||||
myblocs = db.get_blocs(page)['blocs']
|
||||
bloc = myblocs[bloc]
|
||||
|
||||
return render_template(THEMES_FOLDER+theme+'/blocs/_'+bloc['type']+'.html',
|
||||
@@ -266,13 +263,13 @@ def viewBloc(page, bloc):
|
||||
@app.route('/addBloc', methods=['POST'], defaults={'page': ''})
|
||||
@app.route('/<page>/addBloc', methods=['POST'])
|
||||
@login_required
|
||||
def addBloc(page):
|
||||
def add_bloc(page):
|
||||
user = '%s'% escape(session['username'])
|
||||
page = '%s' % escape(page)
|
||||
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
datas = dict()
|
||||
myblocs = db.getBlocs(page)['blocs']
|
||||
myblocs = db.get_blocs(page)['blocs']
|
||||
|
||||
blocName = '%s' % escape(request.form['blocName'])
|
||||
blocType = request.form['blocType']
|
||||
@@ -287,7 +284,7 @@ def addBloc(page):
|
||||
else:
|
||||
return make_response(('Invalid bloc Name', 500))
|
||||
|
||||
db.saveBlocs(page, myblocs)
|
||||
db.save_blocs(page, myblocs)
|
||||
|
||||
if "hx-request" in request.headers:
|
||||
return render_template('/admin/_blocs-list.html',
|
||||
@@ -297,7 +294,7 @@ def addBloc(page):
|
||||
|
||||
@app.route('/addPage', methods=['POST'])
|
||||
@login_required
|
||||
def addPage():
|
||||
def add_page():
|
||||
user = '%s'% escape(session['username'])
|
||||
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
@@ -317,12 +314,12 @@ def addPage():
|
||||
return make_response(('Invalid type ', 500))
|
||||
|
||||
|
||||
mypages = db.getPages()
|
||||
mypages = db.get_pages()
|
||||
return redirect(url_for('edit', page=pageName))
|
||||
|
||||
@app.route('/rmPage/<pageName>')
|
||||
@login_required
|
||||
def rmPage(pageName):
|
||||
def rm_page(pageName):
|
||||
pageName = '%s' % escape(pageName)
|
||||
user = '%s'% escape(session['username'])
|
||||
|
||||
@@ -350,7 +347,7 @@ def sortblocs(page):
|
||||
datas = dict()
|
||||
myblocs = dict()
|
||||
|
||||
myblocs_orig = db.getBlocs(page)['blocs']
|
||||
myblocs_orig = db.get_blocs(page)['blocs']
|
||||
|
||||
for bloc in request.form:
|
||||
if bloc != 'csrf_token':
|
||||
@@ -358,13 +355,13 @@ def sortblocs(page):
|
||||
myblocs[bloc_name] = myblocs_orig[bloc_name]
|
||||
flash (u'Les blocs ont été réagencés', 'succes');
|
||||
|
||||
db.saveBlocs(page, myblocs)
|
||||
db.save_blocs(page, myblocs)
|
||||
|
||||
return redirect(url_for('edit'))
|
||||
|
||||
@app.route('/editmenu', methods=['POST'])
|
||||
@login_required
|
||||
def editMenu():
|
||||
def edit_menu():
|
||||
user = '%s'% escape(session['username'])
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
db.datas['menu']=dict()
|
||||
@@ -381,7 +378,7 @@ def editMenu():
|
||||
else:
|
||||
db.datas['menu'][menu] = str(request.form[menu])
|
||||
|
||||
db.saveMenu(db.datas['menu'])
|
||||
db.save_menu(db.datas['menu'])
|
||||
flash (u'Le menu a bien été modifier', 'success');
|
||||
return redirect(url_for('edit'))
|
||||
|
||||
@@ -401,17 +398,19 @@ def mythumbnails(filename):
|
||||
|
||||
@app.route('/favicon.ico', methods=['GET'])
|
||||
@app.route('/favicon.ico/', methods=['GET'])
|
||||
@login_required
|
||||
def favicon():
|
||||
return make_response(('Ok! ', 200))
|
||||
|
||||
|
||||
|
||||
|
||||
@app.route('/publish', methods=['POST'])
|
||||
@login_required
|
||||
def publish():
|
||||
user = '%s' % escape(session['username'])
|
||||
db = DataSite(user, USERS_FOLDER)
|
||||
listPages = db.getPages()
|
||||
listPages = db.get_pages()
|
||||
theme = db.datas['config']['theme']
|
||||
menu = db.datas['menu']
|
||||
test_alphanum = "^[A-Za-z0-9/_-]*$"
|
||||
@@ -425,7 +424,7 @@ def publish():
|
||||
|
||||
|
||||
for page in listPages:
|
||||
myblocs = db.getBlocs(page)['blocs']
|
||||
myblocs = db.get_blocs(page)['blocs']
|
||||
htmlExport = render_template('/index.html.tpl',
|
||||
config=db.datas['config'],
|
||||
menu=menu,
|
||||
@@ -435,7 +434,7 @@ def publish():
|
||||
db.writeHTML(theme, page, htmlExport)
|
||||
|
||||
# Export index.html landing page
|
||||
myblocs = db.getBlocs('')['blocs']
|
||||
myblocs = db.get_blocs('')['blocs']
|
||||
htmlExport = render_template('/index.html.tpl',
|
||||
config=db.datas['config'],
|
||||
menu=menu,
|
||||
@@ -463,3 +462,5 @@ def publish():
|
||||
|
||||
return redirect(url_for('edit'))
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -40,6 +40,14 @@
|
||||
</button>
|
||||
|
||||
|
||||
<a href="/logout">
|
||||
<button class="btn btn-dark nav-brand"
|
||||
type="button">
|
||||
Se déconnecter
|
||||
</button>
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
@@ -162,3 +170,4 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -32,12 +32,15 @@
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
<div class="newItemMenu" id="newItem">
|
||||
<form class="form-container">
|
||||
<h3>Nouvelle entrée</h3><br>
|
||||
|
||||
<label for="nom"><b>Nom</b></label>
|
||||
<input type="text" placeholder="Nom" id="newEntry_name" required="">
|
||||
<input type="text" placeholder="Nom" id="newEntry_name" required>
|
||||
<br/>
|
||||
<label> Cette entré est un sous menu </label>
|
||||
<input type="checkbox" id="submenu" onclick="disableLink()" value="Cette entré est un sous-menu"><br>
|
||||
@@ -45,14 +48,15 @@
|
||||
<input type="text" placeholder="un lien ou nom d'un bloc" id="newEntry_link">
|
||||
<br>
|
||||
<button type="button" onclick="addEntry()" class="btn btn-outline-success">+</button>
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<hr>
|
||||
<button class="btn btn-success" type="submit" form="menuEdit"> Enregistrer </button>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
@@ -120,71 +124,6 @@
|
||||
|
||||
</script>
|
||||
|
||||
<!-- Add entry to menu-->
|
||||
<style>
|
||||
|
||||
.entry {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
/* The popup form - hidden by default */
|
||||
.form-popup {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 20%;
|
||||
right: 50%;
|
||||
opacity: 1;
|
||||
background-color: white;
|
||||
border: 3px solid #f1f1f1;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
/* Add styles to the form container */
|
||||
.form-container {
|
||||
max-width: 300px;
|
||||
padding:0;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
/* Full-width input fields */
|
||||
.form-container input[type=text], .form-container{
|
||||
width: 100%;
|
||||
padding: 15px;
|
||||
margin: 5px 0 22px 0;
|
||||
border: none;
|
||||
background: #fff;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
/* When the inputs get focus, do something */
|
||||
.form-container input[type=text]:focus, .form-container input[type=password]:focus {
|
||||
background-color: #ddd;
|
||||
outline: 1px;
|
||||
}
|
||||
|
||||
/* Set a style for the submit/login button */
|
||||
.form-container .btn {
|
||||
background-color: #04AA6D;
|
||||
color: white;
|
||||
padding: 20px 20px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
text-align :center;
|
||||
width: 40%;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/* Add a red background color to the cancel button */
|
||||
.form-container .cancel {
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
/* Add some hover effects to buttons */
|
||||
.form-container .btn:hover, .open-button:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function disableLink() {
|
||||
|
||||
@@ -1,14 +1,36 @@
|
||||
|
||||
<div class="container text-center">
|
||||
<form method='POST' action='/login'>
|
||||
{{ form.csrf_token }}
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/static/css/monsiteperso.css">
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="login-box">
|
||||
<form action="/login" method="POST" class="form_main">
|
||||
{{ form.csrf_token }}
|
||||
<h3 class="heading"> Connexion Mon site perso </h3>
|
||||
<div class="inputContainer">
|
||||
<svg class="inputIcon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#2e2e2e" viewBox="0 0 16 16">
|
||||
<path d="M13.106 7.222c0-2.967-2.249-5.032-5.482-5.032-3.35 0-5.646 2.318-5.646 5.702 0 3.493 2.235 5.708 5.762 5.708.862 0 1.689-.123 2.304-.335v-.862c-.43.199-1.354.328-2.29.328-2.926 0-4.813-1.88-4.813-4.798 0-2.844 1.921-4.881 4.594-4.881 2.735 0 4.608 1.688 4.608 4.156 0 1.682-.554 2.769-1.416 2.769-.492 0-.772-.28-.772-.76V5.206H8.923v.834h-.11c-.266-.595-.881-.964-1.6-.964-1.4 0-2.378 1.162-2.378 2.823 0 1.737.957 2.906 2.379 2.906.8 0 1.415-.39 1.709-1.087h.11c.081.67.703 1.148 1.503 1.148 1.572 0 2.57-1.415 2.57-3.643zm-7.177.704c0-1.197.54-1.907 1.456-1.907.93 0 1.524.738 1.524 1.907S8.308 9.84 7.371 9.84c-.895 0-1.442-.725-1.442-1.914z"></path>
|
||||
</svg>
|
||||
|
||||
{{ form.login(col=5, class="inputField" ) }}
|
||||
</div>
|
||||
|
||||
<div class="inputContainer">
|
||||
<svg class="inputIcon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#2e2e2e" viewBox="0 0 16 16">
|
||||
<path d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z"></path>
|
||||
</svg>
|
||||
|
||||
{{ form.passwd(class="inputField" ) }}
|
||||
</div>
|
||||
|
||||
<h2 class="mb-4"> Entrez votre login et votre mot de passe : </h2>
|
||||
{{ form.login(col=5, class="form-control form-control-lg text-center" ) }}
|
||||
{{ form.passwd(col=5, class="form-control form-control-lg text-center" ) }}
|
||||
<br />
|
||||
{{ form.submit() }}
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<a class="forgotLink" href="#"> J'ai oublié mon mot de passe </a>
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
|
||||
<h3> Nom du bloc : {{ bloc.name }} </h3>
|
||||
<div class="row mx-md-5">
|
||||
<div class="class-edit row mx-md-5">
|
||||
<div class="col-auto">
|
||||
<label> Classes CSS </label>
|
||||
{{ form.property(col=4,value=bloc.property,
|
||||
class="form-control text-center") }}
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="color-bloc-background col-auto">
|
||||
<label> Couleur de l'arrière plan </label>
|
||||
{{ form.bg_color(col=4,
|
||||
class="form-control form-control-color text-center",
|
||||
value=bloc.bg_color) }}
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="color-bloc-foreground col-auto">
|
||||
<label> Couleur du texte</label>
|
||||
{{ form.fg_color(col=4,
|
||||
class="form-control form-control-color text-center",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="container my-auto">
|
||||
<div class="row" style="mix-blend-mode: hard-light;background-color: rgba(0,0,0,0.3);">
|
||||
<div class="col-lg-10 mx-auto">
|
||||
<h1 class="text-uppercase">
|
||||
<h1 class="">
|
||||
<strong> {{ bloc.title }} </strong>
|
||||
</h1>
|
||||
<hr>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<form id="uploader" methods="POST" class="dropzone dz-clickable">
|
||||
{{ form.csrf_token }}
|
||||
</form>
|
||||
<div hx-get="{{ url_for('imagesList', page=page, blocname=bloc.name) }}" hx-trigger="load, every 7s">
|
||||
<div hx-get="{{ url_for('images_list', page=page, blocname=bloc.name) }}" hx-trigger="load, every 7s">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
{{ form.csrf_token }}
|
||||
<div class="row">
|
||||
<div class="col-lg-2 mx-auto my-4 text-center">
|
||||
<img class="img-fluid" src="/public/img/thumbnails/{{ image.file }}" alt="{{ image.description }}">
|
||||
<img class="img-fluid" src="/img/thumbnails/{{ image.file }}" alt="{{ image.description }}">
|
||||
</div>
|
||||
<div class="col-lg-4 mx-auto my-4 text-center">
|
||||
<h3> Titre </h3>
|
||||
@@ -26,7 +26,7 @@
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#editImageInfo"
|
||||
hx-swap="delete"> Valider </button>
|
||||
<button class="btn btn-danger mx-auto" hx-get="{{ url_for('delImage', page=page, bloc=bloc.name, image=image.file) }}"
|
||||
<button class="btn btn-danger mx-auto" hx-get="{{ url_for('del_image', page=page, bloc=bloc.name, image=image.file) }}"
|
||||
hx-swap="delete"
|
||||
hx-target="#editImageInfo"> Supprimer l'image</button>
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{% if image.file %}
|
||||
<div class="col-lg-4 col-sm-6 text-center">
|
||||
<a class="portfolio-box">
|
||||
<img class="img-fluid" src="/public/img/thumbnails/{{ image.file }}" alt="{{ image.description }}">
|
||||
<img class="img-fluid" src="/img/thumbnails/{{ image.file }}" alt="{{ image.description }}">
|
||||
<div class="portfolio-box-caption">
|
||||
<div class="portfolio-box-caption-content">
|
||||
<div class="project-category text-faded">
|
||||
|
||||
Reference in New Issue
Block a user