def GetProjectById(cls, company, user, id): company = CompaniesController.GetCompanyById(company.id) for project in company.projects: if project.project_id == id: if user_is_company_admin(user, company) or user.id in project.members: return project return None
def GetAndFormatCompanyWideActivity(cls, user, company, count=10): activity_level = 0 if user_is_company_admin(user, company) else 1 activity_records = ActivityRecord.objects.filter(company_id=company.id) activity_records = [a for a in activity_records if a.activity_level > activity_level] activity_records = sorted(activity_records, key=lambda a: a.date, reverse=True) formatted_activity_records = [cls._FormatActivityRecord(a) for a in activity_records] return formatted_activity_records
def GetCompanyProjectsForUser(cls, company, user, only_active=True): projects = company.projects if only_active: projects = [p for p in projects if p.active == True] if not user_is_company_admin(user, company): projects = [p for p in projects if user.id in p.members] projects = sorted(projects, key=lambda p: p.created, reverse=True) return projects
def is_company_admin(user, company): return user_is_company_admin(user, company)
def GetAndFormatProjectWideActivity(cls, user, company, project_id, count=10): activity_level = 0 if user_is_company_admin(user, company) else 1 activity_records = ActivityRecord.objects.filter(project_id=project_id).filter(activity_level__gte=activity_level) activity_records = sorted(activity_records, key=lambda a: a.date, reverse=True) formatted_activity_records = [cls._FormatActivityRecord(a) for a in activity_records[:count]] return formatted_activity_records