diff options
Diffstat (limited to 'archaeological_operations/import_from_csv.py')
| -rw-r--r-- | archaeological_operations/import_from_csv.py | 37 | 
1 files changed, 22 insertions, 15 deletions
| diff --git a/archaeological_operations/import_from_csv.py b/archaeological_operations/import_from_csv.py index 790f0e078..3f29bcb95 100644 --- a/archaeological_operations/import_from_csv.py +++ b/archaeological_operations/import_from_csv.py @@ -330,12 +330,12 @@ def parse_person(surname, name, old_ref, owner):          p = Person.objects.create(**defaults)          return p -def parse_comment_addr_nature(addr, nature, owner): +def parse_comment_addr_nature(nature, addr, owner):      addr = parse_string(addr)      nature = parse_string(nature)      comments = []      if nature: -        comments += [u"Amanégement :", nature] +        comments += [u"Aménagement :", nature]      if addr:          comments += [u"Adresse :", addr]      if not comments: @@ -552,13 +552,20 @@ class RelatedClass:              unique_data = {}              for k in self.unique_keys:                  unique_data[k] = data.pop(k) -            if self.cls.objects.filter(**unique_data).count() > 1: -                return None -            unique_data['defaults'] = data -            try: -                obj, created = self.cls.objects.get_or_create(**unique_data) -            except ValueError: -                return None +            created = False +            filtr = unique_data.copy() +            q = None +            # check if all condition have a value +            if not [k for k in filtr if not filtr[k]]: +                q = self.cls.objects.filter(**unique_data) +            if q and q.count() > 1: +                obj = q.all()[0] +            else: +                unique_data['defaults'] = data +                try: +                    obj, created = self.cls.objects.get_or_create(**unique_data) +                except ValueError: +                    return None              if not created:                  for k in unique_data['defaults']:                      try: @@ -608,12 +615,12 @@ def import_operations_csv(values, col_defs=OPE_COLS, update=True, person=None,                                       },                       reverse_key='operation',                       unique_keys=['ref_sra']), -        RelatedClass('associated_file', File, -                     extra_data=['year'], -                     default_data={'history_modifier':default_person, -                                   'file_type':FileType.objects.get( -                                                txt_idx='undefined')}, -                     unique_keys=['internal_reference']), +        #RelatedClass('associated_file', File, +        #             extra_data=['year'], +        #             default_data={'history_modifier':default_person, +        #                           'file_type':FileType.objects.get( +        #                                        txt_idx='undefined')}, +        #             unique_keys=['internal_reference', 'year']),          RelatedClass('source', OperationSource, reverse_key='operation',                       unique_keys=['index']),          RelatedClass('parcels', Parcel, reverse_key='operation', | 
