Fix zanata_users.py to support Zanata 3.9.6
HTML of individual language page was changed in Zanata 3.9.6. This commit catches up with the change. Closes-Bug: #1670725 Change-Id: I77df5c1f4b716b395f0f686b6a9e2e48649bedcf
This commit is contained in:
parent
8a5bbaee0e
commit
99b4f6e2ae
|
@ -48,17 +48,13 @@ class ZanataUtility(object):
|
||||||
.findAll('li', {'class': 'l--pad-all-quarter'})
|
.findAll('li', {'class': 'l--pad-all-quarter'})
|
||||||
|
|
||||||
for user in users:
|
for user in users:
|
||||||
span_txt = user.find('span', {'class': 'list__item__meta'}).text
|
user_id = user.find('a').text.strip()
|
||||||
user_id = span_txt.lstrip().rstrip()
|
|
||||||
|
|
||||||
roles = user.find('ul', {'class': 'list--horizontal'}) \
|
roles_tag = user.find('ul', {'class': 'list--horizontal'}) \
|
||||||
.findAll('li')
|
.find('li')
|
||||||
|
roles = roles_tag.text.strip().split(', ')
|
||||||
|
|
||||||
for role in roles:
|
for role_name in roles:
|
||||||
role_name = role.text.lstrip().rstrip()
|
|
||||||
role_status = role.find('i')['class'][1]
|
|
||||||
if role_status != 'i--checkmark':
|
|
||||||
continue
|
|
||||||
yield role_name, user_id
|
yield role_name, user_id
|
||||||
|
|
||||||
def get_languages(self):
|
def get_languages(self):
|
||||||
|
@ -104,7 +100,7 @@ def convert_role_name(role):
|
||||||
'Reviewer': 'reviewers',
|
'Reviewer': 'reviewers',
|
||||||
'Coordinator': 'coordinators'
|
'Coordinator': 'coordinators'
|
||||||
}
|
}
|
||||||
return roles[role] if role in roles else None
|
return roles.get(role)
|
||||||
|
|
||||||
|
|
||||||
def collect_zanata_language_and_members():
|
def collect_zanata_language_and_members():
|
||||||
|
@ -118,7 +114,7 @@ def collect_zanata_language_and_members():
|
||||||
member_url = languages[language].pop('member_url')
|
member_url = languages[language].pop('member_url')
|
||||||
for role, user_id in zanata.iter_language_members(member_url):
|
for role, user_id in zanata.iter_language_members(member_url):
|
||||||
role = convert_role_name(role)
|
role = convert_role_name(role)
|
||||||
if role is None:
|
if not role:
|
||||||
print('[Warn] Unknown role : %s' % role)
|
print('[Warn] Unknown role : %s' % role)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -127,7 +123,8 @@ def collect_zanata_language_and_members():
|
||||||
languages[language][role].append(user_id)
|
languages[language][role].append(user_id)
|
||||||
|
|
||||||
sorted_key = sorted(languages, reverse=True,
|
sorted_key = sorted(languages, reverse=True,
|
||||||
key=lambda k: len(languages[k]['translators']))
|
# Need to consider a case where no tranlators in a team
|
||||||
|
key=lambda k: len(languages[k].get('translators', [])))
|
||||||
result = OrderedDict((k, languages[k]) for k in sorted_key)
|
result = OrderedDict((k, languages[k]) for k in sorted_key)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue