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

1from app.models import * 

2from app.models.term import Term 

3from app.models.user import User 

4import datetime 

5 

6 

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')")]) 

29 

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