summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-02-23 01:15:37 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2015-05-06 15:59:57 +0200
commitef9c5f35de49d18108fdcf3ee081f3df989d76b9 (patch)
treeee97974bad052ebe96230b8bd2ee7f00589fbd1c
parentdbd3c33d65de3b28ec5df3ffa4494f5863651663 (diff)
downloadIshtar-ef9c5f35de49d18108fdcf3ee081f3df989d76b9.tar.bz2
Ishtar-ef9c5f35de49d18108fdcf3ee081f3df989d76b9.zip
Improve default value in imports
-rw-r--r--archaeological_files/data_importer.py16
-rw-r--r--archaeological_files/models.py2
-rw-r--r--ishtar_common/data_importer.py12
3 files changed, 29 insertions, 1 deletions
diff --git a/archaeological_files/data_importer.py b/archaeological_files/data_importer.py
index 51809980f..dd6322901 100644
--- a/archaeological_files/data_importer.py
+++ b/archaeological_files/data_importer.py
@@ -41,7 +41,21 @@ class ImportClosingFormater(ImportFormater):
obj.end_date = open_date + datetime.timedelta(30)
obj.save()
-class FileImporterSraPdL(Importer):
+class FilePostProcessing(object):
+ # erroneaous date to be easily identified on post-processing
+ DEFAULT_YEAR = 1756
+ EXTRA_DEFAULTS = {tuple():{'year':DEFAULT_YEAR}}
+
+ def post_processing(self, item, data):
+ if item.year == self.DEFAULT_YEAR:
+ if item.creation_date:
+ item.year = item.creation_date.year
+ elif item.reception_date:
+ item.year = item.reception_date.year
+ item.save()
+ return item
+
+class FileImporterSraPdL(FilePostProcessing, Importer):
DESC = u"Exports dossiers SRA PdL : importeur Filemaker dossiers"
LINE_FORMAT = []
OBJECT_CLS = models.File
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 49498e35f..9bcae4280 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -328,6 +328,8 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
def save(self, *args, **kwargs):
returned = super(File, self).save(*args, **kwargs)
+ if self.main_town and not self.main_town in list(self.towns.all()):
+ self.towns.add(self.main_town)
self.update_delay_date()
self.update_short_menu_class()
return returned
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py
index fd4b05cbd..c6019652c 100644
--- a/ishtar_common/data_importer.py
+++ b/ishtar_common/data_importer.py
@@ -451,6 +451,7 @@ class Importer(object):
OBJECT_CLS = None
IMPORTED_LINE_FIELD = None
UNICITY_KEYS = []
+ EXTRA_DEFAULTS = {}
DEFAULTS = {}
ERRORS = {
'header_check':_(u"The given file is not correct. Check the file "
@@ -485,6 +486,12 @@ class Importer(object):
self.line_format = copy.copy(self.LINE_FORMAT)
self.import_instance = import_instance
self._defaults = self.DEFAULTS.copy()
+ # EXTRA_DEFAULTS are for multiple inheritance
+ if self.EXTRA_DEFAULTS:
+ for k in self.EXTRA_DEFAULTS:
+ if k not in self._defaults:
+ self._defaults[k] = {}
+ self._defaults[k].update(self.EXTRA_DEFAULTS[k])
self.history_modifier = history_modifier
self.output = output
self.result = []
@@ -497,6 +504,9 @@ class Importer(object):
self.history_modifier = User.objects.filter(
is_superuser=True).order_by('pk')[0]
+ def post_processing(self, item, data):
+ return item
+
def initialize(self, table, output='silent'):
"""
copy vals in columns and initialize formaters
@@ -706,6 +716,8 @@ class Importer(object):
for formater, val in self._post_processing:
formater.post_process(obj, data, val, owner=self.history_modifier)
+ obj = self.post_processing(obj, data)
+
# writing report
self.result.append([])
for k in data.keys():