def getting_started(request, year, semester_type): '''Intial top level page that greets users''' try: semester = Semester.objects.get(year=year, type=semester_type) except Semester.DoesNotExist: raise http.Http404 try: next_semester = Semester.objects.next() except Semester.DoesNotExist: next_semester = None if next_semester and next_semester == semester: next_semester = None # Redirect user to their timetable if request.method == 'POST': schedule_form = forms.ScheduleForm(request.POST) if schedule_form.is_valid(): slug = schedule_form.cleaned_data['slug'] # TODO(adamcik): what should we do if current is empty? return schedule_current(request, semester.year, semester.type, slug) else: schedule_form = forms.ScheduleForm() context = Course.get_stats(semester=semester) context.update({ 'color_map': utils.ColorMap(hex=True), 'current': semester, 'next_semester': next_semester, 'schedule_form': schedule_form, }) return shortcuts.render(request, 'start.html', context)
def test_course_get_stats(self): semester = Semester.objects.get(year=2009, type=Semester.SPRING) actual = Course.get_stats(semester) self.assertEquals(3, actual.pop('slug_count')) self.assertEquals(3, actual.pop('course_count')) self.assertEquals(6, actual.pop('subscription_count')) stats = actual.pop('stats') self.assertEquals((3, 2, u'COURSE2', u'Course 2 full name'), stats[0]) self.assertEquals((2, 1, u'COURSE1', u'Course 1 full name'), stats[1]) self.assertEquals((1, 3, u'COURSE3', u'Course 3 full name'), stats[2])