def post(self, request, course_id, rolename): """ Implement a handler for the POST method. """ kwargs = self._get_request_kwargs(course_id, rolename) form = CourseDiscussionRolesForm(kwargs, request_user=request.user) if not form.is_valid(): raise ValidationError(form.errors) course_id = form.cleaned_data['course_key'] rolename = form.cleaned_data['rolename'] serializer = DiscussionRolesSerializer(data=request.data) if not serializer.is_valid(): raise ValidationError(serializer.errors) action = serializer.validated_data['action'] user = serializer.validated_data['user'] try: update_forum_role(course_id, user, rolename, action) except Role.DoesNotExist: raise ValidationError(u"Role '{}' does not exist".format(rolename)) role = form.cleaned_data['role'] data = {'course_id': course_id, 'users': role.users.all()} context = { 'course_discussion_settings': get_course_discussion_settings(course_id) } serializer = DiscussionRolesListSerializer(data, context=context) return Response(serializer.data)
def post(self, request, course_id, rolename): """ Implement a handler for the POST method. """ kwargs = self._get_request_kwargs(course_id, rolename) form = CourseDiscussionRolesForm(kwargs, request_user=request.user) if not form.is_valid(): raise ValidationError(form.errors) course_id = form.cleaned_data['course_key'] rolename = form.cleaned_data['rolename'] serializer = DiscussionRolesSerializer(data=request.data) if not serializer.is_valid(): raise ValidationError(serializer.errors) action = serializer.validated_data['action'] user = serializer.validated_data['user'] try: update_forum_role(course_id, user, rolename, action) except Role.DoesNotExist: raise ValidationError(u"Role '{}' does not exist".format(rolename)) role = form.cleaned_data['role'] data = {'course_id': course_id, 'users': role.users.all()} context = {'course_discussion_settings': get_course_discussion_settings(course_id)} serializer = DiscussionRolesListSerializer(data, context=context) return Response(serializer.data)
def get(self, request, course_id, rolename): """ Implement a handler for the GET method. """ kwargs = self._get_request_kwargs(course_id, rolename) form = CourseDiscussionRolesForm(kwargs, request_user=request.user) if not form.is_valid(): raise ValidationError(form.errors) course_id = form.cleaned_data['course_key'] role = form.cleaned_data['role'] data = {'course_id': course_id, 'users': role.users.all()} context = {'course_discussion_settings': get_course_discussion_settings(course_id)} serializer = DiscussionRolesListSerializer(data, context=context) return Response(serializer.data)