diff options
-rw-r--r-- | ishtar_common/forms_common.py | 23 | ||||
-rw-r--r-- | ishtar_common/ishtar_menu.py | 6 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/import_list.html | 8 |
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> |