Commit 5316b7d148579cf929f67c058e694c526715c89f

Authored by Miguel Barão
1 parent bcbec429
Exists in master and in 1 other branch dev

Replace font-awesome by bootstrap-icons

Testing needed: prize at the end of topic?
aprendizations/templates/courses.html
@@ -10,9 +10,10 @@ @@ -10,9 +10,10 @@
10 <!-- bootstrap --> 10 <!-- bootstrap -->
11 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> 11 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
12 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script> 12 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
  13 + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css">
13 14
14 <!-- font-awesome --> 15 <!-- font-awesome -->
15 - <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"> 16 + <!-- <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"> -->
16 17
17 <link rel="stylesheet" href="{{static_url('css/maintopics.css')}}"> 18 <link rel="stylesheet" href="{{static_url('css/maintopics.css')}}">
18 <link rel="stylesheet" href="{{static_url('css/sticky-footer-navbar.css')}}"> 19 <link rel="stylesheet" href="{{static_url('css/sticky-footer-navbar.css')}}">
@@ -43,7 +44,8 @@ @@ -43,7 +44,8 @@
43 <ul class="navbar-nav ms-auto"> 44 <ul class="navbar-nav ms-auto">
44 <li class="nav-item dropdown"> 45 <li class="nav-item dropdown">
45 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> 46 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
46 - <i class="fas fa-user-graduate" aria-hidden="true"></i> 47 + <i class="bi bi-person-circle"></i>
  48 + <!-- <i class="fas fa-user-graduate" aria-hidden="true"></i> -->
47 &nbsp; 49 &nbsp;
48 <span id="name">{{ escape(name) }}</span> 50 <span id="name">{{ escape(name) }}</span>
49 <span class="caret"></span> 51 <span class="caret"></span>
aprendizations/templates/login.html
@@ -6,8 +6,8 @@ @@ -6,8 +6,8 @@
6 <meta name="author" content="Miguel Barão"> 6 <meta name="author" content="Miguel Barão">
7 7
8 <!-- Bootstrap core CSS --> 8 <!-- Bootstrap core CSS -->
9 - <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">  
10 - <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script> 9 + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
  10 + <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
