diff options
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 |
commit | 134483232d3780c22368d26af0f10d10b57b7096 (patch) | |
tree | 6f0ae4a194f8ae01658639378ca0219dfc644b9c /chimere/admin.py | |
parent | f88cb456e1beadb4fd967f37b9d56c94c69755c5 (diff) | |
download | Chimère-134483232d3780c22368d26af0f10d10b57b7096.tar.bz2 Chimère-134483232d3780c22368d26af0f10d10b57b7096.zip |
KML export
Diffstat (limited to 'chimere/admin.py')
-rw-r--r-- | chimere/admin.py | 25 |
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 |