diff options
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 |