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 """ + + + + + """ + for game in sorted do + add "" + add " " + add " " + add " " + add "" + end + add "
GamePlayersAchievements
{game.link}{game.load_players.length}{game.load_achievements.length}
" + 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 """
+ + {{{uplay.name}}} + +
+

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

+ opened by + {{{uplay.link}}} +
+
""" + 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