def create_project(wks_key, user_email, description, start, deadline, name): project_data = ProjectDetails(Wks=wks_key, project_manager=user_email, project_name=name, project_description=description, project_start=start, project_deadline=deadline, project_status="Running", project_stage="Planning", project_function_points=0) if not project_data.put(): flash('Project not created.', 'danger') return False flash('Project successfully created.', 'success') return project_data.key.id()
def get_project(wks_key, project_id): project = ProjectDetails.get_by_id(project_id) if project: if project.Wks == wks_key: return project return {'code': 403, 'message': "Project (" + str(project_id) + ") not part of workspace. Forbidden access."} return {'code': 404, 'message': "Project not found: " + str(project_id)}
def check_project_access(projects_data, user_email, role): if role == "admin": return True if role == "manager": project = ProjectDetails.get_by_id(projects_data.key.id()) user_id = AccountDetails.query( AccountDetails.email == user_email).get().key.id() if user_id in project.get_developers(): return True if projects_data.project_manager == user_email: return True if role == "developer": project = ProjectDetails.get_by_id(projects_data.key.id()) user_id = AccountDetails.query( AccountDetails.email == user_email).get().key.id() if user_id in project.get_developers(): return True return False
def get_all_projects(wks_key, role, user_email, user_id): if role == "admin": project_objects = ProjectDetails.query( ProjectDetails.Wks == wks_key).fetch() elif role == "manager": project_objects = [] projects = ProjectDetails.query(ProjectDetails.Wks == wks_key).fetch() for project in projects: if user_id in project.get_developers( ) or project.project_manager == user_email: project_objects.append(project) elif role == "developer": projects = ProjectDetails.query(ProjectDetails.Wks == wks_key).fetch() project_objects = [] for project in projects: if user_id in project.get_developers(): project_objects.append(project) return project_objects
def create_project(wks_key, body): resp = {} if validate_project(body) != True: return validate_project(body) project_data = ProjectDetails( Wks=wks_key, project_manager=body['project_manager'], project_name=body['project_name'], project_description=body['project_description'], project_start=body['project_start'], project_deadline=body['project_deadline'], project_status="Running", project_stage="Planning" ).put() resp['ProjectID'] = project_data.id() resp["information"] = "Project created successfully." return resp
def create_task(project_id, Title, aMinutes, start, finish, Description, Skills, Developers): project = ProjectDetails.get_by_id(int(project_id)) task_data = TaskDetails( Project=project.key, task_name=Title, task_description=Description, task_startdate=datetime.strptime(str(start), '%d/%m/%Y'), task_finishbydate=datetime.strptime(str(finish), '%d/%m/%Y'), task_skills=map(int, Skills), task_developers=map(int, Developers), task_aminutes=int(aMinutes), task_status="Open") if task_data.put(): return True return False
def get_project_data_by_id(project_id): return ProjectDetails.get_by_id(project_id)
def delete_project(project_id): project = ProjectDetails.get_by_id(project_id) if project.delete(): return True return False
def get_user_projects(wks_key, ProfileID): data = get_account(ProfileID) return [dict(project.to_dict(), **dict(ProjectID=project.key.id())) for project in ProjectDetails.query(ProjectDetails.Wks == wks_key).fetch() if check_project_access(project, data.UserEmail, data.role)]
def get_all_workspace_projects(wks_key): return [dict(project.to_dict(), **dict(ProjectID=project.key.id(), Developers=project.get_developers())) for project in ProjectDetails.query(ProjectDetails.Wks == wks_key).fetch()]