Skip to content

Commit add93a9

Browse files
authored
fix: import export validation errors (#897)
1 parent 27d7003 commit add93a9

File tree

9 files changed

+61
-44
lines changed

9 files changed

+61
-44
lines changed

src/unfold/contrib/import_export/templates/admin/import_export/import_validation.html

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
{% load i18n unfold %}
22

33
{% block validation_errors %}
4-
<div class="bg-red-50 border border-red-200 mb-4 mt-8 rounded shadow-sm text-red-500 text-sm dark:bg-red-500/20 dark:border-red-500/20">
5-
<div class="border-b border-red-200 flex flex-row py-3 px-4 dark:border-red-500/20">
6-
<h2 class="font-medium">
7-
{% trans "Some rows failed to validate" %}
8-
</h2>
9-
</div>
4+
{% capture as import_error silent %}
5+
<span class="block font-semibold mb-2">
6+
{% trans "Some rows failed to validate" %}
7+
</span>
108

11-
<div class="px-4 py-3">
12-
<p>
13-
{% trans "Please correct these errors in your data where possible, then reupload it using the form above." %}
14-
</p>
15-
</div>
9+
<span class="block">
10+
{% trans "Please correct these errors in your data where possible, then reupload it using the form above." %}
11+
</span>
12+
{% endcapture %}
13+
14+
<div class="mt-8">
15+
{% include "unfold/helpers/messages/error.html" with error=import_error %}
1616
</div>
1717

18-
<table class="border-gray-200 border-spacing-none border-separate w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
18+
<table class="import-preview border-gray-200 border-spacing-none border-separate w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
1919
<thead class="hidden lg:table-header-group font-semibold text-gray-900 dark:text-gray-100">
2020
<tr>
2121
<th class="align-middle capitalize px-3 py-2 text-left">
@@ -41,19 +41,24 @@ <h2 class="font-medium">
4141
{{ row.number }}
4242
</td>
4343

44-
<td data-label="{% trans "Errors" %}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
45-
<div>
46-
<span class="bg-red-600 font-semibold ml-2 px-1 rounded-sm text-xs text-white">{{ row.error_count }}</span>
47-
</div>
44+
<td data-label="{% trans "Errors" %}" class="errors align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
45+
<span class="validation-error-count bg-red-600 font-semibold ml-2 px-1 rounded-sm text-xs text-white">{{ row.error_count }}</span>
4846

49-
<div class="validation-error-container">
47+
<div class="validation-error-container rounded-md !bg-white border left-12 !m-0 !p-0 !top-3 dark:!bg-gray-800 dark:!border-gray-700 min-w-72">
5048
<ul class="validation-error-list">
5149
{% for field_name, error_list in row.field_specific_errors.items %}
52-
<li>
53-
<span class="validation-error-field-label">{{ field_name }}</span>
54-
<ul>
50+
<li class="p-3">
51+
<span class="validation-error-field-label !border-0 font-semibold mb-1 !text-font-important-light dark:!text-font-important-dark">
52+
{{ field_name }}
53+
</span>
54+
55+
<ul class="text-xs !m-0">
5556
{% for error in error_list %}
56-
<li>{{ error }}</li>
57+
<li class="!m-0">
58+
<p class="leading-normal">
59+
{{ error }}
60+
</p>
61+
</li>
5762
{% endfor %}
5863
</ul>
5964
</li>

src/unfold/contrib/import_export/templates/admin/import_export/resource_fields_list.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
{% load i18n %}
1+
{% load unfold i18n %}
22

33
{% block fields_help %}
4-
<div class="bg-blue-50 mb-4 text-blue-500 px-3 py-3 rounded-md text-sm dark:bg-blue-500/20 dark:border-blue-500/10">
4+
{% capture as fields_help silent %}
55
{% if import_or_export == "export" %}
66
{% trans "This exporter will export the following fields: " %}
77
{% elif import_or_export == "import" %}
@@ -20,5 +20,7 @@
2020
{% endfor %}
2121
</dl>
2222
{% endif %}
23-
</div>
23+
{% endcapture %}
24+
25+
{% include "unfold/helpers/messages/info.html" with message=fields_help %}
2426
{% endblock %}

src/unfold/static/unfold/css/styles.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/unfold/templates/unfold/helpers/messages.html

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
{% if messages %}
2-
<ul>
2+
<ul class="flex flex-col gap-4 mb-8">
33
{% for message in messages %}
4-
<li class="{{ message.tags }} mb-3 px-3 py-3 rounded-md text-sm last:mb-8
5-
{% if message.tags == 'success' %}
6-
bg-green-100 text-green-700 dark:bg-green-500/20 dark:text-green-400
7-
{% elif message.tags == 'warning' %}
8-
bg-orange-100 text-orange-700 dark:bg-orange-500/20 dark:text-orange-400
9-
{% elif message.tags == 'error' %}
10-
bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-400
11-
{% elif message.tags == 'info' %}
12-
bg-blue-100 text-blue-700 dark:bg-blue-500/20 dark:text-blue-400
13-
{% else %}
14-
bg-gray-100 text-gray-700 dark:bg-gray-500/20 dark:text-gray-400
15-
{% endif %}">
16-
{{ message|capfirst }}
4+
<li class="*:!mb-0">
5+
{% if message.tags == 'info' %}
6+
{% include "unfold/helpers/messages/info.html" with message=message %}
7+
{% elif message.tags == 'success' %}
8+
{% include "unfold/helpers/messages/success.html" with message=message %}
9+
{% elif message.tags == 'warning' %}
10+
{% include "unfold/helpers/messages/warning.html" with message=message %}
11+
{% elif message.tags == 'error' %}
12+
{% include "unfold/helpers/messages/error.html" with message=message %}
13+
{% else %}
14+
{% include "unfold/helpers/messages/debug.html" with message=message %}
15+
{% endif %}
1716
</li>
1817
{% endfor %}
1918
</ul>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<p class="mb-3 px-3 py-3 rounded-md text-sm last:mb-8 bg-gray-100 text-gray-700 dark:bg-gray-500/20 dark:text-gray-400">
2+
{{ message }}
3+
</p>
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
{% load i18n %}
22

3-
{% if errors or error %}
4-
<p class="errornote bg-red-100 mb-8 text-red-600 px-3 py-3 rounded-md text-sm dark:bg-red-500/20 dark:border-red-500/20 dark:text-red-500 group-[.inline-tabular]:mb-0 group-[.inline-tabular]:mt-3 group-[.inline-tabular]:mx-3 group-[.inline-stacked]:mb-3 group-[.inline-stacked]:mt-3 group-[.inline-stacked]:mx-3">
3+
{% if errors or error or message %}
4+
<div class="errornote mb-3 px-3 py-3 rounded-md group-[.inline-tabular]:mb-0 group-[.inline-tabular]:mt-3 group-[.inline-tabular]:mx-3 group-[.inline-stacked]:mb-3 group-[.inline-stacked]:mt-3 group-[.inline-stacked]:mx-3 bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-400">
55
{% if error %}
66
{{ error }}
7+
{% elif message %}
8+
{{ message }}
79
{% else %}
810
{% for error in errors %}
911
{{ error }}
1012
{% endfor %}
1113
{% endif %}
12-
</p>
14+
</div>
1315
{% endif %}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
<p class="bg-blue-50 mb-8 text-blue-500 px-3 py-3 rounded-md text-sm dark:bg-blue-500/20 dark:border-blue-500/10">
2-
{{ message|safe }}
1+
<p class="mb-3 px-3 py-3 rounded-md text-sm last:mb-8 bg-blue-100 text-blue-700 dark:bg-blue-500/20 dark:text-blue-400">
2+
{{ message }}
33
</p>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<p class="mb-3 px-3 py-3 rounded-md text-sm last:mb-8 bg-green-100 text-green-700 dark:bg-green-500/20 dark:text-green-400">
2+
{{ message }}
3+
</p>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<p class="mb-3 px-3 py-3 rounded-md text-sm last:mb-8 bg-orange-100 text-orange-700 dark:bg-orange-500/20 dark:text-orange-400">
2+
{{ message }}
3+
</p>

0 commit comments

Comments
 (0)