Merge pull request 'fix ad local header ; deployed errored fields' (#365) from jmplace/ScoDoc-Lille:fix_add_local_header into master

Reviewed-on: https://scodoc.org/git/ScoDoc/ScoDoc/pulls/365
This commit is contained in:
Emmanuel Viennet 2022-04-14 11:16:17 +02:00
commit 0275054510
3 changed files with 47 additions and 14 deletions

View File

@ -151,7 +151,7 @@ class AddLogoForm(FlaskForm):
dept_id = dept_key_to_id(self.dept_key.data) dept_id = dept_key_to_id(self.dept_key.data)
if dept_id == GLOBAL: if dept_id == GLOBAL:
dept_id = None dept_id = None
if find_logo(logoname=name.data, dept_id=dept_id) is not None: if find_logo(logoname=name.data, dept_id=dept_id, strict=True) is not None:
raise validators.ValidationError("Un logo de même nom existe déjà") raise validators.ValidationError("Un logo de même nom existe déjà")
def select_action(self): def select_action(self):
@ -160,6 +160,14 @@ class AddLogoForm(FlaskForm):
return LogoInsert.build_action(self.data) return LogoInsert.build_action(self.data)
return None return None
def errors(self):
if self.do_insert.data:
if self.name.errors:
return True
if self.upload.errors:
return True
return False
class LogoForm(FlaskForm): class LogoForm(FlaskForm):
"""Embed both presentation of a logo (cf. template file configuration.html) """Embed both presentation of a logo (cf. template file configuration.html)
@ -211,6 +219,11 @@ class LogoForm(FlaskForm):
return LogoUpdate.build_action(self.data) return LogoUpdate.build_action(self.data)
return None return None
def errors(self):
if self.upload.data and self.upload.errors:
return True
return False
class DeptForm(FlaskForm): class DeptForm(FlaskForm):
dept_key = HiddenField() dept_key = HiddenField()
@ -244,6 +257,14 @@ class DeptForm(FlaskForm):
return self return self
return self.index.get(logoname, None) return self.index.get(logoname, None)
def errors(self):
if self.add_logo.errors():
return True
for logo_form in self.logos:
if logo_form.errors():
return True
return False
def _make_dept_id_name(): def _make_dept_id_name():
"""Cette section assure que tous les départements sont traités (y compris ceux qu'ont pas de logo au départ) """Cette section assure que tous les départements sont traités (y compris ceux qu'ont pas de logo au départ)

View File

@ -136,7 +136,7 @@ class LogoInsert(Action):
parameters["dept_id"] = None parameters["dept_id"] = None
if parameters["upload"] and parameters["name"]: if parameters["upload"] and parameters["name"]:
logo = find_logo( logo = find_logo(
logoname=parameters["name"], dept_id=parameters["dept_key"] logoname=parameters["name"], dept_id=parameters["dept_key"], strict=True
) )
if logo is None: if logo is None:
return LogoInsert(parameters) return LogoInsert(parameters)

View File

@ -20,20 +20,28 @@
{% endmacro %} {% endmacro %}
{% macro render_add_logo(add_logo_form) %} {% macro render_add_logo(add_logo_form) %}
<details> {% if add_logo_form.errors() %}
<summary> <details open>
<h3>Ajouter un logo</h3> {% else %}
</summary> <details>
<div> {% endif %}
{{ render_field(add_logo_form.name) }} <summary>
{{ render_field(add_logo_form.upload) }} <h3>Ajouter un logo</h3>
{{ render_field(add_logo_form.do_insert, False, onSubmit="submit_form") }} </summary>
</div> <div>
</details> {{ render_field(add_logo_form.name) }}
{{ render_field(add_logo_form.upload) }}
{{ render_field(add_logo_form.do_insert, False, onSubmit="submit_form") }}
</div>
</details>
{% endmacro %} {% endmacro %}
{% macro render_logo(dept_form, logo_form) %} {% macro render_logo(dept_form, logo_form) %}
<details> {% if logo_form.errors() %}
<details open>
{% else %}
<details>
{% endif %}
{{ logo_form.hidden_tag() }} {{ logo_form.hidden_tag() }}
<summary> <summary>
{% if logo_form.titre %} {% if logo_form.titre %}
@ -97,9 +105,13 @@
<div class="configuration_logo"> <div class="configuration_logo">
<h1>Bibliothèque de logos</h1> <h1>Bibliothèque de logos</h1>
{% for dept_entry in form.depts.entries %} {% for dept_entry in form.depts.entries %}
<details>
{% set dept_form = dept_entry.form %} {% set dept_form = dept_entry.form %}
{{ dept_entry.form.hidden_tag() }} {{ dept_entry.form.hidden_tag() }}
{% if dept_form.errors() %}
<details open>
{% else %}
<details>
{% endif %}
<summary> <summary>
{% if dept_entry.form.is_local() %} {% if dept_entry.form.is_local() %}
<h2>Département {{ dept_form.dept_name.data }}</h2> <h2>Département {{ dept_form.dept_name.data }}</h2>