X-Git-Url: http://nitlanguage.org?ds=sidebyside
diff --git a/contrib/nitrpg/src/templates/panels.nit b/contrib/nitrpg/src/templates/panels.nit
index a792703..97078ab 100644
--- a/contrib/nitrpg/src/templates/panels.nit
+++ b/contrib/nitrpg/src/templates/panels.nit
@@ -113,6 +113,72 @@ class MDPanel
end
end
+# Display a list of active game.
+#
+# Used for NitRPG homepage.
+class GamesShortListPanel
+ super Panel
+
+ # Root url used for links.
+ var root_url: String
+
+ # List of NitRPG games to display.
+ var games: Array[Game]
+
+ redef fun render_title do
+ add " "
+ add "Active games"
+ end
+
+ redef fun render_body do
+ if games.is_empty then
+ add "No game yet..."
+ return
+ end
+ var sorted = games.to_a
+ (new GamePlayersComparator).sort(sorted)
+ for game in sorted do
+ add "{game.link} ({game.load_players.length} players)
"
+ end
+ end
+end
+
+# A panel that display a list of player in a repo.
+class GamesListPanel
+ super GamesShortListPanel
+ super TablePanel
+
+ redef fun render_title do
+ add " "
+ add "Active games"
+ end
+
+ redef fun render_body do
+ if games.is_empty then
+ add "
"
+ add "No player yet..."
+ add "
"
+ return
+ end
+ var sorted = games.to_a
+ (new GamePlayersComparator).sort(sorted)
+ add """
+
+ Game |
+ Players |
+ Achievements |
+
"""
+ for game in sorted do
+ add ""
+ add " {game.link} | "
+ add " {game.load_players.length} | "
+ add " {game.load_achievements.length} | "
+ add "
"
+ end
+ add "
"
+ end
+end
+
# A panel that display repo statistics.
class GameStatusPanel
super Panel
@@ -294,16 +360,67 @@ class PlayerReviewsPanel
redef fun render_title do
add " "
- add "Review pull requests to gain nitcoins!"
+ add "Review pull requests and comment issues to gain nitcoins!"
end
redef fun render_body do
var q = "is:open label:need_review sort:updated-asc " +
"-involves:{player.name}"
- var issues = game.repo.search_issues(q)
+ var q2 = "is:open label:request_for_comments sort:updated-asc " +
+ "-involves:{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 pull request or issue to review yet..."
+ return
+ end
+ for issue in issues do
+ var user = issue.user
+ var uplay = user.player(game)
+ add """"""
+ end
+ 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 pull request to review yet..."
+ add "No work to do yet..."
return
end
for issue in issues do