summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commitbe885665de124f52974dd9534a480149304650de (patch)
treed2208ff2b96e5fe3c984cde1932de183dc9f2b26 /ishtar_common
parent5704a58d94aa129621fe3bc654f63ad9fd820732 (diff)
downloadIshtar-be885665de124f52974dd9534a480149304650de.tar.bz2
Ishtar-be885665de124f52974dd9534a480149304650de.zip
Imports: fix CSV file saving
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models_imports.py28
-rw-r--r--ishtar_common/templates/ishtar/import_list.html10
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>