- {{ 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)
-
+ {% 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