]>
Commit | Line | Data |
---|---|---|
62eaa617 | 1 | {% extends "../base.html" %} |
140172cf | 2 | |
38d161c7 | 3 | {% block title %}{{ _("Fireinfo") }}{% end block %} |
140172cf | 4 | |
38d161c7 MT |
5 | {% block container %} |
6 | <section> | |
7 | <div class="container"> | |
8 | <div class="row"> | |
9 | <div class="col col-lg-8"> | |
10 | <h1 class="display-2">{{ _("Fireinfo") }}</h1> | |
e52b45b6 | 11 | |
38d161c7 MT |
12 | <p> |
13 | <strong>Fireinfo</strong> is a tool that anonymously collects statistical | |
14 | data from IPFire systems | |
15 | </p> | |
16 | </div> | |
8337a9ab | 17 | </div> |
38d161c7 MT |
18 | </div> |
19 | </section> | |
8337a9ab | 20 | |
38d161c7 | 21 | <div class="container"> |
c4099434 | 22 | <div class="row justify-content-center my-5"> |
38d161c7 MT |
23 | <div class="col-12 col-sm-8 col-lg-6 col-xl-4"> |
24 | <a class="btn btn-primary btn-lg btn-block" href="/profile/random"> | |
25 | {{ _("Show a Random Profile") }} | |
26 | </a> | |
8337a9ab | 27 | </div> |
140172cf | 28 | </div> |
38d161c7 | 29 | </div> |
c4099434 | 30 | |
11ee2139 MT |
31 | <section class="inverse"> |
32 | <div class="container"> | |
f088f0c7 | 33 | <div class="row justify-content-center align-items-center"> |
11ee2139 | 34 | {% if latest_release %} |
f088f0c7 | 35 | <div class="col-12 col-md-4 text-center text-md-right"> |
11ee2139 MT |
36 | <div> |
37 | <h1 class="display-1 text-primary mb-0"> | |
38 | {{ "%.2f%%" % (latest_release.penetration * 100) }} | |
39 | </h1> | |
40 | ||
f088f0c7 MT |
41 | <h5> |
42 | {{ _("of all IPFire systems are on the latest release, released %s") % locale.format_date(latest_release.published, relative=True, shorter=True) }} | |
43 | </h5> | |
ed2e3c1f MT |
44 | |
45 | <a class="btn btn-sm btn-light" href="/releases"> | |
46 | {{ _("See All Releases") }} | |
47 | </a> | |
11ee2139 MT |
48 | </div> |
49 | </div> | |
50 | {% end %} | |
f088f0c7 MT |
51 | |
52 | <div class="col-12 col-md-3 text-center text-md-left"> | |
53 | <img class="img-fluid my-5" src="{{ static_url("img/ipfire-tux.png") }}" alt="IPFire Logo" /> | |
54 | </div> | |
11ee2139 MT |
55 | </div> |
56 | </div> | |
57 | </section> | |
58 | ||
84604476 | 59 | <section> |
574a88c7 MT |
60 | <div class="container"> |
61 | <div class="row"> | |
62 | <div class="col-12"> | |
63 | <h4>{{ _("Locations") }}</h4> | |
64 | ||
65 | <dl class="row"> | |
66 | {% for country_code, percentage in locations %} | |
67 | {% if percentage >= 0.01 %} | |
68 | <dt class="col-sm-6"> | |
69 | <span class="flag-icon flag-icon-{{ country_code.lower() }} small mr-1"></span> | |
70 | {{ format_country_name(country_code) }} | |
71 | </dt> | |
72 | ||
73 | <dd class="col-sm-6"> | |
74 | {% module ProgressBar(percentage, "success") %} | |
75 | </dd> | |
76 | {% end %} | |
77 | {% end %} | |
78 | </dl> | |
79 | </div> | |
80 | </div> | |
81 | ||
82 | <div class="row"> | |
83 | <div class="col-12"> | |
84 | <small> | |
85 | {{ _("IPFire is also running in these countries: %s") % locale.list(list((format_country_name(c) for c, p in locations if p < 0.01))) }} | |
86 | </small> | |
87 | </div> | |
88 | </div> | |
89 | </div> | |
90 | </section> | |
91 | ||
92 | <section class="inverse"> | |
84604476 | 93 | <div class="container"> |
5a34028b MT |
94 | <div class="row align-items-center"> |
95 | <div class="col-12 col-md-6"> | |
96 | <h4>{{ _("CPU Vendors") }}</h4> | |
97 | ||
98 | <dl class="row"> | |
99 | {% for name, percentage in cpu_vendors %} | |
100 | <dt class="col-sm-3">{{ name }}</dt> | |
101 | ||
102 | <dd class="col-sm-9"> | |
103 | {% module ProgressBar(percentage, "success") %} | |
104 | </dd> | |
105 | {% end %} | |
106 | </dl> | |
107 | ||
108 | <h4>{{ _("Architectures") }}</h4> | |
109 | ||
110 | <dl class="row"> | |
111 | {% for name, percentage in arches %} | |
112 | <dt class="col-sm-3">{{ name }}</dt> | |
113 | ||
114 | <dd class="col-sm-9"> | |
115 | {% module ProgressBar(percentage, "success") %} | |
116 | </dd> | |
117 | {% end %} | |
118 | </dl> | |
119 | </div> | |
120 | ||
121 | <div class="col-12 col-md-6 text-center"> | |
84604476 MT |
122 | <h1>{{ format_size(memory_avg * 1024, "MB") }}</h1> |
123 | ||
124 | <p class="text-muted"> | |
125 | {{ _("Average Amount of Memory") }} | |
126 | </p> | |
127 | </div> | |
128 | </div> | |
129 | </div> | |
130 | </section> | |
131 | ||
574a88c7 | 132 | <section> |
c4099434 MT |
133 | <div class="container"> |
134 | <div class="row"> | |
11ee2139 MT |
135 | <div class="col-12 col-md-6 d-flex align-items-center text-md-right"> |
136 | <div> | |
137 | <h1 class="display-1 text-success mb-0"> | |
138 | {{ "%.2f%%" % (virtual_ratio * 100) }} | |
139 | </h1> | |
c4099434 | 140 | |
11ee2139 MT |
141 | <h5>{{ _("of all IPFire systems are running in a virtual environment") }}</h5> |
142 | </div> | |
c4099434 MT |
143 | </div> |
144 | ||
145 | <div class="col-12 col-md-6"> | |
54a42938 | 146 | <h4>{{ _("Top Hypervisors") }}</h4> |
c4099434 MT |
147 | |
148 | <dl class="row"> | |
149 | {% for name, percentage in hypervisors %} | |
54a42938 | 150 | {% if percentage >= 0.01 %} |
c4099434 MT |
151 | <dt class="col-sm-3"> |
152 | {% if name == "unknown" %} | |
153 | <span class="text-muted">{{ _("Unknown") }}</span> | |
154 | {% elif name == "VMWare" %} | |
155 | VMware | |
156 | {% else %} | |
157 | {{ name }} | |
158 | {% end %} | |
159 | </dt> | |
11ee2139 | 160 | |
c4099434 | 161 | <dd class="col-sm-9"> |
11ee2139 | 162 | {% module ProgressBar(percentage, "success") %} |
c4099434 MT |
163 | </dd> |
164 | {% end %} | |
165 | {% end %} | |
166 | </dl> | |
167 | </div> | |
168 | </div> | |
169 | </div> | |
170 | </section> | |
140172cf | 171 | {% end block %} |