from django.contrib import admin from django.forms import Textarea from django.db import models # from ..activities.admin import ModelAdmin from .videos.models import Video from .models import ( Course, Lesson, Unit, CourseProfessor, CourseStudent, StudentProgress, Class, ProfessorMessage, CourseAuthor, ) from .course_material.models import CourseMaterial, File from .workspaces.models import Workspace from .classroom.models import Classroom, Event class LessonInline(admin.TabularInline): model = Lesson formfield_overrides = { models.CharField: {'widget': Textarea(attrs={'rows': 3, 'class': 'span11'})}, } @admin.register(Course) class CourseAdmin(admin.ModelAdmin): list_display = ('name', 'status', 'start_date',) inlines = (LessonInline,) filter_horizontal = [ 'groups', ] autocomplete_fields = [ 'forum', ] class UnitInline(admin.TabularInline): model = Unit fields = ('title', 'video', 'position',) @admin.register(Lesson) class LessonAdmin(admin.ModelAdmin): list_display = ('name', 'course',) search_fields = ('course__name',) inlines = (UnitInline,) @admin.register(Unit) class UnitAdmin(admin.ModelAdmin): search_fields = ('title', 'lesson__name') list_display = ('title', 'position', 'lesson', 'video',) list_select_related = ('lesson', 'video') @admin.register(CourseProfessor) class CourseProfessorAdmin(admin.ModelAdmin): list_display = ('user', 'course',) @admin.register(Video) class VideoAdmin(admin.ModelAdmin): pass @admin.register(Class) class ClassAdmin(admin.ModelAdmin): search_fields = ( 'name', 'course__name', 'assistants__first_name', 'assistants__email', ) list_display = ('name', 'course') filter_horizontal = ( 'students', 'assistants', ) @admin.register(StudentProgress) class StudentProgressAdmin(admin.ModelAdmin): search_fields = ('user__username', 'user__email', ) list_display = ('user', 'unit', 'complete', 'last_access') @admin.register(CourseStudent) class CourseStudentAdmin(admin.ModelAdmin): search_fields = ('user__username',) list_display = ('user', 'course') # Course Materials admins class FileInline(admin.TabularInline): model = File extra = 1 @admin.register(CourseMaterial) class CourseMaterialAdmin(admin.ModelAdmin): search_fields = ('text',) list_display = ('course', 'text') inlines = [ FileInline, ] @admin.register(File) class FileAdmin(admin.ModelAdmin): search_fields = ('file',) list_display = ('file', 'course_material') @admin.register(Workspace) class WorkspaceAdmin(admin.ModelAdmin): filter_horizontal = ( 'groups', 'classes', ) @admin.register(ProfessorMessage) class ProfessorMessageAdmin(admin.ModelAdmin): filter_horizontal = ( 'users', ) @admin.register(CourseAuthor) class CourseAuthorAdmin(admin.ModelAdmin): pass class EventInline(admin.TabularInline): model = Event @admin.register(Classroom) class ClassroomAdmin(admin.ModelAdmin): filter_horizontal = ( 'assistants', 'coordinators', 'access_groups', ) autocomplete_fields = ( 'forum', 'group', ) inlines = (EventInline,) search_fields = ( 'name', 'group__name', 'assistants__name', )