Ejemplo n.º 1
0
def get_project_roles(pjid, args, role, flag_total):
    projects_id = store.get_all_projects_id()
    if pjid not in projects_id:
        return []
    else:
        if not flag_total and not detect_project_repositories_overlap(projects_id[pjid], args):
            return []
        if role == "softwaredeveloper":
            tmp_arg = args
            if not flag_total:
                pr_temp_frame = store.get_project_temporal_frame(projects_id[pjid])
                tmp_arg['begin'] = pr_temp_frame.get('first_commit')
                tmp_arg['end'] = pr_temp_frame.get('last_commit')
            co, res = app.request_view('project-developers', pjid=pjid, **tmp_arg)
            return res
        else:
            res = set()
            users_id = store.get_all_members(role)
            for x in users_id:
                pr_res = store.get_all_member_projects(x)
                if projects_id[pjid] in pr_res:
                    res.add(x)
            res_set = []
            [res_set.append({
                'id': store.db.hgetall(x).get("id"),
                'uri': x
            }) for x in res]
            return res_set
Ejemplo n.º 2
0
def get_position_repositories(uid, args, position, flag_total, only_uris):
    positions_id = store.get_all_members_id(position)
    if uid not in positions_id:
        return []
    else:
        projects = store.get_all_member_projects(positions_id[uid])
        res_prj = set()
        res = []
        for x in projects:
            repos = store.get_all_project_repositories(x)
            if not flag_total:
                for k in repos:
                    rep_info = store.db.hgetall(k)
                    if detect_overlap_date(
                        args.get('begin'), args.get('end'),
                        rep_info.get('first_commit'), rep_info.get('last_commit')
                    ):
                        res_prj.add(k)
        if only_uris:
            return res_prj
        else:
            [res.append({
                'id': store.db.hgetall(x).get('id'),
                'uri': x
            }) for x in res_prj]
            return res
Ejemplo n.º 3
0
def get_position_position(uid, args, fil, position, flag_total):
    pr = set(get_position_projects(uid, args, fil, flag_total, True))
    members = store.get_all_members(position)
    members_dir = set()
    res = []
    for x in members:
        if len(pr.intersection(set(store.get_all_member_projects(x)))) > 0:
            members_dir.add(x)
    [res.append({
        'id': store.db.hgetall(x).get("id"),
        'uri': x
    }) for x in members_dir]
    return res
Ejemplo n.º 4
0
def get_position_projects(uid, args, position, flag_total, only_uris):
    positions_id = store.get_all_members_id(position)
    if uid not in positions_id:
        return []
    else:
        projects = store.get_all_member_projects(positions_id[uid])
        if not flag_total:
            res_prj = set()
            for x in projects:
                if detect_project_repositories_overlap(x, args):
                    res_prj.add(x)
            projects = list(res_prj)
        res = []
        if only_uris:
            return projects
        else:
            [res.append({
                'id': store.db.get(x),
                'uri': x
            }) for x in projects]
            return res