Commit b520c22ee2e2d805b63bb164ef231926c6973870

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

- added sticky-footer to courses with link to bug reports and suggestions

aprendizations/__init__.py
@@ -30,7 +30,7 @@ are progressively uncovered as the students progress. @@ -30,7 +30,7 @@ are progressively uncovered as the students progress.
30 ''' 30 '''
31 31
32 APP_NAME = 'aprendizations' 32 APP_NAME = 'aprendizations'
33 -APP_VERSION = '2019.12.dev2' 33 +APP_VERSION = '2019.12.dev3'
34 APP_DESCRIPTION = __doc__ 34 APP_DESCRIPTION = __doc__
35 35
36 __author__ = 'Miguel Barão' 36 __author__ = 'Miguel Barão'
aprendizations/static/css/sticky-footer-navbar.css 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +/* Sticky footer styles */
  2 +
  3 +html {
  4 + position: relative;
  5 + min-height: 100%;
  6 +}
  7 +
  8 +body {
  9 + margin-bottom: 60px;
  10 +}
  11 +
  12 +.footer {
  13 + position: absolute;
  14 + bottom: 0;
  15 + width: 100%;
  16 + height: 30px; /* Set the fixed height of the footer here */
  17 + line-height: 30px; /* Vertically center the text there */
  18 + background-color: #f5f5f5;
  19 +}
aprendizations/templates/courses.html
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
12 <link rel="stylesheet" href="/static/mdbootstrap/css/bootstrap.min.css"> 12 <link rel="stylesheet" href="/static/mdbootstrap/css/bootstrap.min.css">
13 <link rel="stylesheet" href="/static/mdbootstrap/css/mdb.min.css"> 13 <link rel="stylesheet" href="/static/mdbootstrap/css/mdb.min.css">
14 <link rel="stylesheet" href="/static/css/maintopics.css"> 14 <link rel="stylesheet" href="/static/css/maintopics.css">
  15 + <link rel="stylesheet" href="/static/css/sticky-footer-navbar.css">
15 <!-- Scripts --> 16 <!-- Scripts -->
16 <script defer src="/static/mdbootstrap/js/jquery.min.js"></script> 17 <script defer src="/static/mdbootstrap/js/jquery.min.js"></script>
17 <script defer src="/static/mdbootstrap/js/popper.min.js"></script> 18 <script defer src="/static/mdbootstrap/js/popper.min.js"></script>
@@ -53,8 +54,8 @@ @@ -53,8 +54,8 @@
53 <!-- ===== page ====================================================== --> 54 <!-- ===== page ====================================================== -->
54 <div class="container"> 55 <div class="container">
55 <div id="notifications"></div> 56 <div id="notifications"></div>
56 - <div class="row justify-content-center">  
57 - {% for k,v in courses.items() %} 57 + <div class="row justify-content-left">
  58 + {% for k,v in courses.items() %}
58 <div class="card-deck col-md-4"> 59 <div class="card-deck col-md-4">
59 <a href="/course/{{k}}" class="card mb-3"> 60 <a href="/course/{{k}}" class="card mb-3">
60 <!-- text-dark mb-3" style="width: 18rem;" --> 61 <!-- text-dark mb-3" style="width: 18rem;" -->
@@ -64,10 +65,20 @@ @@ -64,10 +65,20 @@
64 </div> 65 </div>
65 </a> 66 </a>
66 </div> 67 </div>
67 - {% end %} 68 + {% end %} <!-- for -->
68 </div> 69 </div>
69 </div> 70 </div>
70 - <!-- for --> 71 +
  72 + <footer class="footer">
  73 + <div class="container">
  74 + <small class="text-muted">
  75 + <a href="mailto:mjsb@uevora.pt?subject=Encontrei um erro&body=Descreva detalhadamente a situação na qual encontrou o erro. Indique qual o curso, tópico e pergunta. No caso de problemas técnicos indique também qual o seu sistema operativo e browser.">Reportar erro</a>
  76 + &nbsp;/&nbsp;
  77 + <a href="mailto:mjsb@uevora.pt?subject=Sugestões">Enviar sugestões</a>
  78 + </small>
  79 + </div>
  80 + </footer>
  81 +
71 <!-- === Change Password Modal =========================================== --> 82 <!-- === Change Password Modal =========================================== -->
72 <div id="password_modal" class="modal fade" tabindex="-1" role="dialog"> 83 <div id="password_modal" class="modal fade" tabindex="-1" role="dialog">
73 <div class="modal-dialog" role="document"> 84 <div class="modal-dialog" role="document">
aprendizations/templates/topic.html
@@ -71,7 +71,7 @@ @@ -71,7 +71,7 @@
71 </nav> 71 </nav>
72 <!-- ===================================================================== --> 72 <!-- ===================================================================== -->
73 <div class="progress"> 73 <div class="progress">
74 - <div class="progress-bar bg-primary" id="topic_progress" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="min-width: 1em;width: 0%"></div> 74 + <div class="progress-bar bg-warning" id="topic_progress" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="min-width: 1em;width: 0%"></div>
75 </div> 75 </div>
76 <!-- ===================================================================== --> 76 <!-- ===================================================================== -->
77 <!-- main panel with questions --> 77 <!-- main panel with questions -->
package-lock.json
@@ -3,71 +3,19 @@ @@ -3,71 +3,19 @@
3 "lockfileVersion": 1, 3 "lockfileVersion": 1,
4 "dependencies": { 4 "dependencies": {
5 "@fortawesome/fontawesome-free": { 5 "@fortawesome/fontawesome-free": {
6 - "version": "5.11.2",  
7 - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.11.2.tgz",  
8 - "integrity": "sha512-XiUPoS79r1G7PcpnNtq85TJ7inJWe0v+b5oZJZKb0pGHNIV6+UiNeQWiFGmuQ0aj7GEhnD/v9iqxIsjuRKtEnQ==" 6 + "version": "5.12.0",
  7 + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.0.tgz",
  8 + "integrity": "sha512-vKDJUuE2GAdBERaQWmmtsciAMzjwNrROXA5KTGSZvayAsmuTGjam5z6QNqNPCwDfVljLWuov1nEC3mEQf/n6fQ=="
9 }, 9 },
10 "codemirror": { 10 "codemirror": {
11 - "version": "5.49.2",  
12 - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.49.2.tgz",  
13 - "integrity": "sha512-dwJ2HRPHm8w51WB5YTF9J7m6Z5dtkqbU9ntMZ1dqXyFB9IpjoUFDj80ahRVEoVanfIp6pfASJbOlbWdEf8FOzQ=="  
14 - },  
15 - "commander": {  
16 - "version": "3.0.1",  
17 - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.1.tgz",  
18 - "integrity": "sha512-UNgvDd+csKdc9GD4zjtkHKQbT8Aspt2jCBqNSPp53vAS0L1tS9sXB2TCEOPHJ7kt9bN/niWkYj8T3RQSoMXdSQ=="  
19 - },  
20 - "esm": {  
21 - "version": "3.2.25",  
22 - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",  
23 - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA=="  
24 - },  
25 - "mathjax": {  
26 - "version": "3.0.0",  
27 - "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-3.0.0.tgz",  
28 - "integrity": "sha512-z4uLbDHNbs/aRuR6zCcnzwFQuMixkHCcWqgVaommfK/3cA1Ahq7OXemn+m8JwTYcBApSHgcrSbPr9sm3sZFL+A==",  
29 - "requires": {  
30 - "mathjax-full": "git://github.com/mathjax/MathJax-src.git"  
31 - }  
32 - },  
33 - "mathjax-full": {  
34 - "version": "git://github.com/mathjax/MathJax-src.git#0d74266e1820220d33cb6b29d4ca3575b352ac0d",  
35 - "from": "git://github.com/mathjax/MathJax-src.git",  
36 - "requires": {  
37 - "esm": "^3.2.25",  
38 - "mj-context-menu": "^0.2.0",  
39 - "speech-rule-engine": "^3.0.0-beta.6"  
40 - } 11 + "version": "5.50.0",
  12 + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.50.0.tgz",
  13 + "integrity": "sha512-32LAmGcBNhKtJP4WGgkcaCVQDyChAyaWA6jasg778ziZzo3PWBuhpAQIJMO8//Id45RoaLyXjuhcRUBoS8Vg+Q=="
41 }, 14 },
42 "mdbootstrap": { 15 "mdbootstrap": {
43 - "version": "4.10.0",  
44 - "resolved": "https://registry.npmjs.org/mdbootstrap/-/mdbootstrap-4.10.0.tgz",  
45 - "integrity": "sha512-jpDSrAv9BbqHGFCHf9iQts7dWAuJYT3VFmElLkKpD6cGJ5Pcjv5oiTvfKvFGjVsxWsjLtj7Y0Rh135EYejkaeg=="  
46 - },  
47 - "mj-context-menu": {  
48 - "version": "0.2.0",  
49 - "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.2.0.tgz",  
50 - "integrity": "sha512-yJxrWBHCjFZEHsZgfs7m5g9OSCNzsVYadW6f6lX3pgZL67vmodtSW/4zhsYmuDKweXfHs0M1kJge1uQIasWA+g=="  
51 - },  
52 - "speech-rule-engine": {  
53 - "version": "3.0.0-beta.6",  
54 - "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-3.0.0-beta.6.tgz",  
55 - "integrity": "sha512-B7gcT53jAsKpx7WvFYQcyUlFmgS3Wa9KlDy0FY8SOTa+Wz5EqmI0MpCD5/fYm8/2qiCPp8HwZg+H3cBgM+sNVw==",  
56 - "requires": {  
57 - "commander": "*",  
58 - "wicked-good-xpath": "*",  
59 - "xmldom-sre": "^0.1.31"  
60 - }  
61 - },  
62 - "wicked-good-xpath": {  
63 - "version": "1.3.0",  
64 - "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz",  
65 - "integrity": "sha1-gbDpXoZQ5JyUsiKY//hoa1VTz2w="  
66 - },  
67 - "xmldom-sre": {  
68 - "version": "0.1.31",  
69 - "resolved": "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz",  
70 - "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==" 16 + "version": "4.11.0",
  17 + "resolved": "https://registry.npmjs.org/mdbootstrap/-/mdbootstrap-4.11.0.tgz",
  18 + "integrity": "sha512-3yhRRo8UQDqRgeEutSpx9jIECzkyPebOq/oYsG2TLAmXVmujDBb+OoTW6+yZ1MtaQZCu8AF8D1/pM9Y8sLj3uA=="
71 } 19 }
72 } 20 }
73 } 21 }
@@ -2,10 +2,9 @@ @@ -2,10 +2,9 @@
2 "description": "Javascript libraries required to run the server", 2 "description": "Javascript libraries required to run the server",
3 "email": "mjsb@uevora.pt", 3 "email": "mjsb@uevora.pt",
4 "dependencies": { 4 "dependencies": {
5 - "@fortawesome/fontawesome-free": "^5.11.2",  
6 - "codemirror": "^5.49.2",  
7 - "mathjax": "^3",  
8 - "mdbootstrap": "^4.10.0" 5 + "@fortawesome/fontawesome-free": "^5.12.0",
  6 + "codemirror": "^5.50.0",
  7 + "mdbootstrap": "^4.11.0"
9 }, 8 },
10 "private": true 9 "private": true
11 } 10 }