]>
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> | |
11ee2139 MT |
44 | </div> |
45 | </div> | |
46 | {% end %} | |
f088f0c7 MT |
47 | |
48 | <div class="col-12 col-md-3 text-center text-md-left"> | |
49 | <img class="img-fluid my-5" src="{{ static_url("img/ipfire-tux.png") }}" alt="IPFire Logo" /> | |
50 | </div> | |
11ee2139 MT |
51 | </div> |
52 | </div> | |
53 | </section> | |
54 | ||
84604476 | 55 | <section> |
574a88c7 MT |
56 | <div class="container"> |
57 | <div class="row"> | |
58 | <div class="col-12"> | |
59 | <h4>{{ _("Locations") }}</h4> | |
60 | ||
61 | <dl class="row"> | |
62 | {% for country_code, percentage in locations %} | |
63 | {% if percentage >= 0.01 %} | |
64 | <dt class="col-sm-6"> | |
65 | <span class="flag-icon flag-icon-{{ country_code.lower() }} small mr-1"></span> | |
66 | {{ format_country_name(country_code) }} | |
67 | </dt> | |
68 | ||
69 | <dd class="col-sm-6"> | |
70 | {% module ProgressBar(percentage, "success") %} | |
71 | </dd> | |
72 | {% end %} | |
73 | {% end %} | |
74 | </dl> | |
75 | </div> | |
76 | </div> | |
77 | ||
78 | <div class="row"> | |
79 | <div class="col-12"> | |
80 | <small> | |
81 | {{ _("IPFire is also running in these countries: %s") % locale.list(list((format_country_name(c) for c, p in locations if p < 0.01))) }} | |
82 | </small> | |
83 | </div> | |
84 | </div> | |
85 | </div> | |
86 | </section> | |
87 | ||
88 | <section class="inverse"> | |
84604476 | 89 | <div class="container"> |
5a34028b MT |
90 | <div class="row align-items-center"> |
91 | <div class="col-12 col-md-6"> | |
92 | <h4>{{ _("CPU Vendors") }}</h4> | |
93 | ||
94 | <dl class="row"> | |
95 | {% for name, percentage in cpu_vendors %} | |
96 | <dt class="col-sm-3">{{ name }}</dt> | |
97 | ||
98 | <dd class="col-sm-9"> | |
99 | {% module ProgressBar(percentage, "success") %} | |
100 | </dd> | |
101 | {% end %} | |
102 | </dl> | |
103 | ||
104 | <h4>{{ _("Architectures") }}</h4> | |
105 | ||
106 | <dl class="row"> | |
107 | {% for name, percentage in arches %} | |
108 | <dt class="col-sm-3">{{ name }}</dt> | |
109 | ||
110 | <dd class="col-sm-9"> | |
111 | {% module ProgressBar(percentage, "success") %} | |
112 | </dd> | |
113 | {% end %} | |
114 | </dl> | |
115 | </div> | |
116 | ||
117 | <div class="col-12 col-md-6 text-center"> | |
84604476 MT |
118 | <h1>{{ format_size(memory_avg * 1024, "MB") }}</h1> |
119 | ||
120 | <p class="text-muted"> | |
121 | {{ _("Average Amount of Memory") }} | |
122 | </p> | |
123 | </div> | |
124 | </div> | |
125 | </div> | |
126 | </section> | |
127 | ||
574a88c7 | 128 | <section> |
c4099434 MT |
129 | <div class="container"> |
130 | <div class="row"> | |
11ee2139 MT |
131 | <div class="col-12 col-md-6 d-flex align-items-center text-md-right"> |
132 | <div> | |
133 | <h1 class="display-1 text-success mb-0"> | |
134 | {{ "%.2f%%" % (virtual_ratio * 100) }} | |
135 | </h1> | |
c4099434 | 136 | |
11ee2139 MT |
137 | <h5>{{ _("of all IPFire systems are running in a virtual environment") }}</h5> |
138 | </div> | |
c4099434 MT |
139 | </div> |
140 | ||
141 | <div class="col-12 col-md-6"> | |
54a42938 | 142 | <h4>{{ _("Top Hypervisors") }}</h4> |
c4099434 MT |
143 | |
144 | <dl class="row"> | |
145 | {% for name, percentage in hypervisors %} | |
54a42938 | 146 | {% if percentage >= 0.01 %} |
c4099434 MT |
147 | <dt class="col-sm-3"> |
148 | {% if name == "unknown" %} | |
149 | <span class="text-muted">{{ _("Unknown") }}</span> | |
150 | {% elif name == "VMWare" %} | |
151 | VMware | |
152 | {% else %} | |
153 | {{ name }} | |
154 | {% end %} | |
155 | </dt> | |
11ee2139 | 156 | |
c4099434 | 157 | <dd class="col-sm-9"> |
11ee2139 | 158 | {% module ProgressBar(percentage, "success") %} |
c4099434 MT |
159 | </dd> |
160 | {% end %} | |
161 | {% end %} | |
162 | </dl> | |
163 | </div> | |
164 | </div> | |
165 | </div> | |
166 | </section> | |
140172cf | 167 | {% end block %} |