diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-08-28 17:06:24 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-08-28 17:06:24 +0200 |
commit | 446eab605172aa778569914e7c43232c013d0d1a (patch) | |
tree | d2208ff2b96e5fe3c984cde1932de183dc9f2b26 /ishtar_common | |
parent | 1a3e00d78cdb8069070c5b7e2bf5332570653fcb (diff) | |
download | Ishtar-446eab605172aa778569914e7c43232c013d0d1a.tar.bz2 Ishtar-446eab605172aa778569914e7c43232c013d0d1a.zip |
Imports: fix CSV file saving
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/models_imports.py | 28 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/import_list.html | 10 |
2 files changed, 17 insertions, 21 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index 2a594584e..cfc8857de 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -31,7 +31,7 @@ import zipfile from django.conf import settings from django.contrib.gis.db import models from django.core.exceptions import SuspiciousOperation -from django.core.files import File +from django.core.files.base import ContentFile from django.db.models.base import ModelBase from django.db.models.signals import pre_delete from django.template.defaultfilters import slugify @@ -861,29 +861,25 @@ class Import(models.Model): filename = slugify(self.importer_type.name) now = datetime.datetime.now().isoformat('-').replace(':', '') result_file = filename + "_result_%s.csv" % now - result_file = os.sep.join([self.result_file.storage.location, - result_file]) - with open(result_file, 'w') as fle: - fle.write(importer.get_csv_result().encode('utf-8')) - self.result_file = File(open(fle.name)) + self.result_file.save( + result_file, ContentFile(importer.get_csv_result().encode('utf-8'))) + if importer.errors: self.state = 'FE' error_file = filename + "_errors_%s.csv" % now - error_file = os.sep.join([self.error_file.storage.location, - error_file]) - with open(error_file, 'w') as fle: - fle.write(importer.get_csv_errors().encode('utf-8')) - self.error_file = File(open(fle.name)) + self.error_file.save( + error_file, + ContentFile(importer.get_csv_errors().encode('utf-8')) + ) else: self.state = 'F' self.error_file = None if importer.match_table: match_file = filename + "_match_%s.csv" % now - match_file = os.sep.join([self.match_file.storage.location, - match_file]) - with open(match_file, 'w') as fle: - fle.write(importer.get_csv_matches().encode('utf-8')) - self.match_file = File(open(fle.name)) + self.match_file.save( + match_file, + ContentFile(importer.get_csv_matches().encode('utf-8')) + ) self.save() def archive(self): diff --git a/ishtar_common/templates/ishtar/import_list.html b/ishtar_common/templates/ishtar/import_list.html index d5747fe88..c72c86d10 100644 --- a/ishtar_common/templates/ishtar/import_list.html +++ b/ishtar_common/templates/ishtar/import_list.html @@ -25,7 +25,7 @@ {{import.importer_type}} </td> <td> - <a href='{{MEDIA_URL}}{{import.imported_file}}'>{% trans "Source file" %}</a> + <a href='{{import.imported_file.url}}'>{% trans "Source file" %}</a> </td> <td> {{import.creation_date}} ({{import.user}}) @@ -47,18 +47,18 @@ {% endif %} </td> <td>{% if import.error_file %} - <a href='{{MEDIA_URL}}{{import.error_file}}'>{% trans "Error file" %}</a> + <a href='{{import.error_file.url}}'>{% trans "Error file" %}</a> {% endif %}</td> <td>{% if import.result_file %} - <a href='{{MEDIA_URL}}{{import.result_file}}'>{% trans "Control file" %}</a> + <a href='{{import.result_file.url}}'>{% trans "Control file" %}</a> {% endif %}</td> <td>{% if import.match_file %} - <a href='{{MEDIA_URL}}{{import.match_file}}'>{% trans "Match file" %}</a> + <a href='{{import.match_file.url}}'>{% trans "Match file" %}</a> {% endif %}</td> </tr> {% endfor %} </table> - <input type="submit" onclick="long_wait();return true;" value="{% trans "Validate" %}" /> + <input type="submit" onclick="long_wait();return true;" value="{% trans 'Validate' %}" /> </form> {% endif %} </div> |