Commit 092261dc by Waheed Ahmed

Course detail page scope.

ECOM-6048
parent 3e98296b
...@@ -1388,3 +1388,49 @@ class CourseListViewTests(TestCase): ...@@ -1388,3 +1388,49 @@ class CourseListViewTests(TestCase):
if course_count > 0: if course_count > 0:
self.assertContains(response, self.course.title) self.assertContains(response, self.course.title)
self.assertContains(response, 'Edit') self.assertContains(response, 'Edit')
class CourseDetailViewTests(TestCase):
""" Tests for the course detail view. """
def setUp(self):
super(CourseDetailViewTests, self).setUp()
self.course = factories.CourseFactory()
self.user = UserFactory()
self.client.login(username=self.user.username, password=USER_PASSWORD)
self.organization_extension = factories.OrganizationExtensionFactory()
self.course.organizations.add(self.organization_extension.organization)
self.detail_page_url = reverse('publisher:publisher_course_detail', args=[self.course.id])
def test_detail_page_without_permission(self):
"""
Verify that user cannot access course detail page without view permission.
"""
response = self.client.get(self.detail_page_url)
self.assertEqual(response.status_code, 403)
def test_detail_page_with_permission(self):
"""
Verify that user can access course detail page with view permission.
"""
assign_perm(OrganizationExtension.VIEW_COURSE, self.user, self.organization_extension)
response = self.client.get(self.detail_page_url)
self.assertEqual(response.status_code, 200)
def test_detail_page_with_internal_user(self):
"""
Verify that internal user can access course detail page.
"""
self.user.groups.add(Group.objects.get(name=INTERNAL_USER_GROUP_NAME))
response = self.client.get(self.detail_page_url)
self.assertEqual(response.status_code, 200)
def test_detail_page_with_admin(self):
"""
Verify that publisher admin can access course detail page.
"""
self.user.groups.add(Group.objects.get(name=ADMIN_GROUP_NAME))
response = self.client.get(self.detail_page_url)
self.assertEqual(response.status_code, 200)
...@@ -10,7 +10,7 @@ urlpatterns = [ ...@@ -10,7 +10,7 @@ urlpatterns = [
url(r'^api/', include('course_discovery.apps.publisher.api.urls', namespace='api')), url(r'^api/', include('course_discovery.apps.publisher.api.urls', namespace='api')),
url(r'^courses/$', views.CourseListView.as_view(), name='publisher_courses'), url(r'^courses/$', views.CourseListView.as_view(), name='publisher_courses'),
url(r'^courses/new/$', views.CreateCourseView.as_view(), name='publisher_courses_new'), url(r'^courses/new/$', views.CreateCourseView.as_view(), name='publisher_courses_new'),
url(r'^courses/(?P<pk>\d+)/view/$', views.ReadOnlyView.as_view(), name='publisher_courses_readonly'), url(r'^courses/(?P<pk>\d+)/$', views.CourseDetailView.as_view(), name='publisher_course_detail'),
url(r'^courses/(?P<pk>\d+)/edit/$', views.UpdateCourseView.as_view(), name='publisher_courses_edit'), url(r'^courses/(?P<pk>\d+)/edit/$', views.UpdateCourseView.as_view(), name='publisher_courses_edit'),
url( url(
r'^courses/(?P<parent_course_id>\d+)/course_runs/new/$', r'^courses/(?P<parent_course_id>\d+)/course_runs/new/$',
......
...@@ -253,13 +253,13 @@ class UpdateCourseView(mixins.LoginRequiredMixin, mixins.ViewPermissionMixin, mi ...@@ -253,13 +253,13 @@ class UpdateCourseView(mixins.LoginRequiredMixin, mixins.ViewPermissionMixin, mi
return context return context
class ReadOnlyView(mixins.LoginRequiredMixin, mixins.ViewPermissionMixin, DetailView): class CourseDetailView(mixins.LoginRequiredMixin, mixins.ViewPermissionMixin, DetailView):
""" Course Run Detail View.""" """ Course Detail View."""
model = Course model = Course
template_name = 'publisher/view_course_form.html' template_name = 'publisher/view_course_form.html'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ReadOnlyView, self).get_context_data(**kwargs) context = super(CourseDetailView, self).get_context_data(**kwargs)
context['comment_object'] = self context['comment_object'] = self
return context return context
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<h1 class="hd-1 emphasized">{% trans "New Course Run" %}</h1> <h1 class="hd-1 emphasized">{% trans "New Course Run" %}</h1>
<div class="copy-base"> <div class="copy-base">
<p> <p>
{% url 'publisher:publisher_courses_readonly' parent_course.id as course_url %} {% url 'publisher:publisher_course_detail' parent_course.id as course_url %}
{% with link_start='<a href="' link_middle='">' link_end='</a>' %} {% with link_start='<a href="' link_middle='">' link_end='</a>' %}
{% blocktrans %} {% blocktrans %}
The fields below will only affect this new course run. If you feel the need edit information from the parent course then you may do so on the {{ link_start }}{{ course_url }}{{ link_middle }}parent course for this run{{ link_end }}. The fields below will only affect this new course run. If you feel the need edit information from the parent course then you may do so on the {{ link_start }}{{ course_url }}{{ link_middle }}parent course for this run{{ link_end }}.
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
{% for course in object_list %} {% for course in object_list %}
<tr> <tr>
<td> <td>
<a href="{% url 'publisher:publisher_courses_readonly' course.id %}">{{ course.title }}</a> <a href="{% url 'publisher:publisher_course_detail' course.id %}">{{ course.title }}</a>
</td> </td>
<td> <td>
{% if course.organizations.first %}{{ course.organizations.first.name }}{% endif %} {% if course.organizations.first %}{{ course.organizations.first.name }}{% endif %}
......
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