Skip to content

Commit

Permalink
[BUGFIX] Fixing issue of the ui rendering, resulting in much queries …
Browse files Browse the repository at this point in the history
…that were not used.
  • Loading branch information
tomvlk committed Jun 4, 2017
1 parent ae828ce commit e4281cc
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
2 changes: 1 addition & 1 deletion pyplanet/core/ui/components/manialink.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ async def render(self, player_login=None, data=None, player_data=None, template=
# Combine data (global + user specific).
payload_data = self.data.copy()
if player_login:
payload_data.update(self.player_data.get(player_login, dict()))
payload_data.update(player_data.get(player_login, dict()))

# Render and save in content.
return await template.render(**payload_data)
Expand Down
7 changes: 6 additions & 1 deletion pyplanet/views/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,10 @@ async def display(self, player_logins=None, **kwargs):

# Get player data (new way).
async def get_player_data(login):
return login, await self.get_per_player_data(login) or dict()
data = await self.get_per_player_data(login)
if not data or isinstance(data, dict) and len(data.keys()) == 0:
data = None
return login, data

player_data = await asyncio.gather(*[
get_player_data(p.login) if isinstance(p, Player) else get_player_data(p)
Expand All @@ -135,6 +138,8 @@ async def get_player_data(login):

# TODO: This can be flatten with `self.player_data = dict(player_data)` after deprecated code has been removed.
for login, data in player_data:
if not isinstance(data, dict) or len(data.keys()) == 0:
continue
if login in self.player_data and isinstance(self.player_data[login], dict):
self.player_data[login].update(data)
else:
Expand Down

0 comments on commit e4281cc

Please sign in to comment.