diff --git a/validata_ui_next/templates/validation_report.html b/validata_ui_next/templates/validation_report.html index c6331f1042844a16c6761106298a70ec67a5ff2b..a75b0f31f151e5901e62661dd90c36b932f22f85 100644 --- a/validata_ui_next/templates/validation_report.html +++ b/validata_ui_next/templates/validation_report.html @@ -45,8 +45,6 @@ {% if report.table.errors.structure %}

Problèmes de structure

- {{ report.table.errors.structure|length }} erreur(s) détectée(s) - {% for err in report.table.errors.structure %}
{{ err.message | safe}} @@ -58,9 +56,12 @@ {% if report.table.errors.body %} + +{% if not report.table.display_body_errors %} +Merci de corriger ce(s) erreur(s) pour visualiser les erreurs de contenu. +{% else %}

Problèmes de contenu

- {{ report.table.errors.body|length }} erreur(s) détectée(s)
@@ -100,18 +101,11 @@
- + {% endif %} {% endif %}
- - - {% endif %} {% endblock %} {% block footer %} @@ -127,4 +121,10 @@ }) }) + +{# +{{ report.table.errors.structure|length }} erreur(s) détectée(s) +{{ report.table.errors.body|length }} erreur(s) détectée(s) + +#} {% endblock %} \ No newline at end of file diff --git a/validata_ui_next/views.py b/validata_ui_next/views.py index 2eb3ad6d1ef34e35efea3a184ad354e1a71ef08b..95e92b59658c4274b15f6e2913f79b90f10fbb2a 100644 --- a/validata_ui_next/views.py +++ b/validata_ui_next/views.py @@ -156,26 +156,32 @@ def create_validata_report(goodtables_report, schema): else: report['table']['errors']['body'].append(err) - # and group body errors by row id - rows = [] - current_row_id = 0 - for err in report['table']['errors']['body']: - if not 'row-number' in err: - print('ERR', err) - row_id = err['row-number'] - del err['row-number'] - del err['context'] - if row_id != current_row_id: - current_row_id = row_id - rows.append({'row_id': current_row_id, 'errors': {}}) - - column_id = err.get('column-number') - if column_id is not None: - del err['column-number'] - rows[-1]['errors'][column_id] = err - else: - rows[-1]['errors']['row'] = err - report['table']['errors']['by_rows'] = rows + # If there are structure errors different to invalid-column-delimiter + # => don't display body errors + report['table']['display_body_errors'] = all(err['code'] == 'invalid-column-delimiter' + for err in report['table']['errors']['structure']) + + if report['table']['display_body_errors']: + # and group body errors by row id + rows = [] + current_row_id = 0 + for err in report['table']['errors']['body']: + if not 'row-number' in err: + print('ERR', err) + row_id = err['row-number'] + del err['row-number'] + del err['context'] + if row_id != current_row_id: + current_row_id = row_id + rows.append({'row_id': current_row_id, 'errors': {}}) + + column_id = err.get('column-number') + if column_id is not None: + del err['column-number'] + rows[-1]['errors'][column_id] = err + else: + rows[-1]['errors']['row'] = err + report['table']['errors']['by_rows'] = rows return report