49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
"""Manager — manages own tryouts, all org teams, all contracts."""
|
|
|
|
from app.models.user_model.user import User
|
|
|
|
|
|
class Manager(User):
|
|
"""Manager — manages own tryouts, all org teams, all contracts."""
|
|
|
|
__mapper_args__ = {'polymorphic_identity': 'manager'}
|
|
|
|
def can_evaluate(self):
|
|
return True
|
|
|
|
def can_manage_teams(self):
|
|
return True
|
|
|
|
def can_manage_tryouts(self):
|
|
return True
|
|
|
|
def can_schedule_matches(self):
|
|
return True
|
|
|
|
def can_manage_this_tryout(self, tryout):
|
|
return (
|
|
tryout.created_by == self.id
|
|
or tryout.manager_id == self.id
|
|
or any(m.id == self.id for m in tryout.managers)
|
|
)
|
|
|
|
def can_manage_this_org_team(self, org_team):
|
|
return True
|
|
|
|
def get_visible_tryouts(self):
|
|
from sqlalchemy import or_
|
|
|
|
from app.models.tryout.tryout import Tryout
|
|
|
|
return (
|
|
Tryout.query.filter(
|
|
or_(
|
|
Tryout.created_by == self.id,
|
|
Tryout.manager_id == self.id,
|
|
Tryout.managers.any(id=self.id),
|
|
)
|
|
)
|
|
.order_by(Tryout.date)
|
|
.all()
|
|
)
|