summaryrefslogtreecommitdiff
path: root/chimere/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-03-17 18:30:37 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-03-17 18:30:37 +0100
commit134483232d3780c22368d26af0f10d10b57b7096 (patch)
tree6f0ae4a194f8ae01658639378ca0219dfc644b9c /chimere/admin.py
parentf88cb456e1beadb4fd967f37b9d56c94c69755c5 (diff)
downloadChimère-134483232d3780c22368d26af0f10d10b57b7096.tar.bz2
Chimère-134483232d3780c22368d26af0f10d10b57b7096.zip
KML export
Diffstat (limited to 'chimere/admin.py')
-rw-r--r--chimere/admin.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/chimere/admin.py b/chimere/admin.py
index b0d0a15..afc818c 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -20,9 +20,13 @@
"""
Settings for administration pages
"""
+import datetime
+import unicodedata
from django.conf import settings
from django.contrib import admin
+from django.http import HttpResponse
+from django.shortcuts import render_to_response
from django.utils.translation import ugettext_lazy as _
from chimere import tasks
@@ -52,6 +56,25 @@ def validate(modeladmin, request, queryset):
item.save()
validate.short_description = _(u"Validate")
+def export_to_kml(modeladmin, request, queryset):
+ u"""
+ Export data to KML
+ """
+ dct = {'name':settings.PROJECT_NAME,
+ 'description':unicode(datetime.date.today()),
+ 'locations':queryset.all()
+ }
+ result = render_to_response('chimere/export.kml', dct)
+ response = HttpResponse(result,
+ mimetype='application/vnd.google-earth.kml+xml')
+ filename = ''.join(
+ (c for c in unicodedata.normalize('NFD', settings.PROJECT_NAME)
+ if unicodedata.category(c) != 'Mn')) + '-' + dct['description'] + '.kml'
+ print filename
+ response['Content-Disposition'] = 'attachment; filename=%s' % filename
+ return response
+export_to_kml.short_description = _(u"Export to KML")
+
class MarkerAdmin(admin.ModelAdmin):
"""
Specialized the Point field.
@@ -60,7 +83,7 @@ class MarkerAdmin(admin.ModelAdmin):
list_display = ('name', 'status')
list_filter = ('status', 'categories')
exclude = []
- actions = [validate]
+ actions = [validate, export_to_kml]
if 'chimere_rss' in settings.INSTALLED_APPS:
exclude.append('available_date')
form = MarkerAdminForm