Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions src/unfold/contrib/import_export/forms.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
from import_export.forms import ImportExportFormBase as BaseImportExportFormBase
from unfold.widgets import SELECT_CLASSES, UnfoldAdminFileFieldWidget
from import_export.forms import ExportForm as BaseExportForm
from import_export.forms import ImportForm as BaseImportForm
from unfold.widgets import (
SELECT_CLASSES,
UnfoldAdminFileFieldWidget,
)


class ImportForm(BaseImportExportFormBase):
class ImportForm(BaseImportForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["resource"].widget = UnfoldAdminFileFieldWidget()

self.fields["resource"].widget.attrs["class"] = " ".join(SELECT_CLASSES)
self.fields["import_file"].widget = UnfoldAdminFileFieldWidget()
self.fields["format"].widget.attrs["class"] = " ".join(SELECT_CLASSES)


class ExportForm(BaseImportExportFormBase):
class ExportForm(BaseExportForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["format"].widget.attrs["class"] = " ".join(SELECT_CLASSES)
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,20 @@
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}

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

{% if fields_list|length <= 1 %}
<span class="font-medium">
{{ fields_list.0.1|join:", " }}
</code>
<fieldset class="border border-gray-200 mb-8 rounded-md pt-3 px-3 shadow-sm dark:border-gray-800">
{% if form.resource.field.widget.attrs.readonly %}
{% include "unfold/helpers/field_readonly.html" with title=form.resource.field.label value=form.resource.field.value %}
{{ form.resource.as_hidden }}
{% else %}
<dl>
{% for resource, fields in fields_list %}
<dt>{{ resource }}</dt>
<dd><code>{{ fields|join:", " }}</code></dd>
{% endfor %}
</dl>
{% include "unfold/helpers/field.html" with field=form.resource %}
{% endif %}
</p>

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

{% include "unfold/helpers/field.html" with field=form.format %}
{% include "unfold/helpers/field.html" with field=form.import_file %}

{% include "unfold/helpers/field.html" with field=form.format %}
</fieldset>


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{% load i18n %}

{% block fields_help %}
<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">
{% if import_or_export == "export" %}
{% trans "This exporter will export the following fields: " %}
{% elif import_or_export == "import" %}
{% trans "This importer will import the following fields: " %}
{% endif %}

{% if fields_list|length <= 1 %}
<code class="font-medium">
{{ fields_list.0.1|join:", " }}
</code>
{% else %}
<dl>
{% for resource, fields in fields_list %}
<dt>{{ resource }}</dt>
<dd><code>{{ fields|join:", " }}</code></dd>
{% endfor %}
</dl>
{% endif %}
</div>
{% endblock %}