summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-08-03 16:58:17 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-16 16:38:32 +0200
commit3372c744f399980c97cc1c1bd30102c389ecf157 (patch)
tree9aab65cb3c169edbf50d995208d89eecc4bfb250
parent57e35ce0c26ee36f0345e6adf00ea3f63e7235f0 (diff)
downloadIshtar-3372c744f399980c97cc1c1bd30102c389ecf157.tar.bz2
Ishtar-3372c744f399980c97cc1c1bd30102c389ecf157.zip
✨ Imports groups - form: filter add button by availability - importer file is required
-rw-r--r--ishtar_common/forms_common.py3
-rw-r--r--ishtar_common/migrations/0230_auto_20230803_1648.py (renamed from ishtar_common/migrations/0230_auto_20230729_1345.py)4
-rw-r--r--ishtar_common/models_imports.py10
-rw-r--r--ishtar_common/templates/ishtar/import_list.html12
-rw-r--r--ishtar_common/views.py7
5 files changed, 23 insertions, 13 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 1b62dcf49..e5ff21cd8 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -236,7 +236,8 @@ class BaseImportForm(IshtarForm, forms.ModelForm):
def __init__(self, *args, **kwargs):
user = kwargs.pop("user")
- super(BaseImportForm, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
+ self.fields["imported_file"].required = True
self._filter_group(user)
self._filter_importer_type()
if "imported_images" in self.fields:
diff --git a/ishtar_common/migrations/0230_auto_20230729_1345.py b/ishtar_common/migrations/0230_auto_20230803_1648.py
index 8d09fe16c..19402b5f6 100644
--- a/ishtar_common/migrations/0230_auto_20230729_1345.py
+++ b/ishtar_common/migrations/0230_auto_20230803_1648.py
@@ -1,4 +1,4 @@
-# Generated by Django 2.2.24 on 2023-07-29 13:45
+# Generated by Django 2.2.24 on 2023-08-03 16:48
import django.core.validators
from django.db import migrations, models
@@ -30,7 +30,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='importertype',
name='is_import',
- field=models.BooleanField(default=False, verbose_name='Can be import'),
+ field=models.BooleanField(default=True, verbose_name='Can be import'),
),
migrations.AddField(
model_name='importertype',
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index 457d3ff4e..d0aa6f4d6 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -183,7 +183,7 @@ class ImporterType(models.Model):
related_name="importer_type_created",
)
is_template = models.BooleanField(_("Can be exported"), default=False)
- is_import = models.BooleanField(_("Can be import"), default=False)
+ is_import = models.BooleanField(_("Can be import"), default=True)
unicity_keys = models.CharField(
_('Unicity keys (separator ";")'), blank=True, null=True, max_length=500,
help_text=_("Mandatory for update importer. Set to key that identify items "
@@ -1293,6 +1293,10 @@ class BaseImport(models.Model):
class ImportGroup(BaseImport):
+ class Meta:
+ verbose_name = _("Import - Group")
+ verbose_name_plural = _("Import - Groups")
+ ADMIN_SECTION = _("Imports")
importer_type = models.ForeignKey(ImporterGroup, on_delete=models.CASCADE,
verbose_name=_("Importer group type"))
current_import = models.PositiveIntegerField(_("Current import"), blank=True, null=True)
@@ -1374,8 +1378,8 @@ class Import(BaseImport):
)
class Meta:
- verbose_name = _("Import")
- verbose_name_plural = _("Imports")
+ verbose_name = _("Import - Import")
+ verbose_name_plural = _("Import - Imports")
ADMIN_SECTION = _("Imports")
def __str__(self):
diff --git a/ishtar_common/templates/ishtar/import_list.html b/ishtar_common/templates/ishtar/import_list.html
index 1b78e62c4..254ba8429 100644
--- a/ishtar_common/templates/ishtar/import_list.html
+++ b/ishtar_common/templates/ishtar/import_list.html
@@ -17,15 +17,15 @@
{% block content %}
<div class="text-center">
- <a href="{% url 'new_import' %}" class="btn btn-success">
+ {% if has_import_table %}<a href="{% url 'new_import' %}" class="btn btn-success">
<i class="fa fa-plus"></i> {% trans 'import (table)' %}
- </a>
- <a href="{% url 'new_import_gis' %}" class="btn btn-success">
+ </a>{% endif %}
+ {% if has_import_gis %}<a href="{% url 'new_import_gis' %}" class="btn btn-success">
<i class="fa fa-plus"></i> {% trans 'import (GIS)' %}
- </a>
- <a href="{% url 'new_import_group' %}" class="btn btn-success">
+ </a>{% endif %}
+ {% if has_import_group %}<a href="{% url 'new_import_group' %}" class="btn btn-success">
<i class="fa fa-plus"></i> {% trans 'import (group)' %}
- </a>
+ </a>{% endif %}
</div>
<div id="import-container">
{% include "ishtar/import_table.html" %}
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index b58ab024a..31d3d9516 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1598,7 +1598,12 @@ class ImportListView(IshtarMixin, LoginRequiredMixin, ListView):
def get_context_data(self, **kwargs):
dct = super(ImportListView, self).get_context_data(**kwargs)
- dct["autorefresh_available"] = settings.USE_BACKGROUND_TASK
+ dct.update({
+ "autorefresh_available": settings.USE_BACKGROUND_TASK,
+ "has_import_table": models.ImporterType.objects.filter(available=True, is_import=True, type='tab').count(),
+ "has_import_gis": models.ImporterType.objects.filter(available=True, is_import=True, type='gis').count(),
+ "has_import_group": models.ImporterGroup.objects.filter(available=True).count(),
+ })
return dct