Skip to content

Commit

Permalink
notify course publishable and publish
Browse files Browse the repository at this point in the history
  • Loading branch information
firuza committed Aug 8, 2018
1 parent 55d260c commit 9847152
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 2 deletions.
6 changes: 4 additions & 2 deletions Course/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from django.contrib.auth.models import Group as Roles
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from feeds.views import create_resource_feed
from notification.views import notify_edit_course
from notification.views import notify_edit_course, notify_update_course_state

def create_course(request):
title = request.POST['name']
Expand Down Expand Up @@ -200,11 +200,13 @@ def update_course_info(request,pk):
course.save()
notify_edit_course(request.user, course, 'Course information was updated')
if getstate == 'visible':
create_resource_feed(course, 'course_edit', request.user)
create_resource_feed(course, 'course_edit', request.user)
elif getstate == 'publishable':
create_resource_feed(course, 'course_no_edit', request.user)
notify_update_course_state(request.user, course, 'publishable')
elif getstate == 'publish':
create_resource_feed(course, 'course_published', request.user)
notify_update_course_state(request.user, course, 'publish')
return redirect('course_view',pk=pk)
else:
message = canEditCourse(course.state.name, membership.role.name, course, request)
Expand Down
41 changes: 41 additions & 0 deletions notification/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -314,3 +314,44 @@ def notify_edit_course(user, course, verb):
sender_rolename=sender_rolename)
except CommunityMembership.DoesNotExist:
errormessage = 'You are not a member of the community'

def notify_update_course_state(user, course, action):
if CommunityCourses.objects.filter(course=course).exists():
commcourses = CommunityCourses.objects.get(course=course)
membership = CommunityMembership.objects.get(user=user, community=commcourses.community.pk)
sender_rolename = membership.role.name

comm_admin_list = []
comm_publisher_list = []
comm_pub_admin = []
comm_admin_list = get_comm_list(commcourses.community,'community_admin',course)
comm_publisher_list = get_comm_list(commcourses.community,'publisher',course)
comm_pub_admin = comm_admin_list + comm_publisher_list

if action == 'publishable':
notify.send(sender=user, recipient=comm_pub_admin,
verb='This course has been made publishable', target=course,
target_url="course_view", sender_url="display_user_profile",
sender_url_name=user.username, sender_rolename=sender_rolename)

elif action == 'publish':
notify.send(sender=user, recipient=course.created_by,
verb='Your course has been published', target=course,
target_url="course_view", sender_url="display_user_profile",
sender_url_name=user.username, sender_rolename=sender_rolename)

notify.send(sender=user, recipient=comm_pub_admin,
verb='Course has been published', target=course,
target_url="course_view", sender_url="display_user_profile",
sender_url_name=user.username, sender_rolename=sender_rolename)


def get_comm_list(comm, rolename, resource):
list = []
role = Roles.objects.get(name=rolename)
members = CommunityMembership.objects.filter(community=comm, role=role)
for member in members:
if resource.created_by != member.user:
list.append(member.user)
return list

0 comments on commit 9847152

Please sign in to comment.