From d482d1a6fb86981a0ae892df0772c5f2cf642592 Mon Sep 17 00:00:00 2001 From: Dark-Storm Date: Wed, 17 Apr 2019 12:25:24 +0200 Subject: [PATCH] Modification de la fonction render MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ajout d'un modificateur pour changer les feuilles de style à la volée --- app/routes/admin.py | 3 +- app/static/css/admin/form.css | 59 ++++++++++ app/templates/admin/edit_account.html | 161 +++++++++++++------------- app/templates/base/base.html | 4 +- app/templates/base/head.html | 12 +- app/utils/render.py | 26 ++++- 6 files changed, 173 insertions(+), 92 deletions(-) create mode 100644 app/static/css/admin/form.css diff --git a/app/routes/admin.py b/app/routes/admin.py index f21b8a6..27afeb9 100644 --- a/app/routes/admin.py +++ b/app/routes/admin.py @@ -106,11 +106,12 @@ def adm_edit_account(user_id): ) db.session.merge(user) db.session.commit() + # TODO: send an email to member saying his account has been modified flash('Modifications effectuées', 'ok') else: flash('Erreur lors de la modification', 'error') - return render('admin/edit_account.html', user=user, form=form) + return render('admin/edit_account.html', user=user, form=form, styles=['-css/form.css']) @app.route('/admin/edit-account//delete', methods=['GET', 'POST']) @priv_required('delete-account') diff --git a/app/static/css/admin/form.css b/app/static/css/admin/form.css new file mode 100644 index 0000000..f7bcb8d --- /dev/null +++ b/app/static/css/admin/form.css @@ -0,0 +1,59 @@ +.form .avatar { + width: 128px; height: 128px; +} + +.form .avatar + input[type="file"] { + margin: 16px 0 0 0; + vertical-align: middle; +} + +.form form > div:not(:last-child) { + margin-bottom: 15px; +} + +.form form label { + display: inline-block; + margin-bottom: 5px; +} + +.form input { + cursor: pointer; /* don't know why it is not a cursor by default */ +} + +.form input[type='text'], +.form input[type='email'], +.form input[type='date'], +.form input[type='password'], +.form input[type='search'], +.form textarea { + display: block; + width: 100%; padding: 6px 8px; + border: 1px solid #c8c8c8; + + /* Transitions when resizing with the mouse produces apparent lag */ + transition: all .15s ease, width 0s, height 0s; +} +.form input[type='text']:focus, +.form input[type='email']:focus, +.form input[type='date']:focus, +.form input[type='password']:focus, +.form input[type='search']:focus, +.form textarea:focus { + border-color: #91bfef; + box-shadow: 0 0 0 3px rgba(87, 143, 228, 0.4); +} + +.form textarea { + max-width: 100%; + resize: vertical; +} + +.form input[type="submit"] { + /*width: 20%;*/ +} + +.form form .msgerror { + color: red; + font-weight: 400; + margin-top: 5px; +} diff --git a/app/templates/admin/edit_account.html b/app/templates/admin/edit_account.html index f743d81..0d64b36 100644 --- a/app/templates/admin/edit_account.html +++ b/app/templates/admin/edit_account.html @@ -8,85 +8,90 @@
{{ form.hidden_tag() }} - -

Général

-
- {{ form.avatar.label }} -
- - {{ form.avatar }} +
+ Général +
+ {{ form.avatar.label }} +
+ + {{ form.avatar }} +
-
-
- {{ form.username.label }} - {{ form.username(placeholder=user.name) }} - {% for error in form.username.errors %} - {{ error }} - {% endfor %} -
-
- {{ form.email.label }} - {{ form.email(placeholder=user.email) }} - {% for error in form.email.errors %} - {{ error }} - {% endfor %} -
-
- {{ form.password.label }} - {{ form.password(placeholder='************') }} - {% for error in form.password.errors %} - {{ error }} - {% endfor %} -
- -

Participation

-
- {{ form.xp.label }} - {{ form.xp(placeholder=user.xp) }} - {% for error in form.xp.errors %} - {{ error }} - {% endfor %} -
-
- {{ form.innovation.label }} - {{ form.innovation(placeholder=user.innovation) }} - {% for error in form.innovation.errors %} - {{ error }} - {% endfor %} -
- -

À propos

