Merge pull request #193 from MycroftAI/bug/skill-settings

Fixes to skill settings page showing skills multiple times.
pull/192/head
Chris Veilleux 2019-08-16 18:49:03 -05:00 committed by GitHub
commit 2f0ec8f8eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 10 deletions

View File

@ -15,14 +15,21 @@ class SkillsEndpoint(SeleneEndpoint):
skill_repository = SkillRepository(self.db)
skills = skill_repository.get_skills_for_account(self.account.id)
response_data = []
response_data = {}
for skill in skills:
response_data.append(dict(
family_name=skill.family_name,
market_id=skill.market_id,
name=skill.display_name or skill.family_name,
has_settings=skill.has_settings,
skill_ids=skill.skill_ids
))
try:
response_skill = response_data[skill.family_name]
except KeyError:
response_data[skill.family_name] = dict(
family_name=skill.family_name,
market_id=skill.market_id,
name=skill.display_name or skill.family_name,
has_settings=skill.has_settings,
skill_ids=skill.skill_ids
)
else:
response_skill['skill_ids'].extend(skill.skill_ids)
if response_skill['market_id'] is None:
response_skill['market_id'] = skill.market_id
return sorted(response_data, key=lambda x: x['name'])
return sorted(response_data.values(), key=lambda x: x['name'])

View File

@ -11,6 +11,7 @@ FROM
LEFT JOIN skill.display sd ON ss.id = sd.skill_id
LEFT JOIN skill.settings_display ssd ON ssd.skill_id = ss.id
WHERE
dd.account_id = %(account_id)s
ssd.id = dds.skill_settings_display_id
AND dd.account_id = %(account_id)s
GROUP BY
1, 2, 3, 4