#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (C) 2013 Étienne Loks # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # See the file COPYING for details. from django.conf import settings from django.db.models import Q from geodjangofla.models import Commune from ishtar_common.models import Town def load_towns(): q = None for dpt_number in settings.ISHTAR_DPTS: query = Q(insee_com__istartswith=dpt_number) if q: q = q | query else: q = query if q: q = Commune.objects.filter(q) else: q = Commune.objects nb, updated = 0, 0 for town in q.all(): surface = town.superficie or 0 surface = surface * 10000 defaults = {'name':town.nom_comm, 'surface':surface, 'center':town.centroid} town, created = Town.objects.get_or_create(numero_insee=town.insee_com, defaults=defaults) if created: nb += 1 else: updated += 1 for k in defaults: setattr(town, k, defaults[k]) town.save() return nb, updated