зеркало из https://github.com/mozilla/hive-django.git
Fixes #1 - added CVS export functionality to "Organizations"
This commit is contained in:
Родитель
36622b1427
Коммит
dc778da404
|
@ -76,8 +76,41 @@ class CityScopedAdmin(admin.ModelAdmin):
|
||||||
obj.save()
|
obj.save()
|
||||||
|
|
||||||
class OrganizationAdmin(CityScopedAdmin):
|
class OrganizationAdmin(CityScopedAdmin):
|
||||||
|
# http://djangotricks.blogspot.com/2013/12/how-to-export-data-as-excel.html
|
||||||
|
def export_csv(modeladmin, request, queryset):
|
||||||
|
import csv
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.conf import settings
|
||||||
|
from django.utils.encoding import smart_str
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
|
|
||||||
|
response = HttpResponse(content_type='text/csv')
|
||||||
|
response['Content-Disposition'] = 'attachment; filename=organizations.csv'
|
||||||
|
writer = csv.writer(response, csv.excel)
|
||||||
|
# BOM (optional...Excel needs it to open UTF-8 file properly)
|
||||||
|
response.write(u'\ufeff'.encode('utf8'))
|
||||||
|
writer.writerow([
|
||||||
|
smart_str(u"Name"),
|
||||||
|
smart_str(u"Website"),
|
||||||
|
smart_str(u"Address"),
|
||||||
|
smart_str(u"Twitter name"),
|
||||||
|
smart_str(u"Mission"),
|
||||||
|
])
|
||||||
|
for obj in queryset:
|
||||||
|
writer.writerow([
|
||||||
|
smart_str(obj.name),
|
||||||
|
smart_str(obj.website),
|
||||||
|
smart_str(obj.address),
|
||||||
|
smart_str(obj.twitter_name),
|
||||||
|
smart_str(obj.mission)
|
||||||
|
])
|
||||||
|
return response
|
||||||
|
|
||||||
|
export_csv.short_description = u"Export CSV"
|
||||||
|
|
||||||
form = OrganizationForm
|
form = OrganizationForm
|
||||||
inlines = (ContentChannelInline,)
|
inlines = (ContentChannelInline,)
|
||||||
|
actions = [export_csv]
|
||||||
list_display = ('name', 'city')
|
list_display = ('name', 'city')
|
||||||
list_filter = ('city',)
|
list_filter = ('city',)
|
||||||
prepopulated_fields = {"slug": ("name",)}
|
prepopulated_fields = {"slug": ("name",)}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче