unb-mds/2023-2-Squad06

View on GitHub
templates/base.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html>

{% load static i18n %}

{% load bootstrap5 %}

{# Load CSS and JavaScript #}
{% bootstrap_css %}
{% bootstrap_javascript %}

{# Display django.contrib.messages as Bootstrap alerts #}
{% bootstrap_messages %}

{% get_current_language as LANGUAGE_CODE %}

<html lang="{{ LANGUAGE_CODE }}">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{% block title %}{% endblock title %} | Virtual Judge</title>

  <style>
    .dropdown-menu {
      transform: translateX(-40%);
    }
  </style>

  {% block head %}{% endblock head %}

  <link
    rel="stylesheet"
    href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css"
    integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq"
    crossorigin="anonymous"
  >
  <script
    defer
    src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js"
    integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz"
    crossorigin="anonymous"
  ></script>
  <script
    defer
    src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js"
    integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI"
    crossorigin="anonymous"
    onload="renderMathInElement(document.body);">
  </script>
</head>
<body class="bg-light">
  <header>
    <nav class="navbar navbar-expand-lg bg-body-tertiary bg-dark">
      <div class="container-fluid">
        <a class="navbar-brand" href="{% url 'home' %}">Virtual Judge</a>
        <button
          class="navbar-toggler"
          type="button"
          data-bs-toggle="collapse"
          data-bs-target="#navbarSupportedContent"
          aria-controls="navbarSupportedContent"
          aria-expanded="false"
          aria-label="Toggle navigation"
        >
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
          <ul class="navbar-nav me-auto mb-2 mb-lg-0">
            <li class="nav-item">
            </li>
            <li class="nav-item">
              <a class="nav-link text-white" href="{% url 'users:ranking' %}">
                Ranking
              </a>
            </li>
            <li class="nav-item">
              <a class="nav-link text-white" href="{% url 'submissions:list' %}">
                Submissions
              </a>
            </li>
          </ul>
          {% if request.user.is_authenticated %}
            <div class="dropdown">
              <a
                class="dropdown-toggle nav-link text-white"
                href="#"
                role="button"
                data-bs-toggle="dropdown"
                aria-expanded="false"
              >
                {{ request.user.username }}
              </a>
              <ul class="dropdown-menu">
                {% if request.user.is_staff %}
                  <li>
                    <a href="{% url 'admin:index' %}" class="dropdown-item">
                      Admin
                    </a>
                  </li>
                {% endif %}
                <li><a href="{% url 'users:profile' user.username %}" class="dropdown-item">Your profile</a></li>
                <li><hr class="dropdown-divider"></li>
                <li>
                  <a href="{% url 'logout' %}" class="dropdown-item">
                    Sign out
                  </a>
                </li>
              </ul>
            </div>
          {% else %}
            <a href="{% url 'users:register' %}" class="nav-link text-white">Register</a>
            <a href="{% url 'login' %}" class="nav-link text-white">Sign in</a>
          {% endif %}
        </div>
      </div>
    </nav>
  </header>
  <main class="container mt-5" style="max-width: 720px;">
    {% block content %}{% endblock content %}
  </main>
  <footer class="mt-5"></footer>
</body>
</html>