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
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
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
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