summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar_common/forms_common.py23
-rw-r--r--ishtar_common/ishtar_menu.py6
-rw-r--r--ishtar_common/templates/ishtar/import_list.html8
3 files changed, 30 insertions, 7 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 0cdb70a36..af41e2fcf 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -16,9 +16,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# See the file COPYING for details.
-
+import csv
from collections import OrderedDict
import datetime
+from io import StringIO
import os
import pyqrcode
import re
@@ -184,6 +185,10 @@ class BaseImportForm(BSForm, forms.ModelForm):
"imported_images": widgets.BSClearableFileInput,
}
+ HEADERS = {
+ "name": FormHeader(_("Import (table)")),
+ }
+
def __init__(self, *args, **kwargs):
user = kwargs.pop("user")
super(BaseImportForm, self).__init__(*args, **kwargs)
@@ -236,6 +241,22 @@ class BaseImportForm(BSForm, forms.ModelForm):
return data
+ def clean_imported_file(self):
+ value = self.cleaned_data.get("imported_file", None)
+ if value:
+ try:
+ assert value.name.lower().endswith(".csv")
+ value.seek(0)
+ reader = csv.reader(StringIO(value.read().decode('utf-8')))
+ for __ in reader:
+ break
+ value.seek(0)
+ except (AssertionError, UnicodeDecodeError):
+ raise forms.ValidationError(
+ _("This is not a valid CSV file.")
+ )
+ return value
+
def clean_imported_images_link(self):
value = self.cleaned_data.get("imported_images_link", None)
if value:
diff --git a/ishtar_common/ishtar_menu.py b/ishtar_common/ishtar_menu.py
index 0574d0852..698cc6658 100644
--- a/ishtar_common/ishtar_menu.py
+++ b/ishtar_common/ishtar_menu.py
@@ -178,12 +178,6 @@ MENU_SECTIONS = [
_("Imports"),
childs=[
MenuItem(
- "import-new",
- _("New import"),
- model=models.Import,
- access_controls=["change_import"],
- ),
- MenuItem(
"import-list",
_("Current imports"),
model=models.Import,
diff --git a/ishtar_common/templates/ishtar/import_list.html b/ishtar_common/templates/ishtar/import_list.html
index f98f47b66..1b571dff7 100644
--- a/ishtar_common/templates/ishtar/import_list.html
+++ b/ishtar_common/templates/ishtar/import_list.html
@@ -16,6 +16,14 @@
{% endblock %}
{% block content %}
+<div class="text-center">
+ <a href="{% url 'new_import' %}" class="btn btn-success">
+ <i class="fa fa-plus"></i> {% trans 'import (table)' %}
+ </a>
+ <a href="#" class="btn btn-success">
+ <i class="fa fa-plus"></i> {% trans 'import (GIS)' %}
+ </a>
+</div>
<div id="import-container">
{% include "ishtar/import_table.html" %}
</div>