Esempio n. 1
0
    def test_calculate_pk(self):
        term = Term(term=Term.WINTER, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20121)

        term = Term(term=Term.SPRING, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20122)

        term = Term(term=Term.SUMMER, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20123)

        term = Term(term=Term.FALL, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20124)

        term = Term(term=Term.UNKNOWN, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20120)
Esempio n. 2
0
    def test_calculate_pk(self):
        term = Term(term=Term.WINTER, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20121)

        term = Term(term=Term.SPRING, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20122)

        term = Term(term=Term.SUMMER, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20123)

        term = Term(term=Term.FALL, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20124)

        term = Term(term=Term.UNKNOWN, year=2012, current=True)
        self.assertEqual(term._calculate_pk(), 20120)
Esempio n. 3
0
def generate_terms(span=5, include_summer=False):
    """Create Term instances for current year +/-span(years) inclusive."""
    current_year = datetime.date.today().year
    start_year = max(current_year - span, datetime.MINYEAR)
    end_year = min(current_year + span, datetime.MAXYEAR)

    term_codes = [Term.FALL, Term.SPRING]
    if include_summer:
        term_codes.append(Term.SUMMER)
    if settings.TERM_TYPE == 'quarter':
        term_codes.append(Term.WINTER)
    new_terms = []
    with transaction.atomic():
        existing_terms = set([
            t.id for t in Term.objects.filter(year__gte=start_year,
                                              year__lte=end_year)
        ])
        for year in range(start_year, end_year + 1):
            for term in term_codes:
                new_term = Term(term=term, year=year)
                new_term.id = new_term._calculate_pk()
                if new_term.id not in existing_terms:
                    new_terms.append(new_term)
        Term.objects.bulk_create(new_terms)
    return new_terms
Esempio n. 4
0
def generate_terms(span=5, include_summer=False):
    """Create Term instances for current year +/-span(years) inclusive."""
    current_year = datetime.date.today().year
    start_year = max(current_year - span, datetime.MINYEAR)
    end_year = min(current_year + span, datetime.MAXYEAR)

    term_codes = [Term.FALL, Term.SPRING]
    if include_summer:
        term_codes.append(Term.SUMMER)
    if settings.TERM_TYPE == 'quarter':
        term_codes.append(Term.WINTER)
    new_terms = []
    with transaction.atomic():
        existing_terms = set([t.id for t in Term.objects.filter(
            year__gte=start_year, year__lte=end_year)])
        for year in range(start_year, end_year + 1):
            for term in term_codes:
                new_term = Term(term=term, year=year)
                new_term.id = new_term._calculate_pk()
                if new_term.id not in existing_terms:
                    new_terms.append(new_term)
        Term.objects.bulk_create(new_terms)
    return new_terms