From 223d82328f636184d1636e30633fdc614a8a2334 Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Wed, 22 Apr 2015 23:11:36 +0700 Subject: [PATCH] nitrpg: add new player panel for work to do Signed-off-by: Jean Privat --- contrib/nitrpg/src/templates/panels.nit | 46 +++++++++++++++++++++++++++++++ contrib/nitrpg/src/web.nit | 1 + 2 files changed, 47 insertions(+) diff --git a/contrib/nitrpg/src/templates/panels.nit b/contrib/nitrpg/src/templates/panels.nit index 1883f30..97078ab 100644 --- a/contrib/nitrpg/src/templates/panels.nit +++ b/contrib/nitrpg/src/templates/panels.nit @@ -397,6 +397,52 @@ class PlayerReviewsPanel end end +# A `Panel` that displays the work assigned or tagged. +class PlayerWorkPanel + super Panel + + # Repo to display. + var game: Game + + # Player to display customized list for. + var player: Player + + redef fun render_title do + add "  " + add "Do your tasks to gain nitcoins!" + end + + redef fun render_body do + var q = "is:open label:need_work sort:updated-asc author:{player.name}" + var q2 = "is:open sort:updated-asc assignee:{player.name}" + + var issues = new ArraySet[Issue] + issues.add_all game.repo.search_issues(q).as(not null) + issues.add_all game.repo.search_issues(q2).as(not null) + if issues.is_empty then + add "No work to do yet..." + return + end + for issue in issues do + var user = issue.user + var uplay = user.player(game) + add """
+ + {{{uplay.name}}} + +
+

+ {{{issue.link}}} {{{issue.title}}} +

+ opened by + {{{uplay.link}}} +
+
""" + end + end +end + # A `Panel` that displays a pagined list of events stored in the `entity`. # # This way the panel can be used to view events stored under `Game`, `Player`... diff --git a/contrib/nitrpg/src/web.nit b/contrib/nitrpg/src/web.nit index 5f4992e..38ed68e 100644 --- a/contrib/nitrpg/src/web.nit +++ b/contrib/nitrpg/src/web.nit @@ -233,6 +233,7 @@ class PlayerHome page.side_panels.clear page.side_panels.add new PlayerStatusPanel(game, player) page.flow_panels.add new PlayerReviewsPanel(game, player) + page.flow_panels.add new PlayerWorkPanel(game, player) page.flow_panels.add new AchievementsListPanel(player) page.flow_panels.add new EventListPanel(player, list_limit, list_from) rsp.body = page.write_to_string -- 1.7.9.5