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"] # 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"> <div class="list-group">
{% for topic in course.topics %} {% for topic in course.topics %}
<div class="list-group-item"> <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>{{topic.preview | markdown }}</div>
</div> </div>
{% endfor %} {% endfor %}

View File

@@ -1,9 +1,9 @@
{% macro course_card(course) %} {% macro course_card(course) %}
<div class="card mb-5 w-100"> <div class="card mb-5 w-100">
<div class="card-body"> <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> <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>
</div> </div>
{% endmacro %} {% endmacro %}
@@ -11,7 +11,7 @@
{% macro topic_card(course, topic) %} {% macro topic_card(course, topic) %}
<div class="card mb-5 w-100"> <div class="card mb-5 w-100">
<div class="card-body"> <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> <p class="card-text">{{topic.description}}</p>
</div> </div>
</div> </div>

View File

@@ -24,7 +24,7 @@
<nav aria-label="breadcrumb"> <nav aria-label="breadcrumb">
<ol class="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">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> </ol>
</nav> </nav>