test décomposition page config en deux forms

This commit is contained in:
Jean-Marie Place 2021-12-04 05:45:18 +01:00
parent ec93a8cdbc
commit 94be5d6356
2 changed files with 38 additions and 23 deletions

View File

@ -24,30 +24,33 @@
<h1>Configuration générale {{ scodoc_dept }}</h1>
{% endif %}
<form class="sco-form" action="" method="post" enctype="multipart/form-data" novalidate>
{{ form.hidden_tag() }}
{% if not scodoc_dept %}
<div class="sco_help">Les paramètres donnés ici s'appliquent à tout ScoDoc (tous les départements):</div>
{{ render_field(form.bonus_sport_func_name)}}
{% endif %}
<form class="sco-form" action="" method="post" enctype="multipart/form-data" novalidate>
{{ form_sport.hidden_tag() }}
{{ render_field(form_sport.bonus_sport_func_name)}}
<div class="sco-submit">{{ form_sport.submit_sport() }}</div>
</form>
<form class="sco-form" action="" method="post" enctype="multipart/form-data" novalidate>
{{ form_logos.hidden_tag() }}
<div class="configuration_logo">
<h3>Logo en-tête</h3>
<p class="help">image placée en haut de certains documents documents PDF. Image actuelle:</p>
<div class="img-container"><img src="{{ url_for('scodoc.logo_header', scodoc_dept=scodoc_dept) }}"
alt="pas de logo chargé" /></div>
{{ render_field(form.logo_header) }}
{{ render_field(form_logos.logo_header) }}
<h3>Logo pied de page</h3>
<p class="help">image placée en pied de page de certains documents documents PDF. Image actuelle:</p>
<div class="img-container"><img src="{{ url_for('scodoc.logo_footer', scodoc_dept=g.scodoc_dept) }}"
alt="pas de logo chargé" /></div>
{{ render_field(form.logo_footer) }}
{{ render_field(form_logos.logo_footer) }}
<div class="sco-submit">{{ form_logos.submit_logos() }}</div>
</div>
<!-- <div class="sco_help">Les paramètres ci-dessous peuvent être changés dans chaque département
(paramétrage).<br />On indique ici les valeurs initiales par défaut:
</div> -->
<div class="sco-submit">{{ form.submit() }}</div>
</form>
{% endblock %}

View File

@ -174,7 +174,7 @@ def about(scodoc_dept=None):
# ---- CONFIGURATION
class ScoDocConfigurationForm(FlaskForm):
class ConfigBonusForm(FlaskForm):
"Panneau de configuration général"
bonus_sport_func_name = SelectField(
@ -185,6 +185,10 @@ class ScoDocConfigurationForm(FlaskForm):
],
)
submit_sport = SubmitField("Enregistrer")
class ConfigLogosForm(FlaskForm):
logo_header = FileField(
label="Modifier l'image:",
description="logo placé en haut des documents PDF",
@ -207,7 +211,7 @@ class ScoDocConfigurationForm(FlaskForm):
],
)
submit = SubmitField("Enregistrer")
submit_logos = SubmitField("Enregistrer")
# Notes pour variables config: (valeurs par défaut des paramètres de département)
@ -232,27 +236,35 @@ class ScoDocConfigurationForm(FlaskForm):
@admin_required
def configuration():
"Panneau de configuration général"
form = ScoDocConfigurationForm(
form_sport = ConfigBonusForm(
bonus_sport_func_name=ScoDocSiteConfig.get_bonus_sport_func_name(),
)
if form.validate_on_submit():
ScoDocSiteConfig.set_bonus_sport_func(form.bonus_sport_func_name.data)
if form.logo_header.data:
sco_logos.store_image(
form.logo_header.data, os.path.join(scu.SCODOC_LOGOS_DIR, "logo_header")
)
if form.logo_footer.data:
sco_logos.store_image(
form.logo_footer.data, os.path.join(scu.SCODOC_LOGOS_DIR, "logo_footer")
)
form_logos = ConfigLogosForm()
if form_sport.submit_sport.data and form_sport.validate_on_submit():
ScoDocSiteConfig.set_bonus_sport_func(form_sport.bonus_sport_func_name.data)
app.clear_scodoc_cache()
flash(f"Configuration enregistrée")
flash(f"Bonus sport enregistré")
return redirect(url_for("scodoc.index"))
if form_logos.submit_logos.data and form_logos.validate_on_submit():
if form_logos.logo_header.data:
sco_logos.store_image(
form_logos.logo_header.data,
os.path.join(scu.SCODOC_LOGOS_DIR, "logo_header"),
)
if form_logos.logo_footer.data:
sco_logos.store_image(
form_logos.logo_footer.data,
os.path.join(scu.SCODOC_LOGOS_DIR, "logo_footer"),
)
flash(f"Logo enregistré")
return redirect(url_for("scodoc.index"))
return render_template(
"configuration.html",
title="Configuration ScoDoc",
form=form,
form_sport=form_sport,
form_logos=form_logos,
scodoc_dept=None,
)