view contrib/sawmill/web/templates/details.html @ 468:0cbf154431db

recognize more build states in sawmill
author Sascha Teichmann <teichmann@intevation.de>
date Thu, 09 Sep 2010 15:40:34 +0000
parents 10d4cbffcc07
children d760c6cd2abf
line wrap: on
line source
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd">
<%
from cgi import escape
from xml.sax.saxutils import quoteattr

from datetime import date
%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" href="styles/style.css" type="text/css" media="screen" />
        <title>S&auml;gewerker - Free Software forestry</title>
 </head>

 <body>
  <table border="0" width="100%" cellspacing="0" cellpadding="0">
   <tr>
    <td>
     <a href="index.py"><img src="img/logo.jpg" border="0" alt="" width="533" height="94" /></a>
    </td>
   </tr>
  </table>
  <table border="0" width="100%" cellspacing="0" cellpadding="0">

   <tr>
        <td align="left" bgcolor="#E0E0E0" width="9">
     <img src="img/topleft.png" height="9" width="9" alt="" />
    </td>
        <td bgcolor="#E0E0E0" width="30">
     <img src="img/clear.png" width="30" height="1" alt="" />
    </td>
        <td bgcolor="#E0E0E0">
     <img src="img/clear.png" width="1" height="1" alt="" />

    </td>
        <td bgcolor="#E0E0E0" width="30">
     <img src="img/clear.png" width="30" height="1" alt="" />
    </td>
        <td align="right" bgcolor="#E0E0E0" width="9">
     <img src="img/topright.png" height="9" width="9" alt="" />
    </td>
     </tr>

     <tr>
    <!-- Outer body row -->
    <td bgcolor="#E0E0E0">
     <img src="img/clear.png" width="10" height="1" alt="" />
    </td>
        <td valign="top" width="99%" bgcolor="#E0E0E0" colspan="3">
       <!-- Inner Tabs / Shell -->
         <table border="0" width="100%" cellspacing="0" cellpadding="0">
          <tr>

             <td align="left" bgcolor="#ffffff" width="9">
        <img src="img/topleft-inner.png" height="9" width="9" alt="" />
       </td>
             <td bgcolor="#ffffff">
        <img src="img/clear.png" width="1" height="1" alt="" />
       </td>
             <td align="right" bgcolor="#ffffff" width="9">
        <img src="img/topright-inner.png" height="9" width="9" alt="" />
       </td>

            </tr>
            <tr>
             <td bgcolor="#ffffff">
        <img src="img/clear.png" width="10" height="1" alt="" />
       </td>
             <td valign="top" width="99%" bgcolor="white" class="css_prison">
        <!-- end main body row -->
<h1><%= escape(description) %></h1>
<%= header %>
<table class="statustable">
<tr>
    <th class="statustablehead">Status</th>
    <th class="statustablehead">Package</th>
    <th class="statustablehead">Revision</th>
    <th class="statustablehead">Start</th>
    <th class="statustablehead">Stop</th>
    <th class="statustablehead">Notes</th>
</tr>
<%

def nn(s, d=""):
    if not s: return d
    return escape(s)

def pretty_time(t, format="%Y-%m-%d %H:%M:%S"):
    if not t: return "&lt;unknown&gt;"
    return t.strftime(format)


def date_from_datetime(x):
    if not x: return None
    return date(x.year, x.month, x.day)

def sort_by_start(a, b):
    a_start = a.build_start
    b_start = b.build_start
    if not a_start and not b_start: return 0
    if not a_start: return 1
    if not b_start: return -1
    return cmp(a_start, b_start)

track_items = sorted(track_items, cmp=sort_by_start, reverse=True)

last_date = None

STATUS2CLASS = {
    'creating_binary_package': 'inprogress',
    'creating_source_package': 'inprogress',
    'source_package_created':  'error',
    'binary_package_created':  'finished'
}

STATUS2MSG = {
    'creating_binary_package': 'building binary packages',
    'creating_source_package': 'building source package',
    'source_package_created':  '',
    'binary_package_created':  'build successful'    
}

for track_item in track_items:
    # for all track items
    curr_date = date_from_datetime(track_item.build_start)
    if curr_date != last_date:
        last_date = curr_date
%>
<tr class="date_row"><td colspan="6"><%= pretty_time(last_date, "%Y-%m-%d") %></td></tr>
<%
    # date changed
%>
<tr class="<%= STATUS2CLASS.get(track_item.build_status, 'error') %>">
    <td><%= STATUS2MSG.get(track_item.build_status, 'error') %></td>
    <td style="font-weight:bold;"><%= nn(track_item.track) %></td>
    <td align="right"><%= nn(track_item.revision) %></td>
    <td><%= pretty_time(track_item.build_start) %></td>
    <td><%= pretty_time(track_item.build_stop) %></td>
    <td>
<%
    for log_desc, log_path in track_item.build_logs:
        # for all logs
%>
[<a href=<%= quoteattr("%s/%s" % (base_dir, log_path)) %>><%= nn(log_desc) %></a>]

<%
    # for all logs
%>
    </td>
</tr>

<%
# for all track itemes
%>

</table>


      <!-- end main body row -->
             </td>
             <td width="10" bgcolor="#ffffff">
        <img src="img/clear.png" width="2" height="1" alt="" />
       </td>
            </tr>

            <tr>
             <td align="left" bgcolor="#E0E0E0" width="9">
        <img src="img/bottomleft-inner.png" height="11" width="11" alt="" />
        </td>
                <td bgcolor="#ffffff">
         <img src="img/clear.png" width="1" height="1" alt="" />
        </td>
                <td align="right" bgcolor="#E0E0E0" width="9">
         <img src="img/bottomright-inner.png" height="11" width="11" alt="" />

        </td>
             </tr>
            </table>

          <!-- end inner body row -->

         </td>
         <td width="10" bgcolor="#E0E0E0">
      <img src="img/clear.png" width="2" height="1" alt="" />
     </td>

      </tr>
      <tr>
         <td align="left" bgcolor="#E0E0E0" width="9">
      <img src="img/bottomleft.png" height="9" width="9" alt="" />
     </td>
         <td bgcolor="#E0E0E0" colspan="3">
      <img src="img/clear.png" width="1" height="1" alt="" />
     </td>
         <td align="right" bgcolor="#E0E0E0" width="9">

      <img src="img/bottomright.png" height="9" width="9" alt="" />
     </td>
      </tr>
   </table>
   <br />
   <center>
    <b style="color:white; font-size:13px;"> 
     This site is hosted by the <a href="http://www.intevation.de">Intevation GmbH</a>
    </b>
   </center>

    </body>
</html>
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)