# Base HTML rendering templates for `nitpg`.
module templates_base
-import statistics
+import achievements
redef class GameEntity
+ # Path to this entity from root.
+ fun path: String do return collection_name / key
+
# URL to this game entity page.
- fun url: String do return game.url / key
+ fun url: String do return game.url / path
end
redef class Game
# This must be set before any access to `url`.
var root_url: String is noinit, writable
- redef fun url do return "{root_url}/games" / key
+ redef fun url do return "{root_url}/{path}"
+
+ # Return a HTML link to this Game.
+ fun link: String do return "<a href=\"{url}\">{name}</a>"
+end
+
+redef class Player
+ # Return a HTML link to this Player.
+ fun link: String do return "<a href=\"{url}\">{name}</a>"
+end
+
+redef class Issue
+ # Return a HTML link to this Issue.
+ fun link: String do return "<a href=\"{html_url or else "#"}\">#{number}</a>"
+end
+
+redef class Achievement
+ # Return a HTML link to this Issue.
+ fun link: String do return "<a href=\"{url}\">{name}</a>"
+
+ # Render self as a media item.
+ fun list_item: String do
+ return """<div class="media">
+ <div class="media-left" style="width: 50px">
+ <span class="glyphicon glyphicon-check"></span>
+ <span class="badge progress-bar-success"
+ style="position: absolute; margin-top: 10px;
+ margin-left: -5px;">+{{{reward}}}</span>
+ </div>
+ <div class="media-body">
+ <h4 class="media-heading">{{{link}}}</h4>
+ <span class="text-muted">{{{desc}}}</span>
+ </div>
+ </div>"""
- # Displayed name.
- fun name: String do return repo.full_name
+ end
end