{%extends "changes_base.html"%}
{%block title1%}Unclaimed changes -{%endblock%}

{%block body%}

<script language="JavaScript" type="text/javascript"><!--
function keyPressIntermediary(evt) {
  return M_dashboardKeyPress(evt);
}
document.onkeypress = keyPressIntermediary;
-->
</script>


<h1>Unclaimed changes</h1>
<table class="change-list">
  
{%include "change_heading.html"%}

{% if not projects %}
<tr>
  <td colspan="8">
    <span class="disabled">(None)</span>
  </td>
</tr>
{% endif %}

{% for project in projects %}
<tr>
  <th colspan="8" class="header-title">Project: {{project.name}}</th>
</tr>

{%if not project.changes%}
  <tr>
    <td colspan="8">
      <span class="disabled">(None)</span>
    </td>
  </tr>
{%else%}
  {%for change in project.changes%}
    {%include "change_row.html"%}
  {%endfor%}
{%endif%}

{%endfor%}

</table>

{%endblock%}
