def get_context_data(self, **kwargs): context = super(WorkStudyReportsDashlet, self).get_context_data(**kwargs) try: active_year = SchoolYear.objects.get(active_year=True) except SchoolYear.DoesNotExist: messages.warning(self.request, 'No active year set. Please create an active year!') return context form = ReportBuilderForm(initial={'custom_billing_begin':active_year.start_date,'custom_billing_end':active_year.end_date}) template_form = ReportTemplateForm() context = dict(context.items() + { 'form': form, 'template_form': template_form, }.items()) return context class WorkStudyDashboard(Dashboard): app = 'work_study' dashlets = [ ReportBuilderDashlet(title="Reports",), WorkStudyReportsDashlet(title="Work Study Reports"), TimeSheetDashlet(title="Time Sheets",), WorkStudyAttendanceDashlet(title="Work Study Attendance"), AdminListDashlet(title="Edit Work Study", app_label="work_study"), ] dashboards.register('work_study', WorkStudyDashboard)
Tests that the testuser was found. """ response = self.client.get('/tests/dashboard/') self.assertEqual(response.status_code, 200) self.assertContains(response, 'testuser', html=True) self.assertContains(response, '*****@*****.**', html=True) class UserListDashlet(ListDashlet): """Sample model list dashlet.""" model = User fields = ('username', 'email', 'is_superuser') columns = 2 count = 8 require_permissions_or = ('admin.change_user', 'admin.view_user') order_by = ('-id', ) class TestDashboard(Dashboard): """Sample dashboard.""" app = 'tests' title = "Tests" dashlets = [ AdminListDashlet(title="User Management", app_label="auth"), UserListDashlet(title="User List"), LinksListDashlet(title="Links") ] dashboards.register('tests', TestDashboard)
show_custom_link = '/admin/report_builder/report/?root_model__app_label=attendance' custom_link_text = "Reports" def get_context_data(self, **kwargs): self.queryset = Report.objects.filter(root_model__app_label='attendance') # Show only starred when there are a lot of reports if self.queryset.count() > self.count: self.queryset = self.queryset.filter(starred=self.request.user) return super(ReportBuilderDashlet, self).get_context_data(**kwargs) class AttendanceAdminListDashlet(AdminListDashlet): require_permissions = ('attendance.change_studentattendance',) class SisDashboard(Dashboard): app = 'sis' dashlets = [ EventsDashlet(title="School Events"), ViewStudentDashlet(title="Student"), ReportBuilderDashlet(title="Starred Reports", model=Report), AnnouncementsDashlet(title="Announcements"), AttendanceSubmissionPercentageDashlet(title="Attendance Report"), AttendanceDashlet(title="Recent Attendance"), AttendanceLinksListDashlet(title="Links"), AttendanceReportBuilderDashlet(title="Attendance Reports",), AttendanceAdminListDashlet(title="Attendance", app_label="attendance"), AdminListDashlet(title="School Information", app_label="sis"), ] dashboards.register('sis', SisDashboard)
class OmrMyTestsDashlet(Dashlet): """ Show's a teachers OMR tests """ template_name = "/omr/my_tests_dashlet.html" columns = 3 responsive = False required_perms = ('omr.teacher_test', ) def get_context_data(self, **kwargs): context = super(OmrMyTestsDashlet, self).get_context_data(**kwargs) try: teacher = Faculty.objects.get(username=self.request.user.username) tests = Test.objects.filter(teachers=teacher) context = dict(context.items() + { 'tests': tests, }.items()) except: messages.warning(self.request, "You are not a teacher!") return context class OmrDashboard(Dashboard): app = 'omr' dashlets = [ OmrMyTestsDashlet(title="My Tests"), AdminListDashlet(title="OMR Admin", app_label="omr"), OmrReportBuilderDashlet(title="Report Builder"), ] dashboards.register('omr', OmrDashboard)
# this is not a dashlet shown on default class AdmissionsReportsDashlet(Dashlet): template_name = "/admissions/reports_dashlet.html" columns = 1 require_permissions = ('admissions.change_applicant', ) def get_context_data(self, **kwargs): context = super(AdmissionsReportsDashlet, self).get_context_data(**kwargs) report_form = ReportForm() template_form = TemplateReportForm() context = dict(context.items() + { 'report_form': report_form, 'template_form': template_form, }.items()) return context class DisciplineDashboard(Dashboard): app = 'discipline' dashlets = [ DisciplineDashlet(title="Latest Discipline"), ReportBuilderDashlet(title="Reports", ), AdminListDashlet(title="Discipline", app_label="discipline"), ] dashboards.register('discipline', DisciplineDashboard)
class AdmissionsReportsDashlet(Dashlet): template_name = "/admissions/reports_dashlet.html" columns = 1 require_permissions = ('admissions.change_applicant', ) def get_context_data(self, **kwargs): context = super(AdmissionsReportsDashlet, self).get_context_data(**kwargs) report_form = ReportForm() template_form = TemplateReportForm() context = dict(context.items() + { 'report_form': report_form, 'template_form': template_form, }.items()) return context class AdmissionsDashboard(Dashboard): app = 'admissions' dashlets = [ ApplicantDashlet(title="Newest Applicants"), ReportBuilderDashlet(title="Reports", ), AdminListDashlet(title="Edit", app_label="admissions"), AdmissionsReportsDashlet(title="Admissions Reports"), ] dashboards.register('admissions', AdmissionsDashboard())
Tests that the testuser was found. """ response = self.client.get('/tests/dashboard/') self.assertEqual(response.status_code, 200) self.assertContains(response, 'testuser', html=True) self.assertContains(response, '*****@*****.**', html=True) class UserListDashlet(ListDashlet): """Sample model list dashlet.""" model = User fields = ('username', 'email', 'is_superuser') columns = 2 count = 8 require_permissions_or = ('admin.change_user', 'admin.view_user') order_by = ('-id',) class TestDashboard(Dashboard): """Sample dashboard.""" app = 'tests' title = "Tests" dashlets = [ AdminListDashlet(title="User Management", app_label="auth"), UserListDashlet(title="User List"), LinksListDashlet(title="Links") ] dashboards.register('tests', TestDashboard)
class GradesDashlet(Dashlet): template_name = 'schedule/grade_dashlet.html' require_apps = ('ecwsp.grades',) require_permissions_or = ('grades.check_own_grade', 'grades.change_grade',) def get_context_data(self, **kwargs): context = super(GradesDashlet, self).get_context_data(**kwargs) today = datetime.date.today() marking_periods = MarkingPeriod.objects.filter(end_date__gte=today).order_by('start_date') if marking_periods: marking_period = marking_periods[0] due_in = (marking_period.end_date - today).days else: due_in = None context['due_in'] = due_in return context class CourseDashboard(Dashboard): app = 'schedule' dashlets = [ CourseDashlet(title="Courses"), GradesDashlet(title="Grades"), AdminListDashlet(title="Schedule", app_label="schedule"), AdminListDashlet(title="GradesList", verbose_name="Grades", app_label="grades"), ] dashboards.register('schedule', CourseDashboard)
show_custom_link = '/admin/report_builder/report/?root_model__app_label=attendance' custom_link_text = "Reports" def get_context_data(self, **kwargs): self.queryset = Report.objects.filter(root_model__app_label='attendance') # Show only starred when there are a lot of reports if self.queryset.count() > self.count: self.queryset = self.queryset.filter(starred=self.request.user) return super(ReportBuilderDashlet, self).get_context_data(**kwargs) class AttendanceAdminListDashlet(AdminListDashlet): require_permissions = ('attendance.change_studentattendance',) class ProfileDashboard(Dashboard): app = 'Profiles' dashlets = [ EventsDashlet(title="School Events"), ViewStudentDashlet(title="Student"), ReportBuilderDashlet(title="Starred Reports", model=Report), AnnouncementsDashlet(title="Announcements"), AttendanceSubmissionPercentageDashlet(title="Attendance Report"), AttendanceDashlet(title="Recent Attendance"), AttendanceLinksListDashlet(title="Links"), AttendanceReportBuilderDashlet(title="Attendance Reports",), AttendanceAdminListDashlet(title="Attendance", app_label="attendance"), AdminListDashlet(title="Profile Information", app_label="profiles"), ] dashboards.register('student', ProfileDashboard)
return super(ReportBuilderDashlet, self).get_context_data(**kwargs) # this is not a dashlet shown on default class AdmissionsReportsDashlet(Dashlet): template_name = "/admissions/reports_dashlet.html" columns = 1 require_permissions = ('admissions.change_applicant',) def get_context_data(self, **kwargs): context = super(AdmissionsReportsDashlet, self).get_context_data(**kwargs) report_form = ReportForm() template_form = TemplateReportForm() context = dict(context.items() + { 'report_form': report_form, 'template_form': template_form, }.items()) return context class DisciplineDashboard(Dashboard): app = 'discipline' dashlets = [ DisciplineDashlet(title="Latest Discipline"), ReportBuilderDashlet(title="Reports",), AdminListDashlet(title="Discipline", app_label="discipline"), ] dashboards.register('discipline', DisciplineDashboard)
'perm': ('alumni.change_alumni'), }, ] class AlumniReportBuilderDashlet(ReportBuilderDashlet): """ django-report-builder starred reports """ show_custom_link = '/admin/report_builder/report/?root_model__app_label=alumni' custom_link_text = "Reports" def get_context_data(self, **kwargs): self.queryset = Report.objects.filter(root_model__app_label='alumni') # Show only starred when there are a lot of reports if self.queryset.count() > self.count: self.queryset = self.queryset.filter(starred=self.request.user) return super(ReportBuilderDashlet, self).get_context_data(**kwargs) class AlumniDashboard(Dashboard): app = 'alumni' dashlets = [ AlumniDashlet(title="Alumni"), AlumniLinksListDashlet(title="Links"), AlumniNoteDashlet(title='Latest Notes'), AlumniReportBuilderDashlet(title="Reports", ), AdminListDashlet(title="Edit", app_label="alumni"), ] dashboards.register('alumni', AlumniDashboard())
def get_context_data(self, **kwargs): self.queryset = Report.objects.filter( root_model__app_label='attendance') # Show only starred when there are a lot of reports if self.queryset.count() > self.count: self.queryset = self.queryset.filter(starred=self.request.user) return super(ReportBuilderDashlet, self).get_context_data(**kwargs) class AttendanceAdminListDashlet(AdminListDashlet): require_permissions = ('attendance.change_studentattendance', ) class ProfileDashboard(Dashboard): app = 'Profiles' dashlets = [ EventsDashlet(title="School Events"), ViewStudentDashlet(title="Student"), ReportBuilderDashlet(title="Starred Reports", model=Report), AnnouncementsDashlet(title="Announcements"), AttendanceSubmissionPercentageDashlet(title="Attendance Report"), AttendanceDashlet(title="Recent Attendance"), AttendanceLinksListDashlet(title="Links"), AttendanceReportBuilderDashlet(title="Attendance Reports", ), AttendanceAdminListDashlet(title="Attendance", app_label="attendance"), AdminListDashlet(title="Profile Information", app_label="profiles"), ] dashboards.register('student', ProfileDashboard)
return super(ReportBuilderDashlet, self).get_context_data(**kwargs) class AdmissionsReportsDashlet(Dashlet): template_name = "/admissions/reports_dashlet.html" columns = 1 require_permissions = ('admissions.change_applicant',) def get_context_data(self, **kwargs): context = super(AdmissionsReportsDashlet, self).get_context_data(**kwargs) report_form = ReportForm() template_form = TemplateReportForm() context = dict(context.items() + { 'report_form': report_form, 'template_form': template_form, }.items()) return context class AdmissionsDashboard(Dashboard): app = 'admissions' dashlets = [ ApplicantDashlet(title="Newest Applicants"), ReportBuilderDashlet(title="Reports",), AdminListDashlet(title="Edit", app_label="admissions"), AdmissionsReportsDashlet(title="Admissions Reports"), ] dashboards.register('admissions', AdmissionsDashboard())
messages.warning( self.request, 'No active year set. Please create an active year!') return context form = ReportBuilderForm( initial={ 'custom_billing_begin': active_year.start_date, 'custom_billing_end': active_year.end_date }) template_form = ReportTemplateForm() context = dict(context.items() + { 'form': form, 'template_form': template_form, }.items()) return context class WorkStudyDashboard(Dashboard): app = 'work_study' dashlets = [ ReportBuilderDashlet(title="Reports", ), WorkStudyReportsDashlet(title="Work Study Reports"), TimeSheetDashlet(title="Time Sheets", ), WorkStudyAttendanceDashlet(title="Work Study Attendance"), AdminListDashlet(title="Edit Work Study", app_label="work_study"), ] dashboards.register('work_study', WorkStudyDashboard)
fields = ('display_students', 'date', 'category', 'reported_by') first_column_is_link = True count = 8 columns = 2 class ReferralFormDashlet(ListDashlet): model = ReferralForm require_permissions = ('counseling.change_referralform',) fields = ('classroom_teacher', 'date', 'student',) first_column_is_link = True count = 8 class CounselingAdminListDashlet(AdminListDashlet): require_permissions = ('counseling.change_studentmeeting',) class CounselingDashboard(Dashboard): app = 'counseling' dashlets = [ CounselingLinksListDashlet(title="Links"), StudentMeetingDashlet(title="Student Meetings"), ReferralFormDashlet(title="Referrals"), CounselingAdminListDashlet(title="Edit", app_label="counseling"), ] dashboards.register('counseling', CounselingDashboard())
columns = 2 class ReferralFormDashlet(ListDashlet): model = ReferralForm require_permissions = ('counseling.change_referralform', ) fields = ( 'classroom_teacher', 'date', 'student', ) first_column_is_link = True count = 8 class CounselingAdminListDashlet(AdminListDashlet): require_permissions = ('counseling.change_studentmeeting', ) class CounselingDashboard(Dashboard): app = 'counseling' dashlets = [ CounselingLinksListDashlet(title="Links"), StudentMeetingDashlet(title="Student Meetings"), ReferralFormDashlet(title="Referrals"), CounselingAdminListDashlet(title="Edit", app_label="counseling"), ] dashboards.register('counseling', CounselingDashboard())
'desc': 'Import Student Clearinghouse data file', 'perm': ('alumni.change_alumni'), }, ] class AlumniReportBuilderDashlet(ReportBuilderDashlet): """ django-report-builder starred reports """ show_custom_link = '/admin/report_builder/report/?root_model__app_label=alumni' custom_link_text = "Reports" def get_context_data(self, **kwargs): self.queryset = Report.objects.filter(root_model__app_label='alumni') # Show only starred when there are a lot of reports if self.queryset.count() > self.count: self.queryset = self.queryset.filter(starred=self.request.user) return super(ReportBuilderDashlet, self).get_context_data(**kwargs) class AlumniDashboard(Dashboard): app = 'alumni' dashlets = [ AlumniDashlet(title="Alumni"), AlumniLinksListDashlet(title="Links"), AlumniNoteDashlet(title='Latest Notes'), AlumniReportBuilderDashlet(title="Reports",), AdminListDashlet(title="Edit", app_label="alumni"), ] dashboards.register('alumni', AlumniDashboard())
'perm': ('sis.reports',), }, { 'text': 'Engrade Sync', 'link': annoying_link, 'perm': ('sis.reports',), 'required_apps': ('engrade_sync',), }, { 'text': 'Change School Year', 'link': reverse_lazy('sis.views.increment_year'), 'desc': '', 'perm': ('sis.change_student', 'sis.change_schoolyear'), }, ] class AdminDashboard(Dashboard): app = 'administration' dashlets = [ LogEntryDashlet(title="Latest Actions"), AdminListDashlet(title="User Management", app_label="auth"), AdminListDashlet(title="SIS Management", app_label="administration"), EngradeSyncListDashlet(title="Engrade Sync", app_label="engrade_sync"), AdministrationLinksListDashlet(title="Links"), ReportBuilderDashlet(title="Report Builder"), ] dashboards.register('administration', AdminDashboard)
'perm': ('profiles.reports',), }, { 'text': 'Engrade Sync', 'link': annoying_link, 'perm': ('profiles.reports',), 'required_apps': ('engrade_sync',), }, { 'text': 'Change School Year', 'link': reverse('profiles.views.increment_year'), 'desc': '', 'perm': ('profiles.change_student', 'profiles.change_schoolyear'), }, ] class AdminDashboard(Dashboard): app = 'administration' dashlets = [ LogEntryDashlet(title="Latest Actions"), AdminListDashlet(title="User Management", app_label="auth"), AdminListDashlet(title="Profile Management", app_label="administration"), EngradeSyncListDashlet(title="Engrade Sync", app_label="engrade_sync"), AdministrationLinksListDashlet(title="Links"), ReportBuilderDashlet(title="Report Builder"), ] dashboards.register('administration', AdminDashboard)
def get_context_data(self, **kwargs): context = super(CourseDetailDashlet, self).get_context_data(**kwargs) courses = Course.objects.filter( sections__marking_period__school_year__active_year=True) if self.request.user.has_perm('schedule.change_course'): context['change_course'] = True else: context['change_course'] = False courses = courses.filter(sections__teachers=self.request.user) context['courses'] = courses return context class CourseDashboard(Dashboard): app = 'schedule' dashlets = [ CourseSectionDashlet(title="Course Sections"), #CourseDetailDashlet(title="Courses"), GradesDashlet(title="Grades"), AdminListDashlet(title="Schedule", app_label="schedule"), AdminListDashlet(title="GradesList", verbose_name="Grades", app_label="grades"), AttendanceDashlet(title="Attendance Reports") ] dashboards.register('schedule', CourseDashboard)
class OmrMyTestsDashlet(Dashlet): """ Show's a teachers OMR tests """ template_name = "/omr/my_tests_dashlet.html" columns = 3 responsive = False required_perms = ('omr.teacher_test',) def get_context_data(self, **kwargs): context = super(OmrMyTestsDashlet, self).get_context_data(**kwargs) try: teacher = Faculty.objects.get(username=self.request.user.username) tests = Test.objects.filter(teachers=teacher) context = dict(context.items() + { 'tests': tests, }.items()) except: messages.warning(self.request, "You are not a teacher!") return context class OmrDashboard(Dashboard): app = 'omr' dashlets = [ OmrMyTestsDashlet(title="My Tests"), AdminListDashlet(title="OMR Admin", app_label="omr"), OmrReportBuilderDashlet(title="Report Builder"), ] dashboards.register('omr', OmrDashboard)