maintopics-table.html 7.11 KB
{% autoescape %}

<!DOCTYPE html>
<html lang="pt">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta name="author" content="Miguel Barão">
  <link rel="icon" href="/static/favicon.ico">

  {% include include-libs.html %}
  
  <link rel="stylesheet" href="{{static_url('css/maintopics.css')}}">
  <script defer src="{{static_url('js/maintopics.js')}}"></script>

  <title>{{appname}}</title>
</head>
<!-- ===================================================================== -->
<body>
<nav class="navbar navbar-expand-sm navbar-dark bg-secondary fixed-top shadow">
  <div class="container-fluid">
    <img src="{{static_url('logo_horizontal.png')}}" height="48" width="120" class="navbar-brand" alt="UEvora">
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarText">
      <ul class="navbar-nav">
        <li class="nav-item"><a class="nav-link" href="/courses">Cursos</a></li>
        <li class="nav-item"><a class="nav-link active" aria-current="page" href="#">Tópicos</a></li>
        <li class="nav-item"><a class="nav-link" href="/rankings?course={{course_id}}">Classificação</a></li>
      </ul>
      <ul class="navbar-nav ms-auto">
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            <i class="bi bi-person-circle"></i>&nbsp;
            <span id="name">{{ escape(name) }}</span>
            <span class="caret"></span>
          </a>
          <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
            <li><a class="dropdown-item" data-bs-toggle="modal" data-bs-target="#password_modal">Mudar Password</a></li>
            <li><hr class="dropdown-divider"></li>
            <li><a class="dropdown-item" href="/logout">Sair</a></li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</nav>

<!-- === Change Password Modal =========================================== -->
<div id="password_modal" class="modal fade" tabindex="-1" aria-labelledby="password_modal" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <!-- header -->
      <div class="modal-header">
        <h5 class="modal-title">Alterar Password</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <!-- body -->
      <div class="modal-body">
        <div class="control-group">
          <label for="new_password" class="control-label">Introduza a nova password:</label>
          <div class="controls">
            <input type="password" id="new_password" name="new_password" autocomplete="new-password">
          </div>
        </div>
      </div>
      <!-- footer -->
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
        <button id="change_password" type="button" class="btn btn-primary" data-bs-dismiss="modal">Alterar</button>
      </div>
      <!-- end -->
    </div>
  </div>
</div>

<!-- ===================================================================== -->
<div class="container">

  <div id="notifications"></div>

  <h1 class="display-6">{{ course['title'] }}</h1>

  <table class="table table-hover">
    <thead>
      <tr>
        <th scope="col"></th>
        <th scope="col">Tópico</th>
        <th scope="col" class="text-center">Estado</th>
      </tr>
    </thead>
    <tbody>
      {% for t in state %}
        <!-- ------------------------------------------------------------- -->
        {% if t['level'] is None %}
          <tr>
            <td scope="row" class="text-muted text-center">
              <h5>
                {% if t['type']=='chapter' %}
                  <i class="bi bi-flag-fill"></i>
                {% elif t['type']=='learn' %}
                  <i class="bi bi-book"></i>
                {% else %}
                  <i class="bi bi-pencil-square"></i>
                {% end %}
              </h5>
            </td>
            <td class="text-muted">
              {% if t['ref'] not in course['goals'] %}
                <span class="text-nowrap" data-toggle="tooltip" data-placement="bottom" title="Este tópico é um pré-requisito">
                  <i class="bi bi-puzzle-fill"></i>
                  {{ t['name'] }}
                </span>
              {% else %}
                {{ t['name'] }}
              {% end %}
            </td>
            <td class="text-center">
              <h5><i class="bi bi-lock-fill text-muted"></i></h5>
            </td>
          </tr>

        {% else %}

          <tr class="clickable-row " data-href="/topic/{{t['ref']}}">
            <td scope="row" class="text-primary text-center">
              <h5>
                {% if t['type']=='chapter' %}
                <span class="text-nowrap" data-toggle="tooltip" data-placement="bottom" title="Fim do capítulo">
                  <i class="bi bi-flag-fill"></i>
                </span>
                {% elif t['type']=='learn' %}
                <span class="text-nowrap" data-toggle="tooltip" data-placement="bottom" title="Texto com matéria">
                  <i class="bi bi-book"></i>
                </span>
                {% else %}
                <span class="text-nowrap" data-toggle="tooltip" data-placement="bottom" title="Exercícios">
                  <i class="bi bi-pencil-square"></i>
                </span>
                {% end %}
              </h5>
            </td>
            <td class="text-primary">
              {% if t['ref'] not in course['goals'] %}
                <span class="text-nowrap" data-toggle="tooltip" data-placement="bottom" title="Este tópico é um pré-requisito">
                  <i class="bi bi-puzzle-fill"></i>
                  {{ t['name'] }}
                </span>
              {% else %}
                {{ t['name'] }}
              {% end %}
            </td>

            <td class="text-center">
              {% if t['level'] < 0.01 %}
                <h5><i class="bi bi-unlock-fill text-success"></i></h5>
              {% elif t['type']=='chapter' %}
                <h5><i class="bi bi-award-fill"></i></h5>
              {% else %}
                <span class="text-nowrap text-warning" data-toggle="tooltip" data-placement="bottom" title="{{round(t['level']*5, 3)}}">
                  <h5>{{ int(t['level']*5+0.25)*'<i class="bi bi-star-fill"></i>' }}{% if int(t['level']*5+0.25) < 5 %}{{'<i class="bi bi-star-half"></i>' if 0.25 <= t['level']*5-int(t['level']*5) < 0.75 else '<i class="bi bi-star"></i>'}}{% end %}{{ (4-int(t['level']*5+0.25))*'<i class="bi bi-star"></i>' }}</h5>
                </span>
              {% end %} <!-- if -->
            </td>
          </tr>
        {% end %} <!-- if level is none -->
        <!-- ------------------------------------------------------------- -->
      {% end %} <!-- for -->
    </tbody>
  </table>
</div>
</body>
</html>