Add utilization column to dev pod tab 83/20883/1
authormaxbr <maxbr@mi.fu-berlin.de>
Mon, 12 Sep 2016 09:16:30 +0000 (11:16 +0200)
committermaxbr <maxbr@mi.fu-berlin.de>
Mon, 12 Sep 2016 09:16:30 +0000 (11:16 +0200)
JIRA: PHAROS-263

Change-Id: I25d5d4bf4ecc23febdc0c11eae3298ada9372e83
Signed-off-by: maxbr <maxbr@mi.fu-berlin.de>
tools/pharos-dashboard/dashboard/views.py
tools/pharos-dashboard/templates/dashboard/ci_pods.html
tools/pharos-dashboard/templates/dashboard/dev_pods.html

index 8954f6c..c34a7a5 100644 (file)
@@ -40,10 +40,18 @@ class DevelopmentPodsView(TemplateView):
 
         dev_pods = []
         for resource in resources:
-            dev_pod = (resource, None)
+            booking_utilization = resource.get_booking_utilization(weeks=4)
+            total = booking_utilization['booked_seconds'] + booking_utilization['available_seconds']
+            try:
+               utilization_percentage =  "%d%%" % (float(booking_utilization['booked_seconds']) /
+                                                   total * 100)
+            except (ValueError, ZeroDivisionError):
+                return ""
+
+            dev_pod = (resource, None, utilization_percentage)
             for booking in bookings:
                 if booking.resource == resource:
-                    dev_pod = (resource, booking)
+                    dev_pod = (resource, booking, utilization_percentage)
             dev_pods.append(dev_pod)
 
         context = super(DevelopmentPodsView, self).get_context_data(**kwargs)
index 2982a6f..a754252 100644 (file)
@@ -41,7 +41,7 @@
                     href={{ pod.slave.last_job_url }}>{{ pod.slave.last_job_name }}</a>
             </th>
         </tr>
-    {% endfor %}`
+    {% endfor %}
     </tbody>
 {% endblock table %}
 
index 9c84bb9..c4cb1ba 100644 (file)
         <th>Booked by</th>
         <th>Booked until</th>
         <th>Purpose</th>
+        <th>Utilization</th>
         <th>Status</th>
         <th></th>
+        <th></th>
     </tr>
     </thead>
     <tbody>
-    {% for pod, booking in dev_pods %}
+    {% for pod, booking, utilization in dev_pods %}
         <tr>
             <th>
                 <a href={% url 'dashboard:resource' resource_id=pod.id %}>{{ pod.name }}</a>
@@ -32,6 +34,9 @@
             <th>
                 {{ booking.purpose }}
             </th>
+            <th>
+                {{ utilization }}
+            </th>
             <th style="background-color:{{ pod.slave.status | jenkins_status_color }}">
                 {{ pod.slave.status }}
             </th>
                     Book
                 </a>
             </th>
+            <th>
+                <a href="{% url 'dashboard:resource' resource_id=pod.id %}" class="btn btn-primary">
+                    Info
+                </a>
+            </th>
         </tr>
     {% endfor %}
     </tbody>
@@ -50,9 +60,9 @@
         $(document).ready(function () {
             $('#table').DataTable({
                 columnDefs: [
-                    {type: 'status', targets: 5}
+                    {type: 'status', targets: 6}
                 ],
-                "order": [[5, "asc"]]
+                "order": [[6, "asc"]]
             });
         });
     </script>