unb-mds/2023-2-Squad06

View on GitHub
templates/contests/index.html

Summary

Maintainability
Test Coverage
{% extends "base.html" %}

{% block title %}Contests{% endblock title %}

{% load humanize %}

{% block content %}
  <div>
    <h3>Upcoming Contests</h3>

    <div class="gap-3" style="display: grid;">
      {% for contest in contests %}
        {% if contest.status in valid_statuses %}
          <div class="g-col-6 card">
            <div class="card-header">
              <a href="{% url 'contests:detail' contest.id %}">
                {{ contest }}
              </a>
              <span
                class="text-muted align-middle"
                style="font-size: 0.90rem;"
              >
                Posted at: {{ contest.created_at }}
              </span>
              {% if contest.status == "Pending" %}
                <span class="badge bg-secondary float-end mt-1">
                  {{ contest.status }}
                </span>
              {% elif contest.status == "Running" %}
                <span class="badge bg-primary float-end mt-1">
                  {{ contest.status }}
                </span>
              {% endif %}
            </div>
            <div class="card-body">
              <p>{{ contest.description }}</p>
              <ul>
                <li>
                  Starting at {{ contest.start_time }}
                </li>
                <li>
                  Ending at: {{ contest.end_time }}
                </li>
                <li>
                  Duration: {{ contest.start_time|timesince:contest.end_time }}
                </li>
                {% if contest.tasks.all.count > 0 %}
                  <li>
                    {{ contest.tasks.all.count }}
                    task{{ contest.tasks.all.count|pluralize:"s" }}
                  </li>
                {% endif %}
              </ul>
            </div>
          </div>
        {% endif %}
      {% endfor %}
    </div>
  </div>

  <div class="mt-4">
    <h3>Past Contests</h3>

    <div class="gap-3" style="display: grid;">
      {% for contest in contests %}
        {% if contest.status not in valid_statuses %}
          <div class="g-col-6 card">
            <div class="card-header">
              <a href="{% url 'contests:detail' contest.id %}">
                {{ contest }}
              </a>
              <span
                class="text-muted align-middle"
                style="font-size: 0.90rem;"
              >
                Posted at: {{ contest.created_at }}
              </span>
              {% if contest.status == "Cancelled" %}
              <span class="badge bg-danger float-end mt-1">
                {{ contest.status }}
              </span>
              {% elif contest.status == "Finished" %}
              <span class="badge bg-success float-end mt-1">
                {{ contest.status }}
              </span>
              {% endif %}
            </div>
            <div class="card-body">
              <p>{{ contest.description }}</p>
              <ul>
                <li>
                  Starting at {{ contest.start_time }}
                </li>
                <li>
                  Ending at: {{ contest.end_time }}
                </li>
                <li>
                  Duration: {{ contest.start_time|timesince:contest.end_time }}
                </li>
                {% if contest.tasks.all.count > 0 %}
                  <li>
                    {{ contest.tasks.all.count }}
                    task{{ contest.tasks.all.count|pluralize:"s" }}
                  </li>
                {% endif %}
              </ul>
            </div>
          </div>
        {% endif %}
      {% endfor %}
    </div>
  </div>
  {% endblock content %}