indexden is now optional
[oweals/karmaworld.git] / karmaworld / apps / users / admin.py
index 0cdb5fc3f2001e79ab9e9a9c8e9a523be719dd63..a729a468ea066756572176351e508508f70d98a4 100644 (file)
@@ -2,6 +2,28 @@
 # -*- coding:utf8 -*-
 # Copyright (C) 2013  FinalsClub Foundation
 from django.contrib import admin
-from karmaworld.apps.users.models import KarmaUser
+import csv
+import StringIO
+from django.contrib.admin import ModelAdmin
+from django.http import HttpResponse
+from karmaworld.apps.users.models import UserProfile, NoteKarmaEvent, CourseKarmaEvent, GenericKarmaEvent
 
-admin.site.register(KarmaUser)
\ No newline at end of file
+
+def user_export(modeladmin, request, queryset):
+    f = StringIO.StringIO()
+    writer = csv.writer(f, dialect='excel')
+    writer.writerow(['First Name', 'Last Name', 'Email'])
+    for user_profile in queryset:
+        user = user_profile.user
+        writer.writerow([user.first_name, user.last_name, user.email])
+    return HttpResponse(f.getvalue())
+user_export.short_description = "Download a CSV file with users' information"
+
+
+class UserProfileAdmin(ModelAdmin):
+    actions = (user_export,)
+
+admin.site.register(UserProfile, UserProfileAdmin)
+admin.site.register(GenericKarmaEvent)
+admin.site.register(NoteKarmaEvent)
+admin.site.register(CourseKarmaEvent)