<!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>
