Commit ba5fd98a by Zia Fazal

make course requirement as link

parent 5364ccf1
...@@ -111,14 +111,19 @@ def get_pre_requisite_courses_not_completed(user, enrolled_courses): ...@@ -111,14 +111,19 @@ def get_pre_requisite_courses_not_completed(user, enrolled_courses):
def get_prerequisite_courses_display(course_descriptor): def get_prerequisite_courses_display(course_descriptor):
""" """
It would retrieve pre-requisite courses, make display strings It would retrieve pre-requisite courses, make display strings
and return them as list and return list of dictionary with course key as 'key' field
and course display name as `display` field.
""" """
pre_requisite_courses = [] pre_requisite_courses = []
if settings.FEATURES.get('ENABLE_PREREQUISITE_COURSES', False) and course_descriptor.pre_requisite_courses: if settings.FEATURES.get('ENABLE_PREREQUISITE_COURSES', False) and course_descriptor.pre_requisite_courses:
for course_id in course_descriptor.pre_requisite_courses: for course_id in course_descriptor.pre_requisite_courses:
course_key = CourseKey.from_string(course_id) course_key = CourseKey.from_string(course_id)
required_course_descriptor = modulestore().get_course(course_key) required_course_descriptor = modulestore().get_course(course_key)
pre_requisite_courses.append(get_course_display_name(required_course_descriptor)) prc = {
'key': course_key,
'display': get_course_display_name(required_course_descriptor)
}
pre_requisite_courses.append(prc)
return pre_requisite_courses return pre_requisite_courses
......
...@@ -23,6 +23,7 @@ from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory ...@@ -23,6 +23,7 @@ from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
from util.milestones_helpers import ( from util.milestones_helpers import (
set_prerequisite_courses, set_prerequisite_courses,
seed_milestone_relationship_types, seed_milestone_relationship_types,
get_prerequisite_courses_display,
) )
from .helpers import LoginEnrollmentTestCase from .helpers import LoginEnrollmentTestCase
...@@ -132,9 +133,10 @@ class AboutTestCase(LoginEnrollmentTestCase, ModuleStoreTestCase): ...@@ -132,9 +133,10 @@ class AboutTestCase(LoginEnrollmentTestCase, ModuleStoreTestCase):
url = reverse('about_course', args=[unicode(course.id)]) url = reverse('about_course', args=[unicode(course.id)])
resp = self.client.get(url) resp = self.client.get(url)
self.assertEqual(resp.status_code, 200) self.assertEqual(resp.status_code, 200)
self.assertIn("<span class=\"important-dates-item-text pre-requisite\">{} {}</span>" pre_requisite_courses = get_prerequisite_courses_display(course)
.format(pre_requisite_course.display_org_with_default, pre_requisite_course_about_url = reverse('about_course', args=[unicode(pre_requisite_courses[0]['key'])])
pre_requisite_course.display_number_with_default), self.assertIn("<span class=\"important-dates-item-text pre-requisite\"><a href=\"{}\">{}</a></span>"
.format(pre_requisite_course_about_url, pre_requisite_courses[0]['display']),
resp.content.strip('\n')) resp.content.strip('\n'))
@patch.dict(settings.FEATURES, {'ENABLE_PREREQUISITE_COURSES': True, 'MILESTONES_APP': True}) @patch.dict(settings.FEATURES, {'ENABLE_PREREQUISITE_COURSES': True, 'MILESTONES_APP': True})
...@@ -168,9 +170,10 @@ class AboutTestCase(LoginEnrollmentTestCase, ModuleStoreTestCase): ...@@ -168,9 +170,10 @@ class AboutTestCase(LoginEnrollmentTestCase, ModuleStoreTestCase):
url = reverse('about_course', args=[unicode(course.id)]) url = reverse('about_course', args=[unicode(course.id)])
resp = self.client.get(url) resp = self.client.get(url)
self.assertEqual(resp.status_code, 200) self.assertEqual(resp.status_code, 200)
self.assertIn("<span class=\"important-dates-item-text pre-requisite\">{} {}</span>" pre_requisite_courses = get_prerequisite_courses_display(course)
.format(pre_requisite_course.display_org_with_default, pre_requisite_course_about_url = reverse('about_course', args=[unicode(pre_requisite_courses[0]['key'])])
pre_requisite_course.display_number_with_default), self.assertIn("<span class=\"important-dates-item-text pre-requisite\"><a href=\"{}\">{}</a></span>"
.format(pre_requisite_course_about_url, pre_requisite_courses[0]['display']),
resp.content.strip('\n')) resp.content.strip('\n'))
url = reverse('about_course', args=[unicode(pre_requisite_course.id)]) url = reverse('about_course', args=[unicode(pre_requisite_course.id)])
......
...@@ -320,12 +320,19 @@ from edxmako.shortcuts import marketing_link ...@@ -320,12 +320,19 @@ from edxmako.shortcuts import marketing_link
% endif % endif
% if pre_requisite_courses: % if pre_requisite_courses:
<% prc_target = reverse('about_course', args=[unicode(pre_requisite_courses[0]['key'])]) %>
<li class="prerequisite-course important-dates-item"> <li class="prerequisite-course important-dates-item">
<i class="icon fa fa-list-ul"></i> <i class="icon fa fa-list-ul"></i>
<p class="important-dates-item-title">${_("Prerequisites")}</p> <p class="important-dates-item-title">${_("Prerequisites")}</p>
## Multiple pre-requisite courses are not supported on frontend that's why we are pulling first element ## Multiple pre-requisite courses are not supported on frontend that's why we are pulling first element
<span class="important-dates-item-text pre-requisite">${pre_requisite_courses[0]}</span> <span class="important-dates-item-text pre-requisite"><a href="${prc_target}">${pre_requisite_courses[0]['display']}</a></span>
<p class="tip">${_("You must successfully complete {course} before you begin this course").format(course=pre_requisite_courses[0])}.</p> <p class="tip">
${_("You must successfully complete {link_start}{prc_display}{link_end} before you begin this course.").format(
link_start='<a href="{}">'.format(prc_target),
link_end='</a>',
prc_display=pre_requisite_courses[0]['display'],
)}
</p>
</li> </li>
% endif % endif
% if get_course_about_section(course, "prerequisites"): % if get_course_about_section(course, "prerequisites"):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment