summaryrefslogtreecommitdiff
path: root/workshop_app/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'workshop_app/admin.py')
-rw-r--r--workshop_app/admin.py271
1 files changed, 97 insertions, 174 deletions
diff --git a/workshop_app/admin.py b/workshop_app/admin.py
index 3eec8af..4e3d333 100644
--- a/workshop_app/admin.py
+++ b/workshop_app/admin.py
@@ -1,208 +1,131 @@
import csv
-from django.http import HttpResponse
+
from django.contrib import admin
+from django.http import HttpResponse
+
from .models import (
- Profile, WorkshopType,
- Workshop, ProposeWorkshopDate,
- RequestedWorkshop, BookedWorkshop,
- Testimonial, ProfileComments, Banner
- )
+ Profile, WorkshopType,
+ Workshop,
+ Testimonial, ProfileComments, Banner, AttachmentFile
+)
+
try:
from StringIO import StringIO as string_io
except ImportError:
from io import BytesIO as string_io
-#Custom Classes
+
+# Custom Classes
class ProfileAdmin(admin.ModelAdmin):
- list_display = ['title','user', 'institute','location','department',
- 'phone_number','position']
- list_filter = ['position', 'department']
- actions = ['download_csv']
-
- def download_csv(self, request, queryset):
- openfile = string_io()
- response = HttpResponse(content_type='text/csv')
- response['Content-Disposition'] = 'attachment;\
- filename=profile_data.csv'
-
- writer = csv.writer(response)
- writer.writerow(['email_id', 'title','username', 'first_name', 'last_name',
- 'institute', 'location', 'department',
- 'phone_number', 'position'])
-
- for q in queryset:
- writer.writerow([q.user.email, q.title, q.user, q.user.first_name,
- q.user.last_name, q.institute,
- q.location, q.department, q.phone_number,
- q.position])
-
- openfile.seek(0)
- response.write(openfile.read())
- return response
-
- download_csv.short_description = "Download CSV file for selected stats."
-
-
-class ProposeWorkshopDateAdmin(admin.ModelAdmin):
- list_display = ['proposed_workshop_title', 'proposed_workshop_date',
- 'proposed_workshop_coordinator', 'status',
- 'proposed_workshop_instructor']
- list_filter = ['status']
- actions = ['download_csv']
-
- def download_csv(self, request, queryset):
- openfile = string_io()
- response = HttpResponse(content_type='text/csv')
- response['Content-Disposition'] = 'attachment;\
- filename=proposedworkshop_data.csv'
-
- writer = csv.writer(response)
- writer.writerow(['proposed_workshop_title', 'proposed_workshop_date',
- 'proposed_workshop_coordinator', 'status','proposed_workshop_instructor'])
-
- for q in queryset:
- writer.writerow([q.proposed_workshop_title, q.proposed_workshop_date,
- q.proposed_workshop_coordinator, q.status,
- q.proposed_workshop_instructor])
-
- openfile.seek(0)
- response.write(openfile.read())
- return response
-
- download_csv.short_description = "Download CSV file for selected stats."
-
-
-class RequestedWorkshopAdmin(admin.ModelAdmin):
- list_display = ['requested_workshop_title',
- 'requested_workshop_date',
- 'requested_workshop_coordinator',
- 'requested_workshop_instructor',
- 'status']
-
- list_filter = ['status']
- actions = ['download_csv']
-
- def download_csv(self, request, queryset):
- openfile = string_io()
- response = HttpResponse(content_type='text/csv')
- response['Content-Disposition'] = 'attachment;\
- filename=requestedworkshop_data.csv'
-
- writer = csv.writer(response)
- writer.writerow(['requested_workshop_title',
- 'requested_workshop_date',
- 'requested_workshop_coordinator',
- 'requested_workshop_instructor',
- 'status'])
-
- for q in queryset:
- writer.writerow([q.requested_workshop_title,
- q.requested_workshop_date,
- q.requested_workshop_coordinator,
- q.requested_workshop_instructor,
- q.status])
-
- openfile.seek(0)
- response.write(openfile.read())
- return response
-
- download_csv.short_description = "Download CSV file for selected stats."
+ list_display = ['title', 'user', 'institute', 'location', 'department',
+ 'phone_number', 'position']
+ list_filter = ['position', 'department']
+ actions = ['download_csv']
+
+ def download_csv(self, request, queryset):
+ openfile = string_io()
+ response = HttpResponse(content_type='text/csv')
+ response['Content-Disposition'] = 'attachment;filename=profile_data.csv'
+ writer = csv.writer(response)
+ writer.writerow(['email_id', 'title', 'username', 'first_name', 'last_name',
+ 'institute', 'location', 'department',
+ 'phone_number', 'position'])
+ for q in queryset:
+ writer.writerow([q.user.email, q.title, q.user, q.user.first_name,
+ q.user.last_name, q.institute,
+ q.location, q.department, q.phone_number,
+ q.position])
+
+ openfile.seek(0)
+ response.write(openfile.read())
+ return response
+
+ download_csv.short_description = "Download CSV file for selected stats."
class WorkshopAdmin(admin.ModelAdmin):
- list_display = ['workshop_title','workshop_instructor']
- list_filter = ['workshop_title']
+ list_display = ['workshop_type', 'instructor', 'date', 'status', 'coordinator']
+ list_filter = ['workshop_type', 'date']
+ actions = ['download_csv']
+
+ def download_csv(self, request, queryset):
+ openfile = string_io()
+ response = HttpResponse(content_type='text/csv')
+ response['Content-Disposition'] = 'attachment;filename=workshop_data.csv'
+ writer = csv.writer(response)
+ writer.writerow(['workshop_type', 'date', 'instructor', 'coordinator', 'status'])
+
+ for q in queryset:
+ writer.writerow([q.title, q.date, q.instructor, q.coordinator, q.status])
+
+ openfile.seek(0)
+ response.write(openfile.read())
+ return response
+
+ download_csv.short_description = "Download CSV file for selected stats."
+
+
+class AttachmentFileInline(admin.TabularInline):
+ model = AttachmentFile
class WorkshopTypeAdmin(admin.ModelAdmin):
- list_display = ['workshoptype_name', 'workshoptype_duration']
- list_filter = ['workshoptype_name']
- actions = ['download_csv']
+ list_display = ['name', 'duration']
+ list_filter = ['name']
+ actions = ['download_csv']
+ inlines = [AttachmentFileInline]
- def download_csv(self, request, queryset):
- openfile = string_io()
- response = HttpResponse(content_type='text/csv')
- response['Content-Disposition'] = 'attachment;\
- filename=workshoptype_data.csv'
+ def download_csv(self, request, queryset):
+ openfile = string_io()
+ response = HttpResponse(content_type='text/csv')
+ response['Content-Disposition'] = 'attachment;filename=workshoptype_data.csv'
+ writer = csv.writer(response)
+ writer.writerow(['name', 'duration'])
- writer = csv.writer(response)
- writer.writerow(['workshoptype_name', 'workshoptype_duration'])
-
- for q in queryset:
- writer.writerow([q.workshoptype_name, q.workshoptype_duration])
+ for q in queryset:
+ writer.writerow([q.name, q.duration])
- openfile.seek(0)
- response.write(openfile.read())
- return response
-
- download_csv.short_description = "Download CSV file for selected stats."
+ openfile.seek(0)
+ response.write(openfile.read())
+ return response
+
+ download_csv.short_description = "Download CSV file for selected stats."
class TestimonialAdmin(admin.ModelAdmin):
- list_display = ['name', 'department', 'institute']
- list_filter = ['department']
- actions = ['download_csv']
-
- def download_csv(self, request, queryset):
- openfile = string_io()
- response = HttpResponse(content_type='text/csv')
- response['Content-Disposition'] = 'attachment;\
- filename=testimonials_data.csv'
-
- writer = csv.writer(response)
- writer.writerow(['name', 'department', 'institute'])
-
- for q in queryset:
- writer.writerow([q.name,
- q.department,
- q.institute
- ])
-
- openfile.seek(0)
- response.write(openfile.read())
- return response
-
- download_csv.short_description = "Download CSV file for selected stats."
-
-class BookedWorkshopAdmin(admin.ModelAdmin):
- list_display = ['booked_workshop_requested',
- 'booked_workshop_proposed']
- actions = ['download_csv']
-
- def download_csv(self, request, queryset):
- openfile = string_io()
- response = HttpResponse(content_type='text/csv')
- response['Content-Disposition'] = 'attachment;\
- filename=bookedworkshops_data.csv'
-
- writer = csv.writer(response)
- writer.writerow(['booked_workshop_requested',
- 'booked_workshop_proposed'])
-
- for q in queryset:
- writer.writerow([q.booked_workshop_requested,
- q.booked_workshop_proposed
- ])
-
- openfile.seek(0)
- response.write(openfile.read())
- return response
-
- download_csv.short_description = "Download CSV file for selected stats."
+ list_display = ['name', 'department', 'institute']
+ list_filter = ['department']
+ actions = ['download_csv']
+
+ def download_csv(self, request, queryset):
+ openfile = string_io()
+ response = HttpResponse(content_type='text/csv')
+ response['Content-Disposition'] = 'attachment;filename=testimonials_data.csv'
+ writer = csv.writer(response)
+ writer.writerow(['name', 'department', 'institute'])
+
+ for q in queryset:
+ writer.writerow([q.name,
+ q.department,
+ q.institute
+ ])
+
+ openfile.seek(0)
+ response.write(openfile.read())
+ return response
+ download_csv.short_description = "Download CSV file for selected stats."
class ProfileCommentAdmin(admin.ModelAdmin):
- list_display = ['comment', 'created_date', 'coordinator_profile', 'instructor_profile']
+ list_display = ['comment', 'created_date', 'coordinator', 'instructor']
# Register your models here.
admin.site.register(Profile, ProfileAdmin)
admin.site.register(WorkshopType, WorkshopTypeAdmin)
admin.site.register(Workshop, WorkshopAdmin)
-admin.site.register(ProposeWorkshopDate, ProposeWorkshopDateAdmin)
-admin.site.register(RequestedWorkshop, RequestedWorkshopAdmin)
-admin.site.register(BookedWorkshop, BookedWorkshopAdmin)
admin.site.register(Testimonial, TestimonialAdmin)
admin.site.register(ProfileComments, ProfileCommentAdmin)
admin.site.register(Banner)
+admin.site.register(AttachmentFile)