Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions app/controllers/minor/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from app.models.term import Term
from app.models.attachmentUpload import AttachmentUpload
from app.logic.fileHandler import FileHandler
from app.logic.utils import selectSurroundingTerms, getFilesFromRequest
from app.logic.utils import selectSurroundingTerms, getFilesFromRequest, selectAllSummerTerms
from app.logic.minor import (
changeProposalStatus,
createOtherEngagement,
Expand Down Expand Up @@ -117,13 +117,16 @@ def createSummerExperienceRequest(username):
createSummerExperience(username, request.form)
flash("Proposal successfully created.", "success")
return redirect(url_for('minor.viewCceMinor', username=username, tab="manageProposals"))

student = User.get_by_id(username)
year_name = User.rawClassLevel

summerTerms = selectSurroundingTerms(g.current_term, summerOnly=True)
summerTerms = selectAllSummerTerms(g.current_term, student)

return render_template("minor/summerExperience.html",
selectableTerms = summerTerms,
contentAreas = [],
user = User.get_by_id(username),
user = student,
)

@minor_bp.route('/cceMinor/<username>/getEngagementInformation/<type>/<term>/<id>', methods=['GET'])
Expand Down
51 changes: 51 additions & 0 deletions app/logic/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,57 @@ def selectSurroundingTerms(currentTerm, prevTerms=2, summerOnly=False):

return surroundingTerms

def selectAllSummerTerms(currentTerm, student):
"""
Selects all summer terms for CCE Minor.
"""
year_name = student.rawClassLevel
order = currentTerm.termOrder.split('-')

match year_name:
case "Freshman":
year = 1
case "Sophomore":
year = 2
case "Junior":
year = 3
case "Senior":
year = 4
case _:
year = 5

match order[1]:
case "1":
timeOfTheYear = "Fall"
case "2":
timeOfTheYear = "Spring"
case "3":
timeOfTheYear = "Summer"


if student.hasGraduated:
return []
elif timeOfTheYear == "Fall":
firstSummer = currentTerm.year - year + 2
lastSummer = currentTerm.year + (4 + 1 - year)
# because we do not know whether the student came to Berea in the Fall or in the Spring,
# we have an extra summer (+1) in the list just in case.
else:
firstSummer = currentTerm.year - year + 1
lastSummer = currentTerm.year + (3 + 1 - year)
# because we do not know whether the student came to Berea in the Fall or in the Spring,
# we have an extra summer (+1) in the list just in case.

# this condition assumes that your raw class level changes every fall, so
# your academic year is the same for the spring and summer.

surroundingTerms = (Term.select()
.where(Term.year >= firstSummer, Term.year <= lastSummer)
.order_by(Term.termOrder)
.where(Term.isSummer))

return surroundingTerms

def getStartofCurrentAcademicYear(currentTerm):
if ("Summer" in currentTerm.description) or ("Spring" in currentTerm.description):
fallTerm = Term.select().where(Term.year==currentTerm.year-1, Term.description == f"Fall {currentTerm.year-1}").get()
Expand Down
Loading