示例#1
0
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()
示例#2
0
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)}
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
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
示例#7
0
def get_project_data_by_id(project_id):
    return ProjectDetails.get_by_id(project_id)
示例#8
0
def delete_project(project_id):
    project = ProjectDetails.get_by_id(project_id)
    if project.delete():
        return True
    return False
示例#9
0
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)]
示例#10
0
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()]