Commit 7230c386 by Waheed Ahmed

Course edit page scope.

ECOM-6057
parent b75291c0
...@@ -1494,3 +1494,50 @@ class CourseDetailViewTests(TestCase): ...@@ -1494,3 +1494,50 @@ class CourseDetailViewTests(TestCase):
response = self.client.get(self.detail_page_url) response = self.client.get(self.detail_page_url)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.context['can_edit'], can_edit) self.assertEqual(response.context['can_edit'], can_edit)
class CourseEditViewTests(TestCase):
""" Tests for the course edit view. """
def setUp(self):
super(CourseEditViewTests, 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.edit_page_url = reverse('publisher:publisher_courses_edit', args=[self.course.id])
def test_edit_page_without_permission(self):
"""
Verify that user cannot access course edit page without edit permission.
"""
response = self.client.get(self.edit_page_url)
self.assertEqual(response.status_code, 403)
def test_edit_page_with_edit_permission(self):
"""
Verify that user can access course edit page with edit permission.
"""
self.user.groups.add(self.organization_extension.group)
assign_perm(OrganizationExtension.EDIT_COURSE, self.organization_extension.group, self.organization_extension)
response = self.client.get(self.edit_page_url)
self.assertEqual(response.status_code, 200)
def test_edit_page_with_internal_user(self):
"""
Verify that internal user can access course edit page.
"""
self.user.groups.add(Group.objects.get(name=INTERNAL_USER_GROUP_NAME))
response = self.client.get(self.edit_page_url)
self.assertEqual(response.status_code, 200)
def test_edit_page_with_admin(self):
"""
Verify that publisher admin can access course edit page.
"""
self.user.groups.add(Group.objects.get(name=ADMIN_GROUP_NAME))
response = self.client.get(self.edit_page_url)
self.assertEqual(response.status_code, 200)
...@@ -11,7 +11,7 @@ urlpatterns = [ ...@@ -11,7 +11,7 @@ urlpatterns = [
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+)/$', views.CourseDetailView.as_view(), name='publisher_course_detail'), 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.CourseEditView.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/$',
views.CreateCourseRunView.as_view(), views.CreateCourseRunView.as_view(),
......
...@@ -239,11 +239,11 @@ class CreateCourseView(mixins.LoginRequiredMixin, mixins.PublisherUserRequiredMi ...@@ -239,11 +239,11 @@ class CreateCourseView(mixins.LoginRequiredMixin, mixins.PublisherUserRequiredMi
return render(request, self.template_name, ctx, status=400) return render(request, self.template_name, ctx, status=400)
class UpdateCourseView(mixins.PublisherPermissionMixin, mixins.FormValidMixin, UpdateView): class CourseEditView(mixins.PublisherPermissionMixin, mixins.FormValidMixin, UpdateView):
""" Update Course View.""" """ Course Edit View."""
model = Course model = Course
form_class = CourseForm form_class = CourseForm
permission = OrganizationExtension.VIEW_COURSE permission = OrganizationExtension.EDIT_COURSE
template_name = 'publisher/course_form.html' template_name = 'publisher/course_form.html'
success_url = 'publisher:publisher_course_detail' success_url = 'publisher:publisher_course_detail'
...@@ -251,7 +251,7 @@ class UpdateCourseView(mixins.PublisherPermissionMixin, mixins.FormValidMixin, U ...@@ -251,7 +251,7 @@ class UpdateCourseView(mixins.PublisherPermissionMixin, mixins.FormValidMixin, U
return reverse(self.success_url, kwargs={'pk': self.object.id}) return reverse(self.success_url, kwargs={'pk': self.object.id})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(UpdateCourseView, self).get_context_data(**kwargs) context = super(CourseEditView, self).get_context_data(**kwargs)
context['comment_object'] = self.object context['comment_object'] = self.object
return context return context
......
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