diff options
| 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 | 
| commit | ee8753949d874035db38b7d6451835fe49377e7f (patch) | |
| tree | ee97974bad052ebe96230b8bd2ee7f00589fbd1c | |
| parent | f63bcf8bb9c8ea83546e0a4f886f321533c1cbfe (diff) | |
| download | Ishtar-ee8753949d874035db38b7d6451835fe49377e7f.tar.bz2 Ishtar-ee8753949d874035db38b7d6451835fe49377e7f.zip | |
Improve default value in imports
| -rw-r--r-- | archaeological_files/data_importer.py | 16 | ||||
| -rw-r--r-- | archaeological_files/models.py | 2 | ||||
| -rw-r--r-- | ishtar_common/data_importer.py | 12 | 
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(): | 