-
- {{ form.birthday.label }} - {{ form.birthday(value=user.birthday) }} - {% for error in form.birthday.errors %} - {{ error }} - {% endfor %} -
-
- {{ form.signature.label }} - - {% for error in form.signature.errors %} - {{ error }} - {% endfor %} -
-
- {{ form.biography.label }} - - {% for error in form.biography.errors %} - {{ error }} - {% endfor %} -
- -

Préférences

-
- {{ form.newsletter.label }} - {{ form.newsletter(checked=user.newsletter) }} -
{{ form.newsletter.description }}
- {% for error in form.newsletter.errors %} - {{ error }} - {% endfor %} -
+
+ {{ form.username.label }} + {{ form.username(placeholder=user.name) }} + {% for error in form.username.errors %} + {{ error }} + {% endfor %} +
+
+ {{ form.email.label }} + {{ form.email(placeholder=user.email) }} + {% for error in form.email.errors %} + {{ error }} + {% endfor %} +
+
+ {{ form.password.label }} + {{ form.password(placeholder='************') }} + {% for error in form.password.errors %} + {{ error }} + {% endfor %} +
+
{{ form.submit(class_="bg-green") }}
+ +
+ Participation +
+ {{ form.xp.label }} + {{ form.xp(placeholder=user.xp) }} + {% for error in form.xp.errors %} + {{ error }} + {% endfor %} +
+
+ {{ form.innovation.label }} + {{ form.innovation(placeholder=user.innovation) }} + {% for error in form.innovation.errors %} + {{ error }} + {% endfor %} +
+
+
+ À propos +
+ {{ form.birthday.label }} + {{ form.birthday(value=user.birthday) }} + {% for error in form.birthday.errors %} + {{ error }} + {% endfor %} +
+
+ {{ form.signature.label }} + + {% for error in form.signature.errors %} + {{ error }} + {% endfor %} +
+
+ {{ form.biography.label }} + + {% for error in form.biography.errors %} + {{ error }} + {% endfor %} +
+
+
+ Préférences +
+ {{ form.newsletter.label }} + {{ form.newsletter(checked=user.newsletter) }} +
{{ form.newsletter.description }}
+ {% for error in form.newsletter.errors %} + {{ error }} + {% endfor %} +
+
{{ form.submit(class_="bg-green") }}
diff --git a/app/templates/base/base.html b/app/templates/base/base.html index 1ff4744..eec51bb 100644 --- a/app/templates/base/base.html +++ b/app/templates/base/base.html @@ -8,8 +8,8 @@
{% block title %}

Planète Casio

{% endblock %}
- {% include "base/header.html" %} -
+ {% include "base/header.html" %} + {% block content %} {% endblock %} diff --git a/app/templates/base/head.html b/app/templates/base/head.html index 055e0c0..c0a0711 100644 --- a/app/templates/base/head.html +++ b/app/templates/base/head.html @@ -4,14 +4,8 @@ - - - - - - - - - + {% for s in styles %} + + {% endfor %} diff --git a/app/utils/render.py b/app/utils/render.py index b7b918f..263be80 100644 --- a/app/utils/render.py +++ b/app/utils/render.py @@ -2,13 +2,35 @@ from flask import render_template from app.forms.login import LoginForm from app.forms.search import SearchForm -def render(*args, **kwargs): +def render(*args, styles=None, **kwargs): # TODO: debugguer cette merde : au logout, ça foire # if current_user.is_authenticated: # login_form = LoginForm() # return render_template(*args, **kwargs, login_form=login_form) # return render_template(*args, **kwargs) + + # Pour jouer sur les feuilles de style : + # render('page.html', styles=['-css/form.css', '+css/admin/forms.css']) + + styles_= [ + 'css/global.css', + 'css/navbar.css', + 'css/header.css', + 'css/container.css', + 'css/form.css', + 'css/footer.css', + 'css/flash.css', + 'css/responsive.css', + 'css/table.css' + ] + for s in styles: + print(s[1:]) + if s[0] == '-': + styles_.remove(s[1:]) + if s[0] == '+': + styles_.append(s[1:]) + login_form = LoginForm() search_form = SearchForm() return render_template(*args, **kwargs, - login_form=login_form, search_form=search_form) \ No newline at end of file + login_form=login_form, search_form=search_form, styles=styles_) \ No newline at end of file