src/templates/fireinfo/index.html \
src/templates/fireinfo/i-use-1.png \
src/templates/fireinfo/profile.html \
+ src/templates/fireinfo/releases.html \
src/templates/fireinfo/stats-cpus-detail.html \
src/templates/fireinfo/stats-cpus.html \
src/templates/fireinfo/stats-geo.html \
src/templates/fireinfo/stats.html \
- src/templates/fireinfo/stats-oses.html \
src/templates/fireinfo/vendor.html \
src/templates/fireinfo/vendors.html
<h5>
{{ _("of all IPFire systems are on the latest release, released %s") % locale.format_date(latest_release.published, relative=True, shorter=True) }}
</h5>
+
+ <a class="btn btn-sm btn-light" href="/releases">
+ {{ _("See All Releases") }}
+ </a>
</div>
</div>
{% end %}
--- /dev/null
+{% extends "../base.html" %}
+
+{% block title %}{{ _("Releases") }}{% end block %}
+
+{% block container %}
+ <section>
+ <div class="container">
+ <div class="row">
+ <div class="col-12">
+ <h1>{{ _("Releases") }}</h1>
+ </div>
+ </div>
+ </div>
+ </section>
+
+ <div class="container">
+ <dl class="row">
+ {% for name, percentage in releases %}
+ <dt class="col-sm-5">{{ name.replace("core", "Core Update ") }}</dt>
+
+ <dd class="col-sm-7">
+ {% module ProgressBar(percentage, "primary") %}
+ </dd>
+ {% end %}
+ </dl>
+
+ <h2>{{ _("Kernels") }}</h2>
+
+ <dl class="row">
+ {% for name, percentage in kernels %}
+ <dt class="col-sm-5">{{ name }}</dt>
+
+ <dd class="col-sm-7">
+ {% module ProgressBar(percentage, "info") %}
+ </dd>
+ {% end %}
+ </dl>
+ </div>
+{% end block %}
+++ /dev/null
-{% extends "../base.html" %}
-
-{% block title %}{{ _("Operating system") }}{% end block %}
-
-{% block body %}
- <div class="page-header">
- <h1>{{ _("Releases") }}</h1>
- </div>
-
- <dl>
- {% for release, percentage in releases %}
- <dt>
- {% if release %}
- {{ release.replace("core", "Core Update ") }}
- {% else %}
- {{ release }}
- {% end %}
- </dt>
- <dd>{% module ProgressBar(percentage) %}</dd>
- {% end %}
- </dl>
-
- <h3>{{ _("Kernels") }}</h3>
- <dl class="dl-horizontal">
- {% for kernel, percentage in kernels %}
- <dt>{{ kernel }}</dt>
- <dd>{% module ProgressBar(percentage) %}</dd>
- {% end %}
- </dl>
-{% end block %}
(r"/profile/random", fireinfo.RandomProfileHandler),
(r"/profile/([a-z0-9]{40})", fireinfo.ProfileHandler),
+ # Stats
+ (r"/releases", fireinfo.ReleasesHandler),
+
# Send profiles.
(r"/send/([a-z0-9]+)", fireinfo.ProfileSendHandler),
(r"/statistics", fireinfo.StatsHandler),
(r"/statistics/processors", fireinfo.StatsProcessorsHandler),
(r"/statistics/processors/(arm|x86)", fireinfo.StatsProcessorDetailHandler),
- (r"/statistics/geo-locations", fireinfo.StatsGeoHandler),
- (r"/statistics/releases", fireinfo.StatsReleasesHandler),
])
# i-use.ipfire.org
self.redirect("/profile/%s" % profile_id)
+class ReleasesHandler(BaseHandler):
+ def get(self):
+ data = {
+ "releases" : self.fireinfo.get_releases_map(when=self.when),
+ "kernels" : self.fireinfo.get_kernels_map(when=self.when),
+ }
+
+ # Cache for 1h
+ self.set_expires(3600)
+
+ return self.render("fireinfo/releases.html", **data)
+
+
class StatsHandler(BaseHandler):
def get(self):
self.render("fireinfo/stats.html")
platform=platform, flags=flags)
-class StatsReleasesHandler(BaseHandler):
- def get(self):
- data = {
- "releases" : self.fireinfo.get_releases_map(when=self.when),
- "kernels" : self.fireinfo.get_kernels_map(when=self.when),
- }
- return self.render("fireinfo/stats-oses.html", **data)
-
-
-class StatsGeoHandler(BaseHandler):
- def get(self):
- return self.render("fireinfo/stats-geo.html",
- geo_locations = self.fireinfo.get_geo_location_map(when=self.when))
-
-
class VendorsHandler(BaseHandler):
def get(self):
vendors = self.fireinfo.get_vendor_list(when=self.when)