<!DOCTYPE HTML>
<html>
  <head>
    <title>Packages - Go Dashboard</title>
    <link rel="stylesheet" type="text/css" href="static/style.css">
  </head>

  <body>
    <ul class="menu">
      <li><a href="/">Build Status</a></li>
      <li>Packages</li>
      <li><a href="/project">Projects</a></li>
<!--      <li><a href="/benchmarks">Benchmarks</a></li> -->
      <li><a href="http://golang.org/">golang.org</a></li>
    </ul>

    <h1>Go Dashboard</h1>
    
    <p>
    Packages listed on this page are written by third parties and 
    may or may not build or be safe to use.
    </p>
    
    <h2>Recently Installed Packages</h2>
    <table class="alternate" cellpadding="0" cellspacing="0">
      <tr><th>last install</th><th>count</th><th>path</th><th>project</th></tr>
      {% for r in by_time %}
        <tr>
          <td class="time">{{r.last_install|date:"Y-M-d H:i"}}</td>
          <td class="count">{{r.count}}</td>
          <td class="path"><a href="{{r.web_url}}">{{r.path}}</a></td>
	  <td class="project">
	  {% for p in r.project_set %}
		<a href="{{p.web_url}}">{{p.name}}</a> - {{p.descr}}
	  {% endfor %}
	  </td>
        </tr>
      {% endfor %}
    </table>

    <h2>Most Installed Packages</h2>
    <table class="alternate" cellpadding="0" cellspacing="0">
      <tr><th>last install</th><th>count</th><th>path</th><th>project</th></tr>
      {% for r in by_count %}
        <tr>
          <td class="time">{{r.last_install|date:"Y-M-d H:i"}}</td>
          <td class="count">{{r.count}}</td>
          <td class="path"><a href="{{r.web_url}}">{{r.path}}</a></td>
	  <td class="project">
	  {% for p in r.project_set %}
		<a href="{{p.web_url}}">{{p.name}}</a> - {{p.descr}}
	  {% endfor %}
	  </td>
        </tr>
      {% endfor %}
    </table>
  </body>
</html>
