Merge pull request #193 from MycroftAI/bug/skill-settings
Fixes to skill settings page showing skills multiple times.pull/192/head
commit
2f0ec8f8eb
|
@ -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'])
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue