Coverage for app/logic/term.py: 79%

43 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2024-11-22 20:53 +0000

1from flask import session, g 

2from playhouse.shortcuts import model_to_dict 

3from app.logic.createLogs import createActivityLog 

4from app.models.term import Term 

5 

6def addNextTerm(): 

7 newSemesterMap = {"Spring":"Summer", 

8 "Summer":"Fall", 

9 "Fall":"Spring"} 

10 terms = list(Term.select().order_by(Term.termOrder)) 

11 prevTerm = terms[-1] 

12 prevSemester, prevYear = prevTerm.description.split() 

13 

14 newYear = int(prevYear) + 1 if prevSemester == "Fall" else int(prevYear) 

15 

16 newDescription = newSemesterMap[prevSemester] + " " + str(newYear) 

17 newAY = prevTerm.academicYear 

18 if prevSemester == "Summer": # we only change academic year when the latest term in the table is Summer 

19 year1, year2 = prevTerm.academicYear.split("-") 

20 newAY = year2 + "-" + str(int(year2)+1) 

21 

22 semester = newDescription.split()[0] 

23 summer= "Summer" in semester 

24 newTerm = Term.create(description=newDescription, 

25 year=newYear, 

26 academicYear=newAY, 

27 isSummer= summer, 

28 termOrder=Term.convertDescriptionToTermOrder(newDescription)) 

29 newTerm.save() 

30 

31 return newTerm 

32 

33def addPastTerm(description): 

34 semester, year = description.split() 

35 if 'May' in semester: 

36 semester = "Summer" 

37 if semester == "Fall": 

38 academicYear = year + "-" + str(int(year) + 1) 

39 elif semester == "Summer" or "Spring": 

40 academicYear= str(int(year) - 1) + "-" + year 

41 

42 isSummer = "Summer" in semester 

43 newDescription=f"{semester} {year}" 

44 orderTerm = Term.convertDescriptionToTermOrder(newDescription) 

45 

46 createdOldTerm = Term.create(description= newDescription, 

47 year=year, 

48 academicYear=academicYear, 

49 isSummer=isSummer, 

50 termOrder=orderTerm) 

51 createdOldTerm.save() 

52 return createdOldTerm 

53 

54def changeCurrentTerm(term): 

55 oldCurrentTerm = Term.get_by_id(g.current_term) 

56 oldCurrentTerm.isCurrentTerm = False 

57 oldCurrentTerm.save() 

58 newCurrentTerm = Term.get_by_id(term) 

59 newCurrentTerm.isCurrentTerm = True 

60 newCurrentTerm.save() 

61 session["current_term"] = model_to_dict(newCurrentTerm) 

62 createActivityLog(f"Changed Current Term from {oldCurrentTerm.description} to {newCurrentTerm.description}")