Skip to content

Commit 76022c3

Browse files
authored
fix: import export 4 support (#404)
1 parent 77500dd commit 76022c3

File tree

3 files changed

+44
-21
lines changed

3 files changed

+44
-21
lines changed
Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
1-
from import_export.forms import ImportExportFormBase as BaseImportExportFormBase
2-
from unfold.widgets import SELECT_CLASSES, UnfoldAdminFileFieldWidget
1+
from import_export.forms import ExportForm as BaseExportForm
2+
from import_export.forms import ImportForm as BaseImportForm
3+
from unfold.widgets import (
4+
SELECT_CLASSES,
5+
UnfoldAdminFileFieldWidget,
6+
)
37

48

5-
class ImportForm(BaseImportExportFormBase):
9+
class ImportForm(BaseImportForm):
610
def __init__(self, *args, **kwargs):
711
super().__init__(*args, **kwargs)
8-
self.fields["resource"].widget = UnfoldAdminFileFieldWidget()
12+
13+
self.fields["resource"].widget.attrs["class"] = " ".join(SELECT_CLASSES)
14+
self.fields["import_file"].widget = UnfoldAdminFileFieldWidget()
915
self.fields["format"].widget.attrs["class"] = " ".join(SELECT_CLASSES)
1016

1117

12-
class ExportForm(BaseImportExportFormBase):
18+
class ExportForm(BaseExportForm):
1319
def __init__(self, *args, **kwargs):
1420
super().__init__(*args, **kwargs)
1521
self.fields["format"].widget.attrs["class"] = " ".join(SELECT_CLASSES)

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

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,20 @@
44
<form action="" method="post" enctype="multipart/form-data">
55
{% csrf_token %}
66

7-
<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">
8-
{% trans "This importer will import the following fields: " %}
7+
{% include "admin/import_export/resource_fields_list.html" with import_or_export="import" %}
98

10-
{% if fields_list|length <= 1 %}
11-
<span class="font-medium">
12-
{{ fields_list.0.1|join:", " }}
13-
</code>
9+
<fieldset class="border border-gray-200 mb-8 rounded-md pt-3 px-3 shadow-sm dark:border-gray-800">
10+
{% if form.resource.field.widget.attrs.readonly %}
11+
{% include "unfold/helpers/field_readonly.html" with title=form.resource.field.label value=form.resource.field.value %}
12+
{{ form.resource.as_hidden }}
1413
{% else %}
15-
<dl>
16-
{% for resource, fields in fields_list %}
17-
<dt>{{ resource }}</dt>
18-
<dd><code>{{ fields|join:", " }}</code></dd>
19-
{% endfor %}
20-
</dl>
14+
{% include "unfold/helpers/field.html" with field=form.resource %}
2115
{% endif %}
22-
</p>
2316

24-
<fieldset class="border border-gray-200 mb-8 rounded-md pt-3 px-3 shadow-sm dark:border-gray-800">
25-
{% include "unfold/helpers/field.html" with field=form.resource %}
2617

27-
{% include "unfold/helpers/field.html" with field=form.format %}
18+
{% include "unfold/helpers/field.html" with field=form.import_file %}
19+
20+
{% include "unfold/helpers/field.html" with field=form.format %}
2821
</fieldset>
2922

3023

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{% load i18n %}
2+
3+
{% block fields_help %}
4+
<div 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">
5+
{% if import_or_export == "export" %}
6+
{% trans "This exporter will export the following fields: " %}
7+
{% elif import_or_export == "import" %}
8+
{% trans "This importer will import the following fields: " %}
9+
{% endif %}
10+
11+
{% if fields_list|length <= 1 %}
12+
<code class="font-medium">
13+
{{ fields_list.0.1|join:", " }}
14+
</code>
15+
{% else %}
16+
<dl>
17+
{% for resource, fields in fields_list %}
18+
<dt>{{ resource }}</dt>
19+
<dd><code>{{ fields|join:", " }}</code></dd>
20+
{% endfor %}
21+
</dl>
22+
{% endif %}
23+
</div>
24+
{% endblock %}

0 commit comments

Comments
 (0)