<% from cgi import escape from xml.sax.saxutils import quoteattr from datetime import date, datetime %> Sägewerker - Free Software forestry

<%= escape(description) %>

<%= header %> <% 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 "<unknown>" 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) def create_tags_link(tag_url): return quoteattr(tag_url.replace( "svn://anonsvn.kde.org/home/kde", "http://websvn.kde.org")) 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': 'inprogress', 'binary_package_created': 'finished' } STATUS2MSG = { 'creating_binary_package': 'building binary packages', 'creating_source_package': 'building source package', 'source_package_created': 'preparing build envrionment', '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 %> <% # date changed %> <% # for all track itemes %>
Status Package Revision Start Stop Notes
<%= pretty_time(last_date, "%Y-%m-%d") %>
<%= STATUS2MSG.get(track_item.build_status, 'error') %> <%= nn(track_item.track) %> <% tags = track_item.build_tags if tags: # a tag %> ><%= nn(track_item.revision) %> <% else: # not a tag %> <%= nn(track_item.revision) %> <% # end if tags %> <%= pretty_time(track_item.build_start) %> <%= pretty_time(track_item.build_stop) %> <% for log_desc, log_path in track_item.build_logs: # for all logs %> [><%= nn(log_desc) %>] <% # for all logs %>

report generated at <%= pretty_time(datetime.now()) %>, powered by Tree Packager

This site is hosted by the Intevation GmbH