Commit e2ef4223 by Asad Azam Committed by AsadAzam

Fixed change course admin 500 error

parent 952062f9
...@@ -1966,6 +1966,7 @@ class CourseEditViewTests(TestCase): ...@@ -1966,6 +1966,7 @@ class CourseEditViewTests(TestCase):
super(CourseEditViewTests, self).setUp() super(CourseEditViewTests, self).setUp()
self.course = factories.CourseFactory() self.course = factories.CourseFactory()
self.user = UserFactory() self.user = UserFactory()
self.course_team_user = UserFactory()
self.client.login(username=self.user.username, password=USER_PASSWORD) self.client.login(username=self.user.username, password=USER_PASSWORD)
self.organization_extension = factories.OrganizationExtensionFactory() self.organization_extension = factories.OrganizationExtensionFactory()
...@@ -1974,8 +1975,10 @@ class CourseEditViewTests(TestCase): ...@@ -1974,8 +1975,10 @@ class CourseEditViewTests(TestCase):
# Initialize workflow for Course. # Initialize workflow for Course.
CourseState.objects.create(course=self.course, owner_role=PublisherUserRole.CourseTeam) CourseState.objects.create(course=self.course, owner_role=PublisherUserRole.CourseTeam)
self.course_team_role = factories.CourseUserRoleFactory(course=self.course, role=PublisherUserRole.CourseTeam) self.course_team_role = factories.CourseUserRoleFactory(
self.organization_extension.group.user_set.add(*(self.user, self.course_team_role.user)) course=self.course, role=PublisherUserRole.CourseTeam, user=self.user
)
self.organization_extension.group.user_set.add(*(self.user, self.course_team_user))
self.edit_page_url = reverse('publisher:publisher_courses_edit', args=[self.course.id]) self.edit_page_url = reverse('publisher:publisher_courses_edit', args=[self.course.id])
...@@ -2079,7 +2082,7 @@ class CourseEditViewTests(TestCase): ...@@ -2079,7 +2082,7 @@ class CourseEditViewTests(TestCase):
target_status_code=200 target_status_code=200
) )
self.assertEqual(self.course.course_team_admin, self.user) self.assertEqual(self.course.course_team_admin, self.course_team_user)
self.assertEqual(self.course.history.all().count(), 2) self.assertEqual(self.course.history.all().count(), 2)
def test_update_course_organization(self): def test_update_course_organization(self):
...@@ -2090,7 +2093,7 @@ class CourseEditViewTests(TestCase): ...@@ -2090,7 +2093,7 @@ class CourseEditViewTests(TestCase):
# Create new OrganizationExtension and assign edit/view permissions. # Create new OrganizationExtension and assign edit/view permissions.
organization_extension = factories.OrganizationExtensionFactory() organization_extension = factories.OrganizationExtensionFactory()
organization_extension.group.user_set.add(*(self.user, self.course_team_role.user)) organization_extension.group.user_set.add(*(self.user, self.course_team_user))
self._assign_permissions(organization_extension) self._assign_permissions(organization_extension)
self.assertEqual(self.course.organizations.first(), self.organization_extension.organization) self.assertEqual(self.course.organizations.first(), self.organization_extension.organization)
...@@ -2120,7 +2123,7 @@ class CourseEditViewTests(TestCase): ...@@ -2120,7 +2123,7 @@ class CourseEditViewTests(TestCase):
""" """
post_data = model_to_dict(self.course) post_data = model_to_dict(self.course)
post_data.pop('image') post_data.pop('image')
post_data['team_admin'] = self.user.id post_data['team_admin'] = self.course_team_user.id
post_data['organization'] = organization_extension.organization.id post_data['organization'] = organization_extension.organization.id
return post_data return post_data
......
...@@ -377,15 +377,6 @@ class CourseEditView(mixins.PublisherPermissionMixin, UpdateView): ...@@ -377,15 +377,6 @@ class CourseEditView(mixins.PublisherPermissionMixin, UpdateView):
self.object.organizations.remove(self.object.organizations.first()) self.object.organizations.remove(self.object.organizations.first())
self.object.organizations.add(organization_extension.organization) self.object.organizations.add(organization_extension.organization)
team_admin = form.cleaned_data['team_admin']
if self.object.course_team_admin != team_admin:
course_admin_role = get_object_or_404(
CourseUserRole, course=self.object, role=PublisherUserRole.CourseTeam
)
course_admin_role.user = team_admin
course_admin_role.save()
user_role = self.object.course_user_roles.get(user=user) user_role = self.object.course_user_roles.get(user=user)
# Change course state to draft if marketing not yet reviewed or # Change course state to draft if marketing not yet reviewed or
# if marketing person updating the course. # if marketing person updating the course.
...@@ -397,6 +388,15 @@ class CourseEditView(mixins.PublisherPermissionMixin, UpdateView): ...@@ -397,6 +388,15 @@ class CourseEditView(mixins.PublisherPermissionMixin, UpdateView):
if self.object.course_state.owner_role != user_role.role: if self.object.course_state.owner_role != user_role.role:
self.object.course_state.change_owner_role(user_role.role) self.object.course_state.change_owner_role(user_role.role)
team_admin = form.cleaned_data['team_admin']
if self.object.course_team_admin != team_admin:
course_admin_role = get_object_or_404(
CourseUserRole, course=self.object, role=PublisherUserRole.CourseTeam
)
course_admin_role.user = team_admin
course_admin_role.save()
messages.success(self.request, _('Course updated successfully.')) messages.success(self.request, _('Course updated successfully.'))
return HttpResponseRedirect(self.get_success_url()) return HttpResponseRedirect(self.get_success_url())
......
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