11 11
12 <style> 12 <style>
13 .bd-placeholder-img { 13 .bd-placeholder-img {
aprendizations/templates/maintopics-table.html
@@ -14,9 +14,10 @@ @@ -14,9 +14,10 @@
14 <!-- bootstrap --> 14 <!-- bootstrap -->
15 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> 15 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
16 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script> 16 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
  17 + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css">
17 18
18 <!-- font-awesome --> 19 <!-- font-awesome -->
19 - <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"> 20 + <!-- <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"> -->
20 21
21 <link rel="stylesheet" href="{{static_url('css/maintopics.css')}}"> 22 <link rel="stylesheet" href="{{static_url('css/maintopics.css')}}">
22 <script defer src="{{static_url('js/maintopics.js')}}"></script> 23 <script defer src="{{static_url('js/maintopics.js')}}"></script>
@@ -41,7 +42,8 @@ @@ -41,7 +42,8 @@
41 <ul class="navbar-nav ms-auto"> 42 <ul class="navbar-nav ms-auto">
42 <li class="nav-item dropdown"> 43 <li class="nav-item dropdown">
43 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> 44 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
44 - <i class="fas fa-user-graduate" aria-hidden="true"></i> 45 + <!-- <i class="fas fa-user-graduate" aria-hidden="true"></i> -->
  46 + <i class="bi bi-person-circle"></i>
45 &nbsp; 47 &nbsp;
46 <span id="name">{{ escape(name) }}</span> 48 <span id="name">{{ escape(name) }}</span>
47 <span class="caret"></span> 49 <span class="caret"></span>
@@ -107,17 +109,26 @@ @@ -107,17 +109,26 @@
107 <tr> 109 <tr>
108 <th scope="row" class="text-muted text-center"> 110 <th scope="row" class="text-muted text-center">
109 {% if t['type']=='chapter' %} 111 {% if t['type']=='chapter' %}
110 - <i class="fas fa-flag"></i> 112 + <!-- <i class="fas fa-flag"></i> -->
  113 + <i class="bi bi-flag-fill"></i>
111 {% elif t['type']=='learn' %} 114 {% elif t['type']=='learn' %}
112 - <i class="fas fa-book"></i>&nbsp; 115 + <!-- <i class="fas fa-book"></i>&nbsp; -->
  116 + <!-- <i class="bi bi-book-fill"></i>&nbsp; -->
  117 + <h5>
  118 + <i class="bi bi-book"></i>&nbsp;
  119 + </h5>
  120 +
113 {% else %} 121 {% else %}
114 <i class="fas fa-pencil-alt"></i>&nbsp; 122 <i class="fas fa-pencil-alt"></i>&nbsp;
  123 + <i class="bi bi-pencil-fill"></i>&nbsp;
  124 + <i class="bi bi-pencil"></i>&nbsp;
115 {% end %} 125 {% end %}
116 </th> 126 </th>
117 <td> 127 <td>
118 <div class="text-muted"> 128 <div class="text-muted">
119 {% if t['ref'] not in course['goals'] %} 129 {% if t['ref'] not in course['goals'] %}
120 - <i class="fas fa-puzzle-piece"></i> 130 + <!-- <i class="fas fa-puzzle-piece"></i> -->
  131 + <i class="bi bi-puzzle-fill"></i>
121 {% end %} 132 {% end %}
122 133
123 134
@@ -125,7 +136,8 @@ @@ -125,7 +136,8 @@
125 </div> 136 </div>
126 </td> 137 </td>
127 <td class="text-center"> 138 <td class="text-center">
128 - <i class="fas fa-lock text-muted"></i> 139 + <!-- <i class="fas fa-lock text-muted"></i> -->
  140 + <i class="bi bi-lock-fill text-muted"></i>
129 </td> 141 </td>
130 </tr> 142 </tr>
131 143
@@ -134,16 +146,30 @@ @@ -134,16 +146,30 @@
134 <tr class="clickable-row " data-href="/topic/{{t['ref']}}"> 146 <tr class="clickable-row " data-href="/topic/{{t['ref']}}">
135 <th scope="row" class="text-primary text-center"> 147 <th scope="row" class="text-primary text-center">
136 {% if t['type']=='chapter' %} 148 {% if t['type']=='chapter' %}
137 - <i class="fas fa-flag-checkered"></i>&nbsp; 149 + <span class="text-nowrap" data-toggle="tooltip" data-placement="bottom" title="Fim do capítulo">
  150 + <!-- <i class="fas fa-flag-checkered"></i>&nbsp; -->
  151 + <i class="bi bi-flag-fill"></i>&nbsp;
  152 + </span>
138 {% elif t['type']=='learn' %} 153 {% elif t['type']=='learn' %}
139 - <i class="fas fa-book"></i>&nbsp; 154 + <span class="text-nowrap" data-toggle="tooltip" data-placement="bottom" title="Texto com matéria">
  155 + <!-- <i class="fas fa-book"></i>&nbsp; -->
  156 + <!-- <i class="bi bi-book-fill"></i>&nbsp; -->
  157 + <i class="bi bi-book"></i>&nbsp;
  158 + </span>
140 {% else %} 159 {% else %}
141 - <i class="fas fa-pencil-alt"></i>&nbsp; 160 + <span class="text-nowrap" data-toggle="tooltip" data-placement="bottom" title="Exercícios">
  161 + <!-- <i class="fas fa-pencil-alt"></i>&nbsp; -->
  162 + <!-- <i class="bi bi-pencil-fill"></i>&nbsp; -->
  163 + <i class="bi bi-pencil"></i>&nbsp;
  164 + </span>
142 {% end %} 165 {% end %}
143 </th> 166 </th>
144 <td class="text-primary"> 167 <td class="text-primary">
145 {% if t['ref'] not in course['goals'] %} 168 {% if t['ref'] not in course['goals'] %}
146 - <i class="fas fa-puzzle-piece"></i> 169 + <span class="text-nowrap" data-toggle="tooltip" data-placement="bottom" title="Pré-requisito para este curso">
  170 + <!-- <i class="fas fa-puzzle-piece"></i> -->
  171 + <i class="bi bi-puzzle-fill"></i>
  172 + </span>
147 {% end %} 173 {% end %}
148 174
149 {{ t['name'] }} 175 {{ t['name'] }}
@@ -151,12 +177,16 @@ @@ -151,12 +177,16 @@
151 177
152 <td class="text-center"> 178 <td class="text-center">
153 {% if t['level'] < 0.01 %} 179 {% if t['level'] < 0.01 %}
154 - <i class="fas fa-lock-open text-success"></i> 180 + <!-- <i class="fas fa-lock-open text-success"></i> -->
  181 + <i class="bi bi-unlock-fill text-success"></i>
  182 +
155 {% elif t['type']=='chapter' %} 183 {% elif t['type']=='chapter' %}
156 - <h5><i class="fas fa-award text-warning"></i></h5> 184 + <!-- <h5><i class="fas fa-award text-warning"></i></h5> -->
  185 + <i class="bi bi-award-fill"></i>
  186 +
157 {% else %} 187 {% else %}
158 - <span class="text-nowrap text-warning" data-toggle="tooltip" data-placement="bottom" title="{{round(t['level']*5, 2)}}">  
159 - {{int(t['level']*5+0.25)*'<i class="fas fa-star"></i>'}}{% if int(t['level']*5+0.25) < 5 %}{{'<i class="fas fa-star-half-alt"></i>' if 0.25 <= t['level']*5-int(t['level']*5) < 0.75 else '<i class="far fa-star"></i>'}}{% end %}{{(4-int(t['level']*5+0.25))*'<i class="far fa-star"></i>' }} 188 + <span class="text-nowrap text-warning" data-toggle="tooltip" data-placement="bottom" title="{{round(t['level']*5, 3)}}">
  189 + {{ 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>' }}
160 </span> 190 </span>
161 {% end %} <!-- if --> 191 {% end %} <!-- if -->
162 </td> 192 </td>
aprendizations/templates/rankings.html
@@ -10,9 +10,10 @@ @@ -10,9 +10,10 @@
10 <!-- bootstrap --> 10 <!-- bootstrap -->
11 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> 11 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
12 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script> 12 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
  13 + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css">
13 14
14 <!-- font-awesome --> 15 <!-- font-awesome -->
15 - <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"> 16 + <!-- <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"> -->
16 17
17 <link rel="stylesheet" href="{{static_url('css/maintopics.css')}}"> 18 <link rel="stylesheet" href="{{static_url('css/maintopics.css')}}">
18 <script defer src="{{static_url('js/maintopics.js')}}"></script> 19 <script defer src="{{static_url('js/maintopics.js')}}"></script>
@@ -37,7 +38,8 @@ @@ -37,7 +38,8 @@
37 <ul class="navbar-nav ms-auto"> 38 <ul class="navbar-nav ms-auto">
38 <li class="nav-item dropdown"> 39 <li class="nav-item dropdown">
39 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> 40 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
40 - <i class="fas fa-user-graduate" aria-hidden="true"></i> 41 + <!-- <i class="fas fa-user-graduate" aria-hidden="true"></i> -->
  42 + <i class="bi bi-person-circle"></i>
41 &nbsp; 43 &nbsp;
42 <span id="name">{{ escape(name) }}</span> 44 <span id="name">{{ escape(name) }}</span>
43 <span class="caret"></span> 45 <span class="caret"></span>
@@ -60,7 +62,7 @@ @@ -60,7 +62,7 @@
60 <thead> 62 <thead>
61 <tr> 63 <tr>
62 <th scope="col" class="text-center">Posição</th> 64 <th scope="col" class="text-center">Posição</th>
63 - <th scope="col">Aluno</th> 65 + <th scope="col">Nome</th>
64 <th scope="col">Progresso</th> 66 <th scope="col">Progresso</th>
65 </tr> 67 </tr>
66 </thead> 68 </thead>
@@ -69,7 +71,9 @@ @@ -69,7 +71,9 @@
69 <tr class="{{ 'table-secondary' if r[0] == uid else '' }}"> 71 <tr class="{{ 'table-secondary' if r[0] == uid else '' }}">
70 <td class="text-center"> <!-- rank --> 72 <td class="text-center"> <!-- rank -->
71 <strong> 73 <strong>
72 - {{ '<i class="fas fa-crown fa-lg text-warning"></i>' if i==0 else i+1 }} 74 + <!-- {{ '<i class="fas fa-crown fa-lg text-warning"></i>' if i==0 else i+1 }} -->
  75 + <!-- {{ '<h3><i class="bi bi-mortarboard-fill text-warning"></i></h3>' if i==0 else i+1 }} -->
  76 + {{ '<h3><i class="bi bi-trophy-fill text-warning"></i></h3>' if i==0 else i+1 }}
73 </strong> 77 </strong>
74 </td> 78 </td>
75 <td> <!-- student name --> 79 <td> <!-- student name -->
aprendizations/templates/topic.html
@@ -12,9 +12,10 @@ @@ -12,9 +12,10 @@
12 <!-- bootstrap --> 12 <!-- bootstrap -->
13 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> 13 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
14 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script> 14 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
  15 + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css">
15 16
16 <!-- font-awesome --> 17 <!-- font-awesome -->
17 - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" /> 18 + <!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" /> -->
18 19
19 <!-- mathjax --> 20 <!-- mathjax -->
20 <script> 21 <script>
demo/courses.yaml
@@ -15,6 +15,7 @@ courses: @@ -15,6 +15,7 @@ courses:
15 description: | 15 description: |
16 Adição, multiplicação e números primos. 16 Adição, multiplicação e números primos.
17 goals: 17 goals:
  18 + - math
18 - math/addition 19 - math/addition
19 - math/multiplication 20 - math/multiplication
20 - math/prime-numbers 21 - math/prime-numbers
demo/math.yaml
@@ -25,7 +25,23 @@ topics: @@ -25,7 +25,23 @@ topics:
25 deps: 25 deps:
26 - math/addition 26 - math/addition
27 27
  28 + math/learn-prime-numbers:
  29 + name: O que são números primos?
  30 + type: learn
  31 + file: learn.yaml
  32 + deps:
  33 + - math/multiplication
  34 +
28 math/prime-numbers: 35 math/prime-numbers:
29 name: Números primos 36 name: Números primos
30 deps: 37 deps:
  38 + - math/learn-prime-numbers
  39 +
  40 + math:
  41 + name: Números e operações aritméticas
  42 + type: chapter
  43 + deps:
  44 + - math/addition
31 - math/multiplication 45 - math/multiplication
  46 + - math/learn-prime-numbers
  47 + - math/prime-numbers