1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-02-23 02:32:13 +01:00

fix osc my rq

also display requests for packages where the user is maintainer of
the package but not the project (e.g. devel:openSUSE:Factory)
This commit is contained in:
Ludwig Nussel 2010-12-22 08:45:36 +01:00
parent 6cee3c99fa
commit 70b3c3c435

View File

@ -4915,16 +4915,21 @@ Please submit there instead, or use --nodevelproject to force direct submission.
res = get_user_projpkgs(apiurl, user, role_filter, exclude_projects,
what.has_key('project'), what.has_key('package'),
opts.maintained, opts.verbose)
# map of project =>[list of packages]
# if list of packages is empty user is maintainer of the whole project
request_todo = {}
roles = {}
if len(what.keys()) == 2:
for i in res.get('project_id', res.get('project', {})).findall('project'):
request_todo[i.get('name')] = []
roles[i.get('name')] = [p.get('role') for p in i.findall('person') if p.get('userid') == user]
for i in res.get('package_id', res.get('package', {})).findall('package'):
roles['/'.join([i.get('project'), i.get('name')])] = [p.get('role') for p in i.findall('person') if p.get('userid') == user]
if not i.get('project') in request_todo.keys():
request_todo.setdefault(i.get('project'), []).append(i.get('name'))
prj = i.get('project')
roles['/'.join([prj, i.get('name')])] = [p.get('role') for p in i.findall('person') if p.get('userid') == user]
if not prj in request_todo or request_todo[prj] != []:
request_todo.setdefault(prj, []).append(i.get('name'))
else:
for i in res.get('project_id', res.get('project', {})).findall('project'):
roles[i.get('name')] = [p.get('role') for p in i.findall('person') if p.get('userid') == user]