This commit is contained in:
Jean-Marie Place 2021-10-20 15:44:47 +02:00
parent e56a97eaf6
commit 3f01048f59
2 changed files with 76 additions and 37 deletions

View File

@ -16,6 +16,16 @@
</div> </div>
{% endmacro %} {% endmacro %}
{% macro render_logo(logo, logo_field) %}
<div class="configuration_logo">
<h3>{{ logo.titre }}</h3>
<p class="help">{{ logo.description }}</p>
<div class="img-container"><img src="{{ logo.source }}"
alt="pas de logo chargé" /></div>
{{ render_field(logo_field) }}
</div>
{% endmacro %}
{% block app_content %} {% block app_content %}
{% if scodoc_dept %} {% if scodoc_dept %}
@ -34,20 +44,23 @@
{% endif %} {% endif %}
<div class="configuration_logo"> <div class="configuration_logo">
<h3>Logo en-tête</h3> {{ render_logo(logo, form.header) }}
<p class="help">image placée en haut de certains documents documents PDF. Image actuelle:</p> {{ render_logo(logo, form.footer) }}
<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) }}
<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) }}
</div> </div>
<div class="sco-submit">{{ form.submit() }}</div>
{# <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) }}#}
{# <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) }}#}
<!-- <div class="sco_help">Les paramètres ci-dessous peuvent être changés dans chaque département <!-- <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: (paramétrage).<br />On indique ici les valeurs initiales par défaut:
</div> --> </div> -->
<div class="sco-submit">{{ form.submit() }}</div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -176,6 +176,28 @@ def about(scodoc_dept=None):
# ---- CONFIGURATION # ---- CONFIGURATION
class Logo:
def __init__(self, name, titre, description, source, form):
self.titre = titre,
self.description = description
self.source = source
unbound = FileField(
name,
label="Modifier l'image:",
description=description,
validators=[
FileAllowed(
scu.LOGOS_IMAGES_ALLOWED_TYPES,
f"n'accepte que les fichiers image <tt>{','.join([e for e in scu.LOGOS_IMAGES_ALLOWED_TYPES])}</tt>",
),
],
)
self.field = form.Meta.bind_field(
form=form,
unbound_field=unbound,
options={},
)
class ScoDocConfigurationForm(FlaskForm): class ScoDocConfigurationForm(FlaskForm):
"Panneau de configuration général" "Panneau de configuration général"
@ -187,30 +209,34 @@ class ScoDocConfigurationForm(FlaskForm):
], ],
) )
logo_header = FileField( # logo_header = FileField(
label="Modifier l'image:", # label="Modifier l'image:",
description="logo placé en haut des documents PDF", # description="logo placé en haut des documents PDF",
validators=[ # validators=[
FileAllowed( # FileAllowed(
scu.LOGOS_IMAGES_ALLOWED_TYPES, # scu.LOGOS_IMAGES_ALLOWED_TYPES,
f"n'accepte que les fichiers image <tt>{','.join([e for e in scu.LOGOS_IMAGES_ALLOWED_TYPES])}</tt>", # f"n'accepte que les fichiers image <tt>{','.join([e for e in scu.LOGOS_IMAGES_ALLOWED_TYPES])}</tt>",
) # )
], # ],
) # )
#
logo_footer = FileField( # logo_footer = FileField(
label="Modifier l'image:", # label="Modifier l'image:",
description="logo placé en pied des documents PDF", # description="logo placé en pied des documents PDF",
validators=[ # validators=[
FileAllowed( # FileAllowed(
scu.LOGOS_IMAGES_ALLOWED_TYPES, # scu.LOGOS_IMAGES_ALLOWED_TYPES,
f"n'accepte que les fichiers image <tt>{','.join([e for e in scu.LOGOS_IMAGES_ALLOWED_TYPES])}</tt>", # f"n'accepte que les fichiers image <tt>{','.join([e for e in scu.LOGOS_IMAGES_ALLOWED_TYPES])}</tt>",
) # )
], # ],
) # )
submit = SubmitField("Enregistrer") submit = SubmitField("Enregistrer")
def __init__(self, *args, scodoc_dept=None, **kwargs):
breakpoint()
super().__init__(*args, **kwargs)
self.header = Logo(name='header', titre="Logo en-tête", description="logo placé en haut des documents PDF", source=url_for('scodoc.logo_header', scodoc_dept=None), form=self)
self.footer = Logo(name='footer', titre="Logo en-tête", description="logo placé en pied des documents PDF", source=url_for('scodoc.logo_footer', scodoc_dept=None), form=self)
# Notes pour variables config: (valeurs par défaut des paramètres de département) # Notes pour variables config: (valeurs par défaut des paramètres de département)
# Chaines simples # Chaines simples
@ -239,13 +265,13 @@ def configuration():
) )
if form.validate_on_submit(): if form.validate_on_submit():
ScoDocSiteConfig.set_bonus_sport_func(form.bonus_sport_func_name.data) ScoDocSiteConfig.set_bonus_sport_func(form.bonus_sport_func_name.data)
if form.logo_header.data: if form.header.field.data:
sco_logos.store_image( sco_logos.store_image(
form.logo_header.data, os.path.join(scu.SCODOC_LOGOS_DIR, "logo_header") form.header.field.data, os.path.join(scu.SCODOC_LOGOS_DIR, "logo_header")
) )
if form.logo_footer.data: if form.footer.field.data:
sco_logos.store_image( sco_logos.store_image(
form.logo_footer.data, os.path.join(scu.SCODOC_LOGOS_DIR, "logo_footer") form.footer.field.data, os.path.join(scu.SCODOC_LOGOS_DIR, "logo_footer")
) )
app.clear_scodoc_cache() app.clear_scodoc_cache()
flash(f"Configuration enregistrée") flash(f"Configuration enregistrée")