def index(request): data = { 'current_semester': Semester.current_semester(), 'registration_open': Semester.semesters_open_for_registration(), } data.update(request.user.profile.unread_messages()) return render(request, 'professor/home_professor.html', data)
def semesters(request): logged_in = request.user.is_authenticated if logged_in: user_role = request.user.profile.role is_admin = logged_in and user_role == Profile.ACCESS_ADMIN data = {'can_add': is_admin} qs = Semester.objects.all() if request.method == 'POST': if request.POST.get('active') is not None: qs = Semester.active_semesters() elif request.POST.get('upcoming') is not None: qs = Semester.objects.filter( date_started__gte=datetime.now().date()) data.update( filtered_table2( name='semesters', qs=qs, filter=SemesterFilter, table=SemestersTable, request=request, scrollable=True, self_url=reverse('schooladmin:semesters'), click_url=reverse('schooladmin:semester', args=[DUMMY_ID]), )) if not logged_in: data['user'] = {'home_template': "schooladmin/home_guest.html"} return render(request, 'schooladmin/semesters.html', data)
def secitems(request): the_user = request.user the_semester = Semester.current_semester() if request.method == 'POST': the_id = request.POST.get('semester', the_semester.id) the_semester = Semester.objects.get(id=the_id) data = { 'auser': the_user, 'semester': the_semester, 'semesters': the_user.profile.student.semesters.all(), } data.update( filtered_table2( name='secitems', qs=the_user.profile.student.section_reference_items_for( the_semester), filter=SectionItemFilter, table=SectionReferenceItemsTable, request=request, self_url=reverse('student:secitems'), click_url=reverse('sis:secitem', args=[DUMMY_ID]), )) return render(request, 'student/items.html', data)
def current_schedule_view(request): current_semester = Semester.current_semester() context = { 'my_sections': request.user.profile.student.sectionstudent_set.filter( section__semester=current_semester), 'name': request.user.profile.name, 'semester': current_semester, } return render(request, 'student/current_schedule.html', context)
def sections(request): the_prof = request.user.profile.professor sections_qs = Section.objects.filter(professor=the_prof) sections = {} # set up our sections qs dictionary by semester for sect in sections_qs: if sect.semester.finalized(): continue if sect.semester.name not in sections.keys(): sections[sect.semester.name] = [sect.semester.id] # fill in our sections dictionary with tables by semester for name, sem in sections.items(): qs = sections_qs.filter(semester=sem[0]) table = ProfSectionsTable(qs) RequestConfig(request, paginate={ "per_page": 25, "page": 1 }).configure(table) sections[name].append(table) data = { 'semesters': sections.keys(), } if request.method == 'POST': sem = request.POST.get('semester') table = sections[sem][1] data['table'] = table else: sem = Semester.current_semester() if sem is not None: sem = sem.name values = sections.get(sem) if values is not None: table = values[1] data['table'] = table return render(request, 'professor/sections.html', data)
def test_bad_name(self): self.assertRaises(Exception, Semester.name_for_session('xx'))
def test_names(self): self.assertEqual(Semester.name_for_session(Semester.FALL), 'Fall') self.assertEqual(Semester.name_for_session(Semester.SPRING), 'Spring') self.assertEqual(Semester.name_for_session(Semester.SUMMER), 'Summer') self.assertEqual(Semester.name_for_session(Semester.WINTER), 'Winter')
def test_current_semester_is(self): s2 = createSemester(date_started=4, date_ended=7, session=Semester.WINTER) self.assertEqual(Semester.current_semester(at=datetime.now() + timedelta(days=4.5)), s2)