Example #1
0
    def past_present_future(self):
        """Find out if this Affil is in the past, present, or future.

        Returns -1 if this Affil is in the past, 0 if in the present,
        and 1 if in the future. If there was a parse error, returns None.
        """
        current_year = timezone.now().year
        current_term = get_current_term()

        affil_dict = self.to_dict()

        if affil_dict is None:
            return None

        try:
            year = int(affil_dict.get('year'))
        except TypeError:
            return None

        try:
            term = int(affil_dict.get('term'))
        except TypeError:
            return None

        if year == current_year and term == current_term:
            return 0
        elif year < current_year or (
                year == current_year and term < current_term):
            return -1
        else:
            return 1
Example #2
0
 def test_get_current_term(self):
     with freeze_time('2016-01-01'):
         self.assertEqual(get_current_term(), 1)
     with freeze_time('2016-03-16'):
         self.assertEqual(get_current_term(), 1)
     with freeze_time('2016-04-30'):
         self.assertEqual(get_current_term(), 1)
     with freeze_time('2016-05-01'):
         self.assertEqual(get_current_term(), 1)
     with freeze_time('2016-05-20'):
         self.assertEqual(get_current_term(), 2)
     with freeze_time('2016-08-20'):
         self.assertEqual(get_current_term(), 2)
     with freeze_time('2016-09-02'):
         self.assertEqual(get_current_term(), 3)
     with freeze_time('2016-12-12'):
         self.assertEqual(get_current_term(), 3)
Example #3
0
    def get_queryset(self):
        self.courses = get_courses_for_user(self.request.user)
        semester_view = self.request.GET.get('semester_view')
        current_term = get_current_term()
        current_year = timezone.now().year

        if semester_view == 'past':
            qs = filter_past_courses(
                self.courses, current_term, current_year)
        elif semester_view == 'future':
            qs = filter_future_courses(
                self.courses, current_term, current_year)
        elif semester_view == 'sandbox':
            qs = filter_sandbox_courses(self.courses)
        else:
            qs = filter_current_courses(
                self.courses, current_term, current_year)
        return qs.select_related(
            'info', 'group', 'faculty_group', 'settings').prefetch_related(
                'coursedetails_set')