Commit 2838f97a by Asad Azam Committed by AsadAzam

updated organization user role save method

parent d04db412
...@@ -53,11 +53,15 @@ class OrganizationUserRoleAdmin(admin.ModelAdmin): ...@@ -53,11 +53,15 @@ class OrganizationUserRoleAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change): def save_model(self, request, obj, form, change):
obj.save() obj.save()
publisher_courses = obj.organization.publisher_courses publisher_courses = obj.organization.publisher_courses
courses_without_role = publisher_courses.exclude(course_user_roles__role=obj.role) courses_without_role = publisher_courses.exclude(course_user_roles__role=obj.role)
CourseUserRole.objects.bulk_create( CourseUserRole.objects.bulk_create(
[CourseUserRole(course=course, user=obj.user, role=obj.role) for course in courses_without_role] [CourseUserRole(course=course, user=obj.user, role=obj.role) for course in courses_without_role]
) )
CourseUserRole.objects.filter(course__organizations__in=[obj.organization], role=obj.role).update(user=obj.user)
# Assign user a group according to its role. # Assign user a group according to its role.
group = Group.objects.get(name=self.role_groups_dict.get(obj.role)) group = Group.objects.get(name=self.role_groups_dict.get(obj.role))
if group not in obj.user.groups.all(): if group not in obj.user.groups.all():
......
...@@ -187,14 +187,28 @@ class OrganizationUserRoleAdminTests(TestCase): ...@@ -187,14 +187,28 @@ class OrganizationUserRoleAdminTests(TestCase):
course3.organizations.add(self.organization) course3.organizations.add(self.organization)
factories.CourseUserRoleFactory(course=course3, role=PublisherUserRole.MarketingReviewer, user=user) factories.CourseUserRoleFactory(course=course3, role=PublisherUserRole.MarketingReviewer, user=user)
# for course 4 add course roles
project_coordinator = UserFactory()
course4 = CourseFactory()
course4.organizations.add(self.organization)
factories.CourseUserRoleFactory(course=course4, role=PublisherUserRole.ProjectCoordinator,
user=project_coordinator)
test_user = UserFactory() test_user = UserFactory()
post_data = { post_data = {
'organization': self.organization.id, 'user': test_user.id, 'role': PublisherUserRole.MarketingReviewer 'organization': self.organization.id, 'user': test_user.id, 'role': PublisherUserRole.MarketingReviewer
} }
self.client.post(self.admin_page_url, data=post_data) self.client.post(self.admin_page_url, data=post_data)
# for course-3 course-user-role remains there. # for course-4 course-user-role does not change
self.assertTrue(course3.course_user_roles.filter(role=PublisherUserRole.MarketingReviewer, user=user).exists()) self.assertTrue(
course4.course_user_roles.filter(role=PublisherUserRole.ProjectCoordinator,
user=project_coordinator).exists()
)
# for course-3 course-user-role also changes to test_user
self.assertTrue(course3.course_user_roles.filter(role=PublisherUserRole.MarketingReviewer,
user=test_user).exists())
self.assertTrue( self.assertTrue(
self.course1.course_user_roles.filter(role=PublisherUserRole.MarketingReviewer, user=test_user).exists() self.course1.course_user_roles.filter(role=PublisherUserRole.MarketingReviewer, user=test_user).exists()
......
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