Prettified all HTML files
Prettified all HTML files using Beautiful Soup with the following script. https://github.com/berendt/openstack-development/blob/master/prettify.py Change-Id: I16594e2d000cb51b08c324ef39c2fc7600484422
This commit is contained in:
parent
a0df2bdb9a
commit
1f8e63d23d
392
template.html
392
template.html
|
@ -1,24 +1,25 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<base href=".">
|
||||
<title>{{ series|capitalize }} release status</title>
|
||||
<link rel="shortcut icon"
|
||||
href="https://blueprints.launchpad.net/@@/launchpad.png">
|
||||
<script type="text/javascript"
|
||||
src="http://status.openstack.org/common.js"></script>
|
||||
<link href='http://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'/>
|
||||
<link rel="stylesheet" href="http://www.openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection"/>
|
||||
<link rel="stylesheet" href="http://www.openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print"/>
|
||||
<link rel="stylesheet" type="text/css" href="http://www.openstack.org/themes/openstack/css/main.css" />
|
||||
<link type="text/css" rel="stylesheet" media="screen,print" href="combo.css">
|
||||
|
||||
<script type="text/javascript" src="sorting.js"></script>
|
||||
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
|
||||
<script type='text/javascript'>
|
||||
google.load('visualization', '1', {packages:['gauge']});
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html dir="ltr" lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta content="text/html; charset=utf8" http-equiv="Content-Type"/>
|
||||
<base href="."/>
|
||||
<title>
|
||||
{{ series|capitalize }} release status
|
||||
</title>
|
||||
<link href="https://blueprints.launchpad.net/@@/launchpad.png" rel="shortcut icon"/>
|
||||
<script src="http://status.openstack.org/common.js" type="text/javascript">
|
||||
</script>
|
||||
<link href="http://fonts.googleapis.com/css?family=PT+Sans&subset=latin" rel="stylesheet" type="text/css"/>
|
||||
<link href="http://www.openstack.org/themes/openstack/css/blueprint/screen.css" media="screen, projection" rel="stylesheet" type="text/css"/>
|
||||
<link href="http://www.openstack.org/themes/openstack/css/blueprint/print.css" media="print" rel="stylesheet" type="text/css"/>
|
||||
<link href="http://www.openstack.org/themes/openstack/css/main.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="combo.css" media="screen,print" rel="stylesheet" type="text/css"/>
|
||||
<script src="sorting.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="https://www.google.com/jsapi" type="text/javascript">
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
google.load('visualization', '1', {packages:['gauge']});
|
||||
google.setOnLoadCallback(drawChart);
|
||||
function drawChart() {
|
||||
var data = new google.visualization.DataTable();
|
||||
|
@ -38,102 +39,180 @@
|
|||
chart.draw(data, options);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body id="document">
|
||||
<script type="text/javascript">header('Release');</script>
|
||||
</head>
|
||||
<body id="document">
|
||||
<script type="text/javascript">
|
||||
header('Release');
|
||||
</script>
|
||||
<div class="container">
|
||||
<div class="span-20">
|
||||
<h1>OpenStack roadmap for {{ series }}</h1>
|
||||
<a href="https://wiki.openstack.org/wiki/{{ series|capitalize }}_Release_Schedule">Release
|
||||
Schedule</a><br>
|
||||
<a href="https://wiki.openstack.org/wiki/Release_Cycle">Release
|
||||
Cycle</a><br> <br>
|
||||
<ol class="breadcrumbs">
|
||||
<li>Page refreshed at {{ date }} UTC </li>
|
||||
<li>{{ activebps|length + pastbps|length }} total blueprints </li>
|
||||
<li><b>{{ activebps|length }} tracked active blueprints</b></li>
|
||||
</ol>
|
||||
<ol class="breadcrumbs">
|
||||
<li>Note </li>
|
||||
<li>We only track active blueprints where priority is Medium, High or Essential (release radar)</li>
|
||||
</ol>
|
||||
<ol class="breadcrumbs">
|
||||
<li>Key </li>
|
||||
<li><img src=bmpNEEDSREVIEW.png> Proposed change (needs review) </li>
|
||||
<li><img src=bmpMERGED.png> Merged change</li>
|
||||
</ol>
|
||||
<div class="span-20">
|
||||
<h1>
|
||||
OpenStack roadmap for {{ series }}
|
||||
</h1>
|
||||
<a href="https://wiki.openstack.org/wiki/{{ series|capitalize }}_Release_Schedule">
|
||||
Release
|
||||
Schedule
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://wiki.openstack.org/wiki/Release_Cycle">
|
||||
Release
|
||||
Cycle
|
||||
</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<ol class="breadcrumbs">
|
||||
<li>
|
||||
Page refreshed at {{ date }} UTC
|
||||
</li>
|
||||
<li>
|
||||
{{ activebps|length + pastbps|length }} total blueprints
|
||||
</li>
|
||||
<li>
|
||||
<b>
|
||||
{{ activebps|length }} tracked active blueprints
|
||||
</b>
|
||||
</li>
|
||||
</ol>
|
||||
<ol class="breadcrumbs">
|
||||
<li>
|
||||
Note
|
||||
</li>
|
||||
<li>
|
||||
We only track active blueprints where priority is Medium, High or Essential (release radar)
|
||||
</li>
|
||||
</ol>
|
||||
<ol class="breadcrumbs">
|
||||
<li>
|
||||
Key
|
||||
</li>
|
||||
<li>
|
||||
<img src="bmpNEEDSREVIEW.png"/>
|
||||
Proposed change (needs review)
|
||||
</li>
|
||||
<li>
|
||||
<img src="bmpMERGED.png"/>
|
||||
Merged change
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<div id="chart_div">
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<div id='chart_div'></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=container>
|
||||
<table class="listing sortable" id="speclisting">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><a href="#" class="sortheader" id="sortprio"
|
||||
onclick="ts_resortTable(this); return false;">Priority<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader"
|
||||
onclick="ts_resortTable(this); return false;">Project<img
|
||||
class="sortarrow" src="arrowDown" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader" id="sortmilestone"
|
||||
onclick="ts_resortTable(this); return false;">Milestone<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader"
|
||||
onclick="ts_resortTable(this); return false;">Blueprint<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader" id="sortdelivery"
|
||||
onclick="ts_resortTable(this); return false;">Delivery<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader"
|
||||
onclick="ts_resortTable(this); return false;">Assignee<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<table class="listing sortable" id="speclisting">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<a class="sortheader" href="#" id="sortprio" onclick="ts_resortTable(this); return false;">
|
||||
Priority
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" onclick="ts_resortTable(this); return false;">
|
||||
Project
|
||||
<img class="sortarrow" height="6" src="arrowDown" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" id="sortmilestone" onclick="ts_resortTable(this); return false;">
|
||||
Milestone
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" onclick="ts_resortTable(this); return false;">
|
||||
Blueprint
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" id="sortdelivery" onclick="ts_resortTable(this); return false;">
|
||||
Delivery
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" onclick="ts_resortTable(this); return false;">
|
||||
Assignee
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% macro render_bp(bp) -%}
|
||||
<tr>
|
||||
<td>
|
||||
<span class="sortkey">{{ bp.priorityindex }}</span>
|
||||
<span class="specpriority{{ bp.priority|upper }}">{{ bp.priority }}</span>
|
||||
{% if bp.priority == 'Undefined' %}<img src="error.png" title="Priority for blueprint should be defined">{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://blueprints.launchpad.net/{{bp.pname}}/{{series}}">{{bp.pname}}</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="sortkey">{{bp.milestonedate}}</span>
|
||||
<a href="{{bp.milestonelink}}">{{bp.milestonename}}</a>
|
||||
{% if not bp.milestonename %} <img src="alert.png" title="Milestone target should be set">{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://blueprints.launchpad.net/{{bp.pname}}/+spec/{{bp.name}}">{{bp.name}}</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="sortkey">{{bp.implementationindex}}</span>
|
||||
<span class="specdelivery{{bp.implementation|replace(' ','')|upper}}">{{bp.implementation}}</span>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="sortkey">
|
||||
{{ bp.priorityindex }}
|
||||
</span>
|
||||
<span class="specpriority{{ bp.priority|upper }}">
|
||||
{{ bp.priority }}
|
||||
</span>
|
||||
{% if bp.priority == 'Undefined' %}
|
||||
<img src="error.png" title="Priority for blueprint should be defined"/>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://blueprints.launchpad.net/{{bp.pname}}/{{series}}">
|
||||
{{bp.pname}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="sortkey">
|
||||
{{bp.milestonedate}}
|
||||
</span>
|
||||
<a href="{{bp.milestonelink}}">
|
||||
{{bp.milestonename}}
|
||||
</a>
|
||||
{% if not bp.milestonename %}
|
||||
<img src="alert.png" title="Milestone target should be set"/>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://blueprints.launchpad.net/{{bp.pname}}/+spec/{{bp.name}}">
|
||||
{{bp.name}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="sortkey">
|
||||
{{bp.implementationindex}}
|
||||
</span>
|
||||
<span class="specdelivery{{bp.implementation|replace(' ','')|upper}}">
|
||||
{{bp.implementation}}
|
||||
</span>
|
||||
{% for review in bp.reviews %}
|
||||
<a href="{{review.url}}" title="{{review.subject}}"><img src="bmp{{review.image}}.png"></a>
|
||||
<a href="{{review.url}}" title="{{review.subject}}">
|
||||
<img src="bmp{{review.image}}.png"/>
|
||||
</a>
|
||||
{% endfor %}
|
||||
{% if bp.impl_error %}<img src="error.png" title="{{bp.impl_error}}-">
|
||||
{% if bp.impl_error %}
|
||||
<img src="error.png" title="{{bp.impl_error}}-"/>
|
||||
{% endif %}
|
||||
{% if bp.impl_warn %}
|
||||
<img src="alert.png" title="{{bp.impl_warn}}-"/>
|
||||
{% endif %}
|
||||
{% if bp.impl_warn %}<img src="alert.png" title="{{bp.impl_warn}}-">
|
||||
</td>
|
||||
<td>
|
||||
<span>
|
||||
<a href="https://launchpad.net/~{{bp.assigneename}}">
|
||||
{{bp.assigneedisplay}}
|
||||
</a>
|
||||
{% if bp.assignee_error %}
|
||||
<img src="error.png" title="{{bp.assignee_error}}-"/>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<span><a href="https://launchpad.net/~{{bp.assigneename}}">{{bp.assigneedisplay}}</a>
|
||||
{% if bp.assignee_error %}<img src="error.png" title="{{bp.assignee_error}}-">
|
||||
{% if bp.assignee_warn %}
|
||||
<img src="alert.png" title="{{bp.assignee_warn}}-"/>
|
||||
{% endif %}
|
||||
{% if bp.assignee_warn %}<img src="alert.png" title="{{bp.assignee_warn}}-">
|
||||
{% endif %}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
{%- endmacro %}
|
||||
{% for bp in activebps %}{{ render_bp(bp) }}{% endfor %}
|
||||
</tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
// Sort by default by priority, then delivery
|
||||
|
@ -141,39 +220,63 @@
|
|||
ts_resortTable(document.getElementById("sortprio"))
|
||||
ts_resortTable(document.getElementById("sortmilestone"))
|
||||
</script>
|
||||
</div>
|
||||
<div class="container">
|
||||
<p> </p>
|
||||
<h2>Past milestones</h2>
|
||||
<ol class="breadcrumbs">
|
||||
<li>{{ pastbps|length }} completed blueprints</li>
|
||||
</ol>
|
||||
<table class="listing sortable" id="speclisting">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><a href="#" class="sortheader" id="sortBprio"
|
||||
onclick="ts_resortTable(this); return false;">Priority<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader"
|
||||
onclick="ts_resortTable(this); return false;">Project<img
|
||||
class="sortarrow" src="arrowDown" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader" id="sortBmilestone"
|
||||
onclick="ts_resortTable(this); return false;">Milestone<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader"
|
||||
onclick="ts_resortTable(this); return false;">Blueprint<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader" id="sortBdelivery"
|
||||
onclick="ts_resortTable(this); return false;">Delivery<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
<th><a href="#" class="sortheader"
|
||||
onclick="ts_resortTable(this); return false;">Assignee<img
|
||||
class="sortarrow" src="arrowBlank" height="6" width="9"></a></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for bp in pastbps %}{{ render_bp(bp) }}{% endfor %}
|
||||
</tbody>
|
||||
</div>
|
||||
<div class="container">
|
||||
<p>
|
||||
&nbsp
|
||||
</p>
|
||||
<h2>
|
||||
Past milestones
|
||||
</h2>
|
||||
<ol class="breadcrumbs">
|
||||
<li>
|
||||
{{ pastbps|length }} completed blueprints
|
||||
</li>
|
||||
</ol>
|
||||
<table class="listing sortable" id="speclisting">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<a class="sortheader" href="#" id="sortBprio" onclick="ts_resortTable(this); return false;">
|
||||
Priority
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" onclick="ts_resortTable(this); return false;">
|
||||
Project
|
||||
<img class="sortarrow" height="6" src="arrowDown" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" id="sortBmilestone" onclick="ts_resortTable(this); return false;">
|
||||
Milestone
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" onclick="ts_resortTable(this); return false;">
|
||||
Blueprint
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" id="sortBdelivery" onclick="ts_resortTable(this); return false;">
|
||||
Delivery
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a class="sortheader" href="#" onclick="ts_resortTable(this); return false;">
|
||||
Assignee
|
||||
<img class="sortarrow" height="6" src="arrowBlank" width="9"/>
|
||||
</a>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for bp in pastbps %}{{ render_bp(bp) }}{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
// Sort by default by priority, then delivery
|
||||
|
@ -181,6 +284,9 @@
|
|||
ts_resortTable(document.getElementById("sortBprio"))
|
||||
ts_resortTable(document.getElementById("sortBmilestone"))
|
||||
</script>
|
||||
</div>
|
||||
<script type="text/javascript">footer();</script>
|
||||
</body></html>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
footer();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
Loading…
Reference in New Issue