summaryrefslogtreecommitdiff
path: root/ishtar_common/tasks.py
diff options
context:
space:
mode:
authorroot <root@viserion.(none)>2013-04-30 11:01:38 +0000
committerroot <root@viserion.(none)>2013-04-30 11:01:38 +0000
commit16e1f93de47184e52765f950e39cb04f6ed93dd8 (patch)
tree6c6a67f3325c1ffb03ae3e5078c93f1fa04343ae /ishtar_common/tasks.py
parent2470c7c36a92a5714a7b8d56a1bcab904f23f0d8 (diff)
parentacad3b3e10cd29c81b210d9c9672231f4e6ab6d9 (diff)
downloadIshtar-16e1f93de47184e52765f950e39cb04f6ed93dd8.tar.bz2
Ishtar-16e1f93de47184e52765f950e39cb04f6ed93dd8.zip
Merge branch 'master' of lysithea.proxience.net:/home/proxience/git/ishtar
Diffstat (limited to 'ishtar_common/tasks.py')
-rw-r--r--ishtar_common/tasks.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/ishtar_common/tasks.py b/ishtar_common/tasks.py
new file mode 100644
index 000000000..a9db26087
--- /dev/null
+++ b/ishtar_common/tasks.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2013 É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
+# 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 <http://www.gnu.org/licenses/>.
+
+# 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