Ejemplo n.º 1
0
    def _import(self, folder):
        json_folder = folder + JSONPATTERN

        print("Nuking the DB:", end='')
        Record.objects.all().delete()
        Tag.objects.all().delete()
        print("Done")
        print("Importing: %s" % json_folder)

        file_counter = 0

        for filename in iglob(json_folder):
            with open(filename) as f:
                file_counter += 1
                print("#%s" % file_counter)

                details = load_json(f)

                record = Record(
                    record_number=details['record number']
                    if 'record number' in details else None,
                    area=details['area'] if 'area' in details else None,
                    date_raw=details['date'] if 'date' in details else None,
                    date=self._date_cleanup(details['date'])
                    if 'date' in details else None,
                    street=details['street'] if 'street' in details else None,
                    number=details['number'] if 'number' in details else None,
                    image_url=details['image_url']
                    if 'image_url' in details else None,
                    description=details['description']
                    if 'description' in details else None,
                    caption=details['caption']
                    if 'caption' in details else None)
                record.save()

                if record.date is None:
                    print(
                        "Error with date in %s: %s" %
                        (details['record number'],
                         details['date'] if 'date' in details else "NO DATE"))

                if details['tags'] is not None:
                    for tag_title in details['tags']:
                        tag_title = self._tag_cleanup(tag_title)
                        try:
                            tag = Tag.objects.get(title=tag_title)
                        except Tag.DoesNotExist:
                            tag = Tag(title=tag_title)
                            tag.save()

                        record.tags.add(tag)
                        record.save()