Coverage for app/logic/landingPage.py: 83%
36 statements
« prev ^ index » next coverage.py v7.10.2, created at 2025-12-04 17:00 +0000
« prev ^ index » next coverage.py v7.10.2, created at 2025-12-04 17:00 +0000
1import os
2from flask import g
3from app.models.programManager import ProgramManager
4from app.models.program import Program
5from app.models.user import User
8def getManagerProgramDict(user):
10 managerRows = (ProgramManager.select(ProgramManager, User, Program)
11 .join(User)
12 .switch(ProgramManager)
13 .join(Program))
14 programs = Program.select().order_by(Program.programName)
15 if not (user.isAdmin or user.isBonnerScholar):
16 programs = programs.where(Program.isBonnerScholars == False)
17 managerRows = managerRows.where(ProgramManager.program.isBonnerScholars == False)
18 managerProgramDict = {}
20 for program in programs:
21 managerProgramDict[program] = {"managers": "", "image": os.path.join('static', 'images/logos/celts_symbol.png')}
22 with os.scandir("./app/static/files/programattachments") as it:
23 for entry in it:
24 if entry.name.split('.')[0] == f'{program.id}':
25 managerProgramDict[program]["image"] = os.path.join('static', f'files/programattachments/{entry.name}')
26 break
27 for row in managerRows:
28 if managerProgramDict[row.program]["managers"] == "":
29 managerProgramDict[row.program]["managers"] = f'{row.user.firstName} {row.user.lastName}'
30 else:
31 managerProgramDict[row.program]["managers"] = f'{managerProgramDict[row.program]["managers"]}, {row.user.firstName} {row.user.lastName}'
32 return managerProgramDict
34def getActiveEventTab(programID=None, explicit_tab=None):
35 if explicit_tab:
36 return explicit_tab
37 if programID is None:
38 return "celtsLabor"
39 try:
40 program = Program.get_by_id(programID)
41 except Program.DoesNotExist:
42 return "celtsLabor"
43 if getattr(program, "isBonnerScholars", False):
44 return "bonnerScholarsEvents"
45 else:
46 return "celtsLabor"