{% extends "baseprojectpage.html" %}

{% load static %}
{% load projecttags %}
{% load humanize %}


{% block projectinfomain %}
      <!-- begin content -->

          <div class="row-fluid">

            <!-- end left sidebar container -->
            <!-- Begin right container -->
            <div class="span10">
              <div class="page-header">
                <h1>
 <span data-toggle="tooltip" {%if buildrequest.brtarget_set.all.count > 1%}title="Targets: {%for target in buildrequest.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{buildrequest.brtarget_set.all.0.target}} {%if buildrequest.brtarget_set.all.count > 1%}(+ {{buildrequest.brtarget_set.all.count|add:"-1"}}){%endif%} {{buildrequest.get_machine}} </span>

        </h1>
              </div>
              <div class="alert alert-error">
                <p class="lead">
                  <strong>Failed</strong>
                    on {{ buildrequest.updated|date:'d/m/y H:i' }}
            with

                                    <i class="icon-minus-sign error" style="margin-left:6px;"></i>
                  <strong><a class="error accordion-toggle toggle-errors" href="#errors">
                        {{buildrequest.brerror_set.all.count}} error{{buildrequest.brerror_set.all.count|pluralize}}
              </a></strong>
                  <span class="pull-right">Build time: {{buildrequest.get_duration|sectohms}}</span>
                </p>
              </div>

              <div class="accordion" id="errors">
                <div class="accordion-group">
                  <div class="accordion-heading">
                    <a class="accordion-toggle error toggle-errors">
                      <h2>
                        <i class="icon-minus-sign"></i>
                        {{buildrequest.brerror_set.all.count}} error{{buildrequest.brerror_set.all.count|pluralize}}
                      </h2>
                    </a>
                  </div>
                  <div class="accordion-body collapse in" id="collapse-errors">
                    <div class="accordion-inner">
                      <div class="span10">
               {% for error in buildrequest.brerror_set.all %}
                        <div class="alert alert-error">
                          ERROR: <div class="air well"><pre>{{error.errmsg}}</pre></div>
                        </div>
                      {% endfor %}
                      </div>
                    </div>
                  </div>

                </div>
              </div>
            </div>
          </div> <!-- end of row-fluid -->


{%endblock%}
