Added nice URLs to course and topic pages.

The URL of a course will be `/courses/<course-name>` and a topic will be
`/courses/<course-name>/<topic-name>`.

Implemented this by adding entries to `website_route_rules`.
This commit is contained in:
Anand Chitipothu
2021-03-31 11:33:59 +00:00
parent 87acbb9f6e
commit 53af969a2e
4 changed files with 9 additions and 5 deletions

View File

@@ -127,3 +127,7 @@ scheduler_events = {
#
# auto_cancel_exempted_doctypes = ["Auto Repeat"]
website_route_rules = [
{"from_route": "/courses/<course>", "to_route": "courses/course"},
{"from_route": "/courses/<course>/<topic>", "to_route": "courses/topic"},
]

View File

@@ -43,7 +43,7 @@
<div class="list-group">
{% for topic in course.topics %}
<div class="list-group-item">
<h5><a href="/courses/topic?course={{course.name}}&topic={{topic.name}}">{{topic.title}}</a></h5>
<h5><a href="/courses/{{course.name}}/{{topic.name}}">{{topic.title}}</a></h5>
<div>{{topic.preview | markdown }}</div>
</div>
{% endfor %}

View File

@@ -1,9 +1,9 @@
{% macro course_card(course) %}
<div class="card mb-5 w-100">
<div class="card-body">
<h5 class="card-title"><a href="/courses/course?course={{course.name}}">{{course.title}}</a></h5>
<h5 class="card-title"><a href="/courses/{{course.name}}">{{course.title}}</a></h5>
<p class="card-text">{{ frappe.utils.md_to_html(course.description[:250]) }}</p>
<a href="/courses/course?course={{course.name}}" class="card-link">See more &rarr;</a>
<a href="/courses/{{course.name}}" class="card-link">See more &rarr;</a>
</div>
</div>
{% endmacro %}
@@ -11,7 +11,7 @@
{% macro topic_card(course, topic) %}
<div class="card mb-5 w-100">
<div class="card-body">
<h5 class="card-title"><a href="/courses/topic?course={{course.name}}&topic={{topic.name}}">{{topic.title}}</a></h5>
<h5 class="card-title"><a href="/courses/{{course.name}}/{{topic.name}}">{{topic.title}}</a></h5>
<p class="card-text">{{topic.description}}</p>
</div>
</div>

View File

@@ -24,7 +24,7 @@
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item" aria-current="page"><a href="/courses">Courses</a></li>
<li class="breadcrumb-item" aria-current="page"><a href="/courses/course?course={{course.name}}">{{course.title}}</a></li>
<li class="breadcrumb-item" aria-current="page"><a href="/courses/{{course.name}}">{{course.title}}</a></li>
</ol>
</nav>