Skip to content

Commit 0b4f840

Browse files
authored
Merge pull request #314 – Various fixes
#314
2 parents a7685d8 + dfe1cec commit 0b4f840

7 files changed

Lines changed: 77 additions & 41 deletions

File tree

naucse/models.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,11 @@ def material(root, path, info):
183183
page = lesson.pages[info.get("page", "index")]
184184
return PageMaterial(root, path, page, info.get("type", "lesson"), info.get("title"))
185185
elif "url" in info:
186-
return UrlMaterial(root, path, info["url"], info["title"], info.get("type"))
186+
url = info["url"]
187+
if url:
188+
return UrlMaterial(root, path, url, info["title"], info.get("type"))
189+
else:
190+
return SpecialMaterial(root, path, info["title"], info.get("type"))
187191
else:
188192
raise ValueError("Unknown material type: {}".format(info))
189193

@@ -245,6 +249,17 @@ def __init__(self, root, path, url, title, url_type):
245249
self.title = title
246250

247251

252+
class SpecialMaterial(Material):
253+
prev = None
254+
next = None
255+
type = "special"
256+
has_navigation = False
257+
258+
def __init__(self, root, path, title, url_type):
259+
super().__init__(root, path, url_type)
260+
self.title = title
261+
262+
248263
def merge_dict(base, patch):
249264
"""Recursively merge `patch` into `base`
250265

naucse/templates/_material_macros.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
{{- bytesize_icon('eye') -}}
88
{%- elif material.url_type == 'homework' -%}
99
{{- bytesize_icon('edit') -}}
10+
{%- elif material.url_type == 'special' -%}
11+
{{- bytesize_icon('flag') -}}
1012
{%- else %}
1113
{{- bytesize_icon('link') -}}
1214
{%- endif -%}
@@ -19,10 +21,14 @@
1921
{% else %}
2022
{% set url=material.url %}
2123
{% endif %}
24+
{% if url is defined %}
2225
<a href="{{ url }}">
26+
{% endif %}
2327
{{- icon_for_material(material) -}}
2428
{{- material.title -}}
29+
{% if url is defined %}
2530
</a>
31+
{% endif %}
2632
</li>
2733
{%- endmacro -%}
2834

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{% macro prevnext() %}
2+
<div class="row prev-next">
3+
{{ caller() }}
4+
</div>
5+
{% endmacro %}
6+
7+
{% macro prev(url, title) %}
8+
<div class="col text-left">
9+
<a href="{{ url }}">← <span class="d-none d-sm-inline">{{ title }}</span></a>
10+
</div>
11+
{% endmacro %}
12+
13+
{% macro up(url, title) %}
14+
<div class="col text-left">
15+
<a href="{{ url }}">↑ <span class="d-none d-sm-inline">{{ title }}</span></a>
16+
</div>
17+
{% endmacro %}
18+
19+
{% macro next(url, title) %}
20+
<div class="col text-right">
21+
<a href="{{ url }}"><span class="d-none d-sm-inline">{{ title }}</span> →</a>
22+
</div>
23+
{% endmacro %}

naucse/templates/backpage.html

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{% extends "_base.html" %}
22
{% from "_material_macros.html" import material_list with context %}
3+
{% import "_navigation_macros.html" as nav %}
34

45
{% block content %}
56

@@ -35,21 +36,14 @@ <h2>Zajímavé odkazy</h2>
3536
{% endblock %}
3637

3738
<hr class="lesson-end">
38-
<div class="row prev-next">
39-
<div class="col text-left">
40-
<a href="{{ session_url(course.slug, session.slug) }}"><span class="d-none d-sm-block">Lekce: {{ session.title }}</span></a>
41-
</div>
4239

43-
<div class="col text-left">
44-
<a href="{{ course_url(course) }}"><span class="d-none d-sm-block">{{ course.title }}</span></a>
45-
</div>
46-
47-
<div class="col text-right">
40+
{% call nav.prevnext() %}
41+
{{ nav.prev(session_url(course.slug, session.slug), session.title) }}
42+
{{ nav.up(course_url(course), course.title) }}
4843
{% if session.next is defined and session.next != None %}
49-
<a href="{{ session_url(course.slug, session.next.slug) }}"><span class="d-none d-sm-block">Lekce: {{ session.next.title }}</span></a>
44+
{{ nav.next(session_url(course.slug, session.next.slug), session.next.title) }}
5045
{% endif %}
51-
</div>
52-
</div>
46+
{% endcall %}
5347

5448
</div>
5549
</div>

naucse/templates/coverpage.html

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{% extends "_base.html" %}
22
{% from "_material_macros.html" import material_list with context %}
3+
{% import "_navigation_macros.html" as nav %}
34

45
{% block content %}
56

@@ -36,26 +37,24 @@ <h2>Taháky</h2>
3637
{{ material_list(session.materials, filter_type='cheatsheet') }}
3738
{% endif %}
3839

40+
{% if homework_section %}
41+
<h2>Domácí projekty</h2>
42+
{{ material_list(session.materials, filter_type='homework') }}
43+
{% endif %}
44+
3945
{% block coverpage_content %}
4046
{{ content }}
4147
{% endblock %}
4248

4349
<hr class="lesson-end">
44-
<div class="row prev-next">
45-
<div class="col text-left">
50+
51+
{% call nav.prevnext() %}
4652
{% if session.prev is defined and session.prev != None %}
47-
<a href="{{ session_url(course.slug, session.prev.slug) }}"><span class="d-none d-sm-block">Lekce: {{ session.prev.title }}</span></a>
53+
{{ nav.prev(session_url(course.slug, session.slug), session.title) }}
4854
{% endif %}
49-
</div>
50-
51-
<div class="col text-left">
52-
<a href="{{ course_url(course) }}"><span class="d-none d-sm-block">{{ course.title }}</span></a>
53-
</div>
54-
55-
<div class="col text-right">
56-
<a href="{{ session_url(course.slug, session.slug, 'back') }}"><span class="d-none d-sm-block">Závěr lekce</span></a>
57-
</div>
58-
</div>
55+
{{ nav.up(course_url(course), course.title) }}
56+
{{ nav.next(session_url(course.slug, session.slug, 'back'), 'Závěr lekce') }}
57+
{% endcall %}
5958

6059
</div>
6160
</div>

naucse/templates/lesson.html

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{% extends "_base.html" %}
2+
{% import "_navigation_macros.html" as nav %}
23

34
{% block style %}
45
{% if page.css %}
@@ -34,7 +35,7 @@
3435

3536
{% if (prv is defined and prv != None) or (nxt is defined and nxt != None) %}
3637
<hr class="lesson-end">
37-
38+
3839
{% if course is defined and not course.canonical %}
3940
<div class="alert alert-info">
4041
Toto je stránka lekce z kurzu, který probíhá nebo proběhl naživo s instruktorem.
@@ -44,27 +45,20 @@
4445
</div>
4546
{% endif %}
4647

47-
<div class="row prev-next">
48-
<div class="col text-left">
48+
{% call nav.prevnext() %}
4949
{% if prv is defined and prv != None %}
50-
<a href="{{ lesson_url(lesson=prv.page.lesson, page=prv.page.slug) }}"><span class="d-none d-sm-block">{{ prv.title }}</span></a>
50+
{{ nav.prev(lesson_url(lesson=prv.page.lesson, page=prv.page.slug), session.title) }}
5151
{% endif %}
52-
</div>
53-
54-
<div class="col text-center">
5552
{% if session and course is defined %}
56-
<a href="{{ session_url(course.slug, session.slug) }}"><span class="d-none d-sm-block">Lekce: {{ session.title }}</span></a>
53+
{{ nav.up(session_url(course.slug, session.slug), 'Lekce: ' + session.title ) }}
5754
{% endif %}
58-
</div>
59-
60-
<div class="col text-right">
6155
{% if nxt is defined and nxt != None %}
62-
<a href="{{ lesson_url(lesson=nxt.page.lesson, page=nxt.page.slug) }}"><span class="d-none d-sm-block">{{ nxt.title }}</span></a>
56+
{{ nav.next(lesson_url(lesson=nxt.page.lesson, page=nxt.page.slug), nxt.title) }}
6357
{% elif session and course is defined %}
64-
<a href="{{ session_url(course.slug, session.slug, 'back') }}"><span class="d-none d-sm-block">Závěr lekce</span></a>
58+
{{ nav.next(session_url(course.slug, session.slug, 'back'), 'Závěr lekce') }}
6559
{% endif %}
66-
</div>
67-
</div>
60+
{% endcall %}
61+
6862
{% endif %}
6963

7064
</div>

runs/2017/pyladies-brno-podzim-po/info.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ plan:
108108

109109
- base: dict
110110
date: 2017-11-20
111+
materials:
112+
- title: Turnaj v piškvorkách
113+
url: null
114+
type: special
115+
- +merge
111116

112117
- base: pyglet
113118
date: 2017-11-27

0 commit comments

Comments
 (0)