layout.html (4946B) download
1<!DOCTYPE html>
2<html>
3<head>
4 <!-- Required meta tags -->
5 <meta charset="utf-8">
6 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
7
8 <!-- Bootstrap CSS -->
9 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
10
11 <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='main.css') }}">
12
13 {% if title %}
14 <title>Flask Blog - {{ title }}</title>
15 {% else %}
16 <title>Flask Blog</title>
17 {% endif %}
18</head>
19<body>
20 <header class="site-header">
21 <nav class="navbar navbar-expand-md navbar-dark bg-steel fixed-top">
22 <div class="container">
23 <a class="navbar-brand mr-4" href="/">Flask Blog</a>
24 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggle" aria-controls="navbarToggle" aria-expanded="false" aria-label="Toggle navigation">
25 <span class="navbar-toggler-icon"></span>
26 </button>
27 <div class="collapse navbar-collapse" id="navbarToggle">
28 <div class="navbar-nav mr-auto">
29 <a class="nav-item nav-link" href="{{ '/' }}">Home</a>
30 <a class="nav-item nav-link" href="{{ '/' }}">About</a>
31 {% if current_user.type == "teacher" %}
32 <a class="nav-item nav-link" href="{{ url_for('course_overview') }}">Course overview</a>
33 {% endif %}
34 {% if current_user.type == "admin" %}
35 <a class="nav-item nav-link" href="{{ url_for('admin') }}">Admin</a>
36 {% endif %}
37 </div>
38 <!-- Navbar Right Side -->
39 <div class="navbar-nav">
40 {% if current_user.is_authenticated %}
41 <a class="nav-item nav-link" href="{{ url_for('account') }}">Account</a>
42 <a class="nav-item nav-link" href="{{ url_for('logout') }}">Logout</a>
43 {% else %}
44 <a class="nav-item nav-link" href="{{ url_for('login') }}">Login</a>
45 <a class="nav-item nav-link" href="{{ url_for('register') }}">Register</a>
46 {% endif %}
47 </div>
48 </div>
49 </div>
50 </nav>
51 </header>
52 <main role="main" class="container">
53 <div class="row">
54 <div class="col-md-8">
55 {% with messages = get_flashed_messages(with_categories=true) %}
56 {% if messages %}
57 {% for category, message in messages %}
58 <div class="alert alert-{{ category }}">
59 {{ message }}
60 </div>
61 {% endfor %}
62 {% endif %}
63 {% endwith %}
64 {% block content %}{% endblock %}
65 </div>
66 <div class="col-md-4">
67 <div class="content-section">
68 <h3>Our Sidebar</h3>
69 <p class='text-muted'>You can put any information here you'd like.
70 <ul class="list-group">
71 <li class="list-group-item list-group-item-light">Latest Posts</li>
72 <li class="list-group-item list-group-item-light">Announcements</li>
73 <li class="list-group-item list-group-item-light">Calendars</li>
74 <li class="list-group-item list-group-item-light">etc</li>
75 </ul>
76 </p>
77 <table class='calendar'>
78 <tr>
79 {% for d, day in calendar.weekdays %}
80 <th class="{{ 'weekend' if d >= 5 }}">{{ day }}</th>
81 {% endfor %}
82 </tr>
83 {% for row in calendar.rows %}
84 <tr>
85 {% for d, day, lesson in row %}
86 <td class="{{ 'weekend' if d >= 5 }} {{ 'lesson' if lesson }}">
87 {{ day if day }}
88 {% if lesson %}<span class='hover-day'>{{ lesson }}</span>{% endif %}
89 </td>
90 {% endfor %}
91 </tr>
92 {% endfor %}
93 </table>
94 {{ calendar.nextlesson }}
95 </div>
96 </div>
97 </div>
98 </main>
99
100
101 <!-- Optional JavaScript -->
102 <!-- jQuery first, then Popper.js, then Bootstrap JS -->
103 <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
104 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
105 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
106</body>
107</html>