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>  | 
