diff options
Diffstat (limited to 'archaeological_files/data_importer.py')
-rw-r--r-- | archaeological_files/data_importer.py | 51 |
1 files changed, 15 insertions, 36 deletions
diff --git a/archaeological_files/data_importer.py b/archaeological_files/data_importer.py index f3268d24d..a5fa3c18d 100644 --- a/archaeological_files/data_importer.py +++ b/archaeological_files/data_importer.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2013-2014 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2013-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -58,40 +58,7 @@ class ImportMayorFormater(ImportFormater): class FilePostProcessing(object): - # erroneaous date to be easily identified on post-processing - DEFAULT_YEAR = 1871 - EXTRA_DEFAULTS = {tuple(): {'year': DEFAULT_YEAR}} - def post_processing(self, item, data): - if item.year == self.DEFAULT_YEAR: # the default year has been applied - if item.creation_date: - item.year = item.creation_date.year - elif item.reception_date: - item.year = item.reception_date.year - if item.external_id: - idx = None - if '-' in item.external_id: - year, y_idx = item.external_id.split('-') - if len(year) == 4: # 2007-XXXX - try: - item.year = int(year) - idx = y_idx - except ValueError: - pass - if '.' in item.external_id: - year, y_idx = item.external_id.split('.') - if len(year) == 4: # 2011.XXXX - try: - item.year = int(year) - idx = y_idx - except ValueError: - pass - if not idx: - idx = item.external_id - try: - item.numeric_reference = int(idx) - except ValueError: - pass if not item.end_date: # auto-close open_date = item.reception_date or item.creation_date item.end_date = open_date + datetime.timedelta(30) @@ -104,6 +71,7 @@ class FileImporterSraPdL(FilePostProcessing, Importer): SLUG = "sra-pdl-files" LINE_FORMAT = [] OBJECT_CLS = models.File + UNICITY_KEYS = ['external_id'] DEFAULTS = { ('responsible_town_planning_service', 'attached_to'): { 'organization_type': OrganizationType.objects.get( @@ -228,8 +196,7 @@ class FileImporterSraPdL(FilePostProcessing, Importer): ImportFormater('internal_reference', # AL, 38 UnicodeFormater(60), comment=u"Autre référence", - required=False, - duplicate_fields=[['external_id', False]]), + required=False), None, # AM, 39 None, # AN, 40 ImportFormater('comment', # AO, 41 @@ -337,6 +304,18 @@ class FileImporterSraPdL(FilePostProcessing, Importer): required=False, comment=u"Type de permis"), # CG, 85 None, # CH, 85 + ImportFormater('year', # CI, 86 + IntegerFormater(), + comment=u"Année du dossier", + required=True), + ImportFormater('numeric_reference', # CJ, 87 + IntegerFormater(), + comment=u"Identifiant numérique", + required=True), + ImportFormater('external_id', # CK, 88 + UnicodeFormater(), + comment=u"Identifiant externe", + required=True), ] def __init__(self, *args, **kwargs): |