Skip to content
Snippets Groups Projects
Commit 304fb169 authored by Mario Michelessa's avatar Mario Michelessa
Browse files

test

parent 4147b626
No related branches found
No related tags found
1 merge request!7Dev
......@@ -3,26 +3,47 @@
from django.contrib import admin
from .models import Student, Tutor
import csv
from django.http import HttpResponse
class ExportCsvMixin:
def export_as_csv(self, request, queryset):
meta = self.model._meta
field_names = [field.name for field in meta.fields]
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename={}.csv'.format(meta)
writer = csv.writer(response)
writer.writerow(field_names)
for obj in queryset:
row = writer.writerow([getattr(obj, field) for field in field_names])
return response
export_as_csv.short_description = "Export Selected"
class ProfileAdminMixin:
"""Common functionalities for profile admin panels."""
search_fields = ('user__email', 'user__first_name', 'user__last_name',)
actions = ["export_as_csv"]
@admin.register(Tutor)
class TutorAdmin(ProfileAdminMixin, admin.ModelAdmin):
class TutorAdmin(ProfileAdminMixin, admin.ModelAdmin,ExportCsvMixin):
"""Tutor admin panel."""
autocomplete_fields = ('address',)
class Meta: # noqa
model = Tutor
actions = ["export_as_csv"]
@admin.register(Student)
class StudentAdmin(ProfileAdminMixin, admin.ModelAdmin):
class StudentAdmin(ProfileAdminMixin, admin.ModelAdmin,ExportCsvMixin):
"""Student admin panel."""
class Meta: # noqa
model = Student
actions = ["export_as_csv"]
\ No newline at end of file
......@@ -8,7 +8,6 @@ from visits.admin import ParticipationInline
from .models import User
class UserParticipationInline(ParticipationInline):
"""Inline for Participation on the User admin panel.
......@@ -55,5 +54,4 @@ class CustomUserAdmin(UserAdmin):
'fields': ('email', 'password1', 'password2')}
),
)
inlines = (UserParticipationInline, )
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment