$DBCONNECTION_REQUIRED=0;
include ("../../inc/includes.php");
+include_once ("inc/functions.php");
-$svg_bar_width = 28;
-$svg_bar_height = 10;
+$svg_color_names = Array('blue', 'red', 'green', 'yellow');
Session::checkRight("reports", "r");
Session::checkRight("computer", "r");
+$report_title = "Progression des mises à niveau Ubuntu";
+
#Html::header(Report::getTypeName(2), $_SERVER['PHP_SELF'], "utils", "report");
-Html::header("Suivi de la migration vers Ubuntu 12.04.", $_SERVER['PHP_SELF'], "utils", "report");
+Html::header($report_title, $_SERVER['PHP_SELF'], "utils", "report");
Report::title();
-#echo "\n<p class='big b' style='text-align: center'>Suivi de la migration vers Ubuntu 12.04</p><br><br>";
-#echo "<p style=\"font-size: 120%; text-align: center;\">Les données du rapport de migration Ubuntu seront disponibles à partir du jeudi 24 avril 2014.<br />En attendant vous pouvez déjà consulter les rapports sur le <a href=\"https://glpi.auf.org/glpi/plugins/auf/report.computers.php\">parc machine</a> et sur les <a href=\"https://glpi.auf.org/glpi/plugins/auf/report.operatingsystems.php\">systèmes d'exploitation</a>.</p>";
+echo "\n<p class='big b' style='margin: 5px; text-align: center'><span id='report_date' style='float: right; margin: 2px 20px; font-size: 75%; font-style: italic'>(".date('Y-m-d H:i:s')." UTC)</span>$report_title</p>";
$computer = new Computer();
$itemtype = 'Computer';
$table_item = getTableForItemType($itemtype);
-$svg_colors = Array('red'=>'#ffa0a0', 'green'=>'#a0ffa0', 'yellow'=>'#ffdd80', 'blue'=>'#a0a0ff');
-
-function svg_circle($color, $size=4) {
- global $svg_colors;
- if (array_key_exists($color, $svg_colors)) { $color = $svg_colors[$color]; }
- $r = (int)$size; $cx = $r+1; $cy = $r+1;
- $svg = '<svg width="'.(2+2*$r).'" height="'.(2+2*$r).'" style="margin: 1px; vertical-align: middle;">';
- $svg .= "<circle cx='$cx' cy='$cy' r='$r' stroke='black' stroke-width='0' fill='$color' />";
- $svg .= '</svg>';
- return $svg;
-}
-
-function svg_pie_chart($values, $size=16) {
- global $svg_colors;
- $color_names = Array('blue', 'red', 'green', 'yellow'); $color_idx = 0;
- $total = 0.0; foreach ($values as $v) { $total += $v; }
- $r = (int)$size; $cx = $r+1; $cy = $r+1; $rad = 2*pi()/$total; $old_a = 0;
- $svg = '<svg width="'.(2+2*$r).'" height="'.(2+2*$r).'" style="margin: 2px; vertical-align: middle;">';
- foreach ($values as $a) {
- $color = $svg_colors[$color_names[$color_idx++]];
- if ($a == $total) {
- $svg .= "<circle cx='$cx' cy='$cy' r='$r' stroke='black' stroke-width='0' fill='$color' />";
- } elseif ($a > 0) {
- $x1 = $cx + $r * cos(-$old_a * $rad);
- $y1 = $cy + $r * sin(-$old_a * $rad);
- $x2 = $cx + $r * cos(-($old_a + $a) * $rad);
- $y2 = $cy + $r * sin(-($old_a + $a) * $rad);
- $big = ($a > ($total/2)) ? '1' : '0';
- $svg .= "<path d=\"M$cx,$cy L$x1,$y1 A$r,$r 0 $big,0 $x2,$y2 z\" style=\"stroke: 0 black; fill: $color;\" />";
- }
- $old_a += $a;
- }
- $svg .= '</svg>';
- return $svg;
-}
-
-function svg_bar($values, $width=100, $height=5) {
- global $svg_colors;
- $color_names = Array('blue', 'red', 'green', 'yellow'); $color_idx = 0;
- $total = 0.0; foreach ($values as $v) { $total += $v; }
- $svg = "<svg width='$width' height='$height' style='float: left; margin: 2px; vertical-align: middle;'>";
- $x = 0;
- foreach ($values as $v) {
- $color = $svg_colors[$color_names[$color_idx++]];
- $w = round(($width*$v)/$total);
- if ($w > 0) {
- $svg .= "<rect x='$x' y='0' width='$w' height='$height' style='stroke: 0 black; fill: $color;' />";
- $x += $w;
- }
- }
- $svg .= '</svg>';
- return $svg;
-}
-
// echo "\n<span class='big b' style='color: red;'>ATTENTION : ce rapport est en cours de refonte, merci de ne pas tenir compte des données affichées ci-dessous.</span><br><br>";
//echo "\n<span class='big b'>Ordinateurs par implantation</span><br><br>";
echo "<table class='tab_cadrehov'>";
echo "<tr class='tab_bg_1'><th rowspan='2' colspan='2'>Implantation</th>";
-echo "<th colspan='4'>Parc interne</th>";
-echo "<th colspan='4'>Parc public</th>";
+echo "<th colspan='5'>Parc interne</th>";
+echo "<th colspan='5'>Parc public</th>";
echo "</tr>";
echo "<tr class='tab_bg_1'>";
-echo "<th>Autres ".svg_circle('blue', 3)."</th><th>Ubuntu<br />10.04 ".svg_circle('red', 3)."</th><th>Ubuntu<br />12.04 ".svg_circle('green', 3)."</th><th>Progression</th>";
-echo "<th>Autres ".svg_circle('blue', 3)."</th><th>Ubuntu<br />10.04 ".svg_circle('red', 3)."</th><th>Ubuntu<br />12.04 ".svg_circle('green', 3)."</th><th>Progression</th>";
+echo "<th>Autres ".svg_circle('blue', 3)."</th><th>Ubuntu<br />10.04 ".svg_circle('red', 3)."</th><th>Ubuntu<br />12.04 ".svg_circle('green', 3)."</th><th>Ubuntu<br />14.04 ".svg_circle('yellow', 3)."</th><th>Progression</th>";
+echo "<th>Autres ".svg_circle('blue', 3)."</th><th>Ubuntu<br />10.04 ".svg_circle('red', 3)."</th><th>Ubuntu<br />12.04 ".svg_circle('green', 3)."</th><th>Ubuntu<br />14.04 ".svg_circle('yellow', 3)."</th><th>Progression</th>";
echo "</tr>\n";
$grand_internes_1204 = 0; $grand_internes_1004 = 0; $grand_internes_autres = 0;
$region_name = "AUF";
}
$table_lines = Array();
- $region_internes_1204 = 0; $region_internes_1004 = 0; $region_internes_autres = 0;
- $region_publics_1204 = 0; $region_publics_1004 = 0; $region_publics_autres = 0;
+ $region_internes_1404 = 0; $region_internes_1204 = 0; $region_internes_1004 = 0; $region_internes_autres = 0;
+ $region_publics_1404 = 0; $region_publics_1204 = 0; $region_publics_1004 = 0; $region_publics_autres = 0;
// récupération de la liste des implantations
$query = "SELECT id,level FROM glpi_entities WHERE ";
}
// récupération de la liste des systèmes de l'implantation
- $nb_internes_1204 = 0; $nb_internes_1004 = 0; $nb_internes_autres = 0;
- $nb_publics_1204 = 0; $nb_publics_1004 = 0; $nb_publics_autres = 0;
+ $nb_internes_1404 = 0; $nb_internes_1204 = 0; $nb_internes_1004 = 0; $nb_internes_autres = 0;
+ $nb_publics_1404 = 0; $nb_publics_1204 = 0; $nb_publics_1004 = 0; $nb_publics_autres = 0;
$query = "SELECT s.completename AS sname, o.name AS oname,
acc.name AS categorie, acu.name AS utilisation
FROM `$table_item` c
LEFT JOIN glpi_plugin_auf_categories acc ON (ac.auf_categories_id = acc.id)
LEFT JOIN glpi_plugin_auf_utilisations acu ON (ac.auf_utilisations_id = acu.id)
LEFT JOIN glpi_operatingsystems o ON (c.operatingsystems_id = o.id)
- WHERE c.is_deleted = '0' AND c.is_template = '0' AND ac.est_virtuel IS FALSE
+ WHERE c.is_deleted = '0' AND c.is_template = '0'
+ AND ac.est_virtuel IS FALSE
+ AND o.name LIKE 'Ubuntu %'
AND c.entities_id = '".$implant_id."'";
$result = $DB->query($query);
while ($data=$DB->fetch_assoc($result)) {
if (preg_match("/^poste.*interne/i", $data['categorie'])) {
if (preg_match("/^production/i", $data['utilisation']) &&
!preg_match("/panne/i", $data['sname']) ) {
- if (preg_match("/^Ubuntu 12\.04/", $data['oname'])) {
+ if (preg_match("/^Ubuntu 14\.04/", $data['oname'])) {
+ $nb_internes_1404++;
+ } elseif (preg_match("/^Ubuntu 12\.04/", $data['oname'])) {
$nb_internes_1204++;
} elseif (preg_match("/^Ubuntu 10\.04/", $data['oname'])) {
$nb_internes_1004++;
elseif (preg_match("/^poste.*public/i", $data['categorie'])) {
if (preg_match("/^production/i", $data['utilisation']) &&
!preg_match("/panne/i", $data['sname']) ) {
- if (preg_match("/^Ubuntu 12\.04/", $data['oname'])) {
+ if (preg_match("/^Ubuntu 14\.04/", $data['oname'])) {
+ $nb_publics_1404++;
+ } elseif (preg_match("/^Ubuntu 12\.04/", $data['oname'])) {
$nb_publics_1204++;
} elseif (preg_match("/^Ubuntu 10\.04/", $data['oname'])) {
$nb_publics_1004++;
}
} // systèmes dans l'implantation
- $total_internes = $nb_internes_1204 + $nb_internes_1004 + $nb_internes_autres;
- $total_publics = $nb_publics_1204 + $nb_publics_1004 + $nb_publics_autres;
+ $total_internes = $nb_internes_1404 + $nb_internes_1204 + $nb_internes_1004 + $nb_internes_autres;
+ $total_publics = $nb_publics_1404 + $nb_publics_1204 + $nb_publics_1004 + $nb_publics_autres;
if (($total_internes + $total_publics) > 0) {
$spaces = "";
for ($i=1;$i<$implant_data['level'];$i++) { $spaces .= " "; }
$line .= "<td class='numeric'>$nb_internes_autres</td>";
$line .= "<td class='numeric'>$nb_internes_1004</td>";
$line .= "<td class='numeric'>$nb_internes_1204</td>";
- $line .= "<td class='numeric tab_bg_2'>";
- $line .= svg_bar(Array($nb_internes_autres, $nb_internes_1004, $nb_internes_1204), $svg_bar_width, $svg_bar_height);
- $line .= round((100*$nb_internes_1204)/$total_internes)."%</td>";
+ $line .= "<td class='numeric'>$nb_internes_1404</td>";
+ $line .= "<td class='numeric tab_bg_2'>".progression_html(Array($nb_internes_autres, $nb_internes_1004, $nb_internes_1204, $nb_internes_1404), $nb_internes_1204 + $nb_internes_1404)."</td>";
$line .= "<td class='numeric'>$nb_publics_autres</td>";
$line .= "<td class='numeric'>$nb_publics_1004</td>";
$line .= "<td class='numeric'>$nb_publics_1204</td>";
- $line .= "<td class='numeric tab_bg_2'>";
- $line .= svg_bar(Array($nb_publics_autres, $nb_publics_1004, $nb_publics_1204), $svg_bar_width, $svg_bar_height);
- $line .= round((100*$nb_publics_1204)/$total_publics)."%</td>";
+ $line .= "<td class='numeric'>$nb_publics_1404</td>";
+ $line .= "<td class='numeric tab_bg_2'>".progression_html(Array($nb_publics_autres, $nb_publics_1004, $nb_publics_1204, $nb_publics_1404), $nb_publics_1204 + $nb_publics_1404)."</td>";
$line .= "</tr>\n";
$table_lines[] = $line;
}
$region_internes_autres += $nb_internes_autres;
$region_internes_1004 += $nb_internes_1004;
$region_internes_1204 += $nb_internes_1204;
+ $region_internes_1404 += $nb_internes_1404;
$region_publics_autres += $nb_publics_autres;
$region_publics_1004 += $nb_publics_1004;
$region_publics_1204 += $nb_publics_1204;
+ $region_publics_1404 += $nb_publics_1404;
#$table_lines[] = "<tr><td>".$implant_name."</td></tr>";
} // fin des implantations de la région
- $total_internes = $region_internes_1204 + $region_internes_1004 + $region_internes_autres;
- $total_publics += $region_publics_1204 + $region_publics_1004 + $region_publics_autres;
+ $total_internes = $region_internes_1404 + $region_internes_1204 + $region_internes_1004 + $region_internes_autres;
+ $total_publics = $region_publics_1404 + $region_publics_1204 + $region_publics_1004 + $region_publics_autres;
if (($total_internes + $total_publics) > 0) {
$line = "<tr class='tab_bg_1 b'><td>Sous-total</td>";
$line .= "<td class='numeric'>$region_internes_autres</td>";
$line .= "<td class='numeric'>$region_internes_1004</td>";
$line .= "<td class='numeric'>$region_internes_1204</td>";
- $line .= "<td class='numeric tab_bg_1'>";
- $line .= svg_bar(Array($region_internes_autres, $region_internes_1004, $region_internes_1204), $svg_bar_width, $svg_bar_height);
- $line .= round((100*$region_internes_1204)/$total_internes)."%</td>";
+ $line .= "<td class='numeric'>$region_internes_1404</td>";
+ $line .= "<td class='numeric tab_bg_1'>".progression_html(Array($region_internes_autres, $region_internes_1004, $region_internes_1204, $region_internes_1004 + $region_internes_1404), $region_internes_1404)."</td>";
$line .= "<td class='numeric'>$region_publics_autres</td>";
$line .= "<td class='numeric'>$region_publics_1004</td>";
$line .= "<td class='numeric'>$region_publics_1204</td>";
- $line .= "<td class='numeric tab_bg_1'>";
- $line .= svg_bar(Array($region_publics_autres, $region_publics_1004, $region_publics_1204), $svg_bar_width, $svg_bar_height);
- $line .= round((100*$region_publics_1204)/$total_publics)."%</td>";
+ $line .= "<td class='numeric'>$region_publics_1404</td>";
+ $line .= "<td class='numeric tab_bg_1'>".progression_html(Array($region_publics_autres, $region_publics_1004, $region_publics_1204, $region_publics_1404), $region_publics_1204 + $region_publics_1404)."</td>";
$line .= "</tr>\n";
$table_lines[] = $line;
}
$region_internes_autres + $region_publics_autres,
$region_internes_1004 + $region_publics_1004,
$region_internes_1204 + $region_publics_1204,
+ $region_internes_1404 + $region_publics_1404,
), 16) . $region_name;
$table_lines[0] = str_replace("<tr>", "<tr><td class='tab_bg_1 b' rowspan='".count($table_lines)."'>$region_name</td>", $table_lines[0]);
if ($region_id != 0) {
- echo "<tr><th colspan='10'></th></tr>\n";
+ echo "<tr><th colspan='12'></th></tr>\n";
}
echo implode("\n", $table_lines);
$grand_internes_autres += $region_internes_autres;
$grand_internes_1004 += $region_internes_1004;
$grand_internes_1204 += $region_internes_1204;
+ $grand_internes_1404 += $region_internes_1404;
$grand_publics_autres += $region_publics_autres;
$grand_publics_1004 += $region_publics_1004;
$grand_publics_1204 += $region_publics_1204;
+ $grand_publics_1404 += $region_publics_1404;
} // fin des régions
#echo "<tr class='tab_bg_1'><td colspan='8'> </td></tr>";
-$total_internes = $grand_internes_1204 + $grand_internes_1004 + $grand_internes_autres;
-$total_publics += $grand_publics_1204 + $grand_publics_1004 + $grand_publics_autres;
-$line = "<tr class='tab_bg_1'><td class='b' colspan='2'>Total général</td>";
+$line = "<tr class='tab_bg_1'><td class='b' colspan='2'>";
+$line .= svg_pie_chart(Array(
+ $grand_internes_autres + $grand_publics_autres,
+ $grand_internes_1004 + $grand_publics_1004,
+ $grand_internes_1204 + $grand_publics_1204,
+ $grand_internes_1404 + $grand_publics_1404,
+), 16);
+$line .= "TOTAL GÉNÉRAL</td>";
$line .= "<td class='numeric b'>$grand_internes_autres</td>";
$line .= "<td class='numeric b'>$grand_internes_1004</td>";
$line .= "<td class='numeric b'>$grand_internes_1204</td>";
-$line .= "<td class='numeric tab_bg_1'>";
-$line .= svg_bar(Array($grand_internes_autres, $grand_internes_1004, $grand_internes_1204), $svg_bar_width, $svg_bar_height);
-$line .= round((100*$grand_internes_1204)/$total_internes)."%</td>";
+$line .= "<td class='numeric b'>$grand_internes_1404</td>";
+$line .= "<td class='numeric tab_bg_1'>".progression_html(Array($grand_internes_autres, $grand_internes_1004, $grand_internes_1204, $grand_internes_1404), $grand_internes_1204 + $grand_internes_1404)."</td>";
$line .= "<td class='numeric b'>$grand_publics_autres</td>";
$line .= "<td class='numeric b'>$grand_publics_1004</td>";
$line .= "<td class='numeric b'>$grand_publics_1204</td>";
-$line .= "<td class='numeric tab_bg_1'>";
-$line .= svg_bar(Array($grand_publics_autres, $grand_publics_1004, $grand_publics_1204), $svg_bar_width, $svg_bar_height);
-$line .= round((100*$grand_publics_1204)/$total_publics)."%</td>";
+$line .= "<td class='numeric b'>$grand_publics_1404</td>";
+$line .= "<td class='numeric tab_bg_1'>".progression_html(Array($grand_publics_autres, $grand_publics_1004, $grand_publics_1204, $grand_publics_1404), $grand_publics_1204 + $grand_publics_1404)."</td>";
$line .= "</tr>";
-echo "<tr><th colspan='10'></th></tr>\n";
+echo "<tr><th colspan='12'></th></tr>\n";
echo $line;
echo "</table>";
+echo "<div style='margin: 5px; text-align: center;'><p><strong>Remarques :</strong></p><ul>";
+echo "<li>Ce rapport ne considère que les machines déclarées en production et qui n'ont pas un statut de panne.</li>";
+echo "<li>Ce rapport ne considère que les machines dans les catégories poste interne ou public, donc pas les serveurs.</li>";
+echo "<li>Ce rapport ne considère que les machines physiques, pas les machines virtuelles.</li>";
+echo "<li>Ce rapport ne considère que les machines sous Ubuntu, aucun autre système.</li>";
+echo "<li>La colonne « Autres » consiste en des systèmes Ubuntu d'une version autre que 14.04, 12.04 ou 10.04.</li>";
+echo "<li>La valeur de progression considère à la fois les versions 12.04 et 14.04.</li>";
+echo "<li><i>Note : la mise à niveau vers Ubuntu 14.04 n'est pas encore d'actualité (les paquets AUF ne sont pas prêts à 100%).</i></li>";
+echo "</ul></div>";
+
Html::footer();
?>