Coverage for app/models/cceMinorProposal.py: 90%
31 statements
« prev ^ index » next coverage.py v7.2.7, created at 2025-07-22 20:03 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2025-07-22 20:03 +0000
1from app.models import *
2from app.models.term import Term
3from app.models.user import User
4import datetime
7class CCEMinorProposal(baseModel):
8 student = ForeignKeyField(User)
9 term = ForeignKeyField(Term)
10 proposalType = CharField()
11 experienceName = CharField(null=True)
12 experienceType = CharField(null=True)
13 contentAreas = TextField(null=True)
14 experienceDescription = CharField(null=True)
15 roleDescription = CharField(null=True)
16 orgName = CharField()
17 orgAddress = CharField()
18 orgPhone = CharField()
19 orgWebsite = CharField()
20 supervisorPhone = CharField()
21 supervisorName = CharField()
22 supervisorEmail = CharField()
23 totalHours = IntegerField(null=True)
24 totalWeeks = IntegerField(null=True)
25 description = TextField()
26 createdOn = DateTimeField(default=datetime.datetime.now)
27 createdBy = ForeignKeyField(User)
28 status = CharField(constraints=[Check("status in ('Approved', 'Pending', 'Denied')")])
30 @property
31 def isOver300Hours(self):
32 if not int(self.totalHours) or (int(self.totalHours) and int(self.totalHours) >= 300):
33 return True
34 return False