def post(self, course_uuid, assignment_uuid): course = Course.get_active_by_uuid_or_404(course_uuid) assignment = Assignment.get_active_by_uuid_or_404(assignment_uuid) require(CREATE, AssignmentComment(course_id=course.id)) new_assignment_comment = AssignmentComment(assignment_id=assignment.id) params = new_assignment_comment_parser.parse_args() new_assignment_comment.content = params.get("content") if not new_assignment_comment.content: return {"error": "The comment content is empty!"}, 400 new_assignment_comment.user_id = current_user.id db.session.add(new_assignment_comment) db.session.commit() on_assignment_comment_create.send( self, event_name=on_assignment_comment_create.name, user=current_user, course_id=course.id, assignment_comment=new_assignment_comment, data=marshal(new_assignment_comment, dataformat.get_assignment_comment(False))) return marshal(new_assignment_comment, dataformat.get_assignment_comment())
def post(self, course_uuid, assignment_uuid, assignment_comment_uuid): course = Course.get_active_by_uuid_or_404(course_uuid) assignment = Assignment.get_active_by_uuid_or_404(assignment_uuid) assignment_comment = AssignmentComment.get_active_by_uuid_or_404(assignment_comment_uuid) require(EDIT, assignment_comment) params = existing_assignment_comment_parser.parse_args() # make sure the comment id in the rul and the id matches if params['id'] != assignment_comment_uuid: return {"error": "Comment id does not match URL."}, 400 # modify comment according to new values, preserve original values if values not passed if not params.get("content"): return {"error": "The comment content is empty!"}, 400 assignment_comment.content = params.get("content") db.session.add(assignment_comment) on_assignment_comment_modified.send( self, event_name=on_assignment_comment_modified.name, user=current_user, course_id=course.id, assignment_comment=assignment_comment, data=get_model_changes(assignment_comment)) db.session.commit() return marshal(assignment_comment, dataformat.get_assignment_comment())
def delete(self, course_uuid, assignment_uuid, assignment_comment_uuid): course = Course.get_active_by_uuid_or_404(course_uuid) assignment = Assignment.get_active_by_uuid_or_404(assignment_uuid) assignment_comment = AssignmentComment.get_active_by_uuid_or_404( assignment_comment_uuid) require( DELETE, assignment_comment, title="Help Comment Not Deleted", message= "Sorry, your role in this course does not allow you to delete help comments." ) data = marshal(assignment_comment, dataformat.get_assignment_comment(False)) assignment_comment.active = False db.session.commit() on_assignment_comment_delete.send( self, event_name=on_assignment_comment_delete.name, user=current_user, course_id=course.id, assignment_comment=assignment_comment, data=data) return {'id': assignment_comment.uuid}
def post(self, course_uuid, assignment_uuid): course = Course.get_active_by_uuid_or_404(course_uuid) assignment = Assignment.get_active_by_uuid_or_404(assignment_uuid) require( CREATE, AssignmentComment(course_id=course.id), title="Help Comment Not Saved", message= "Help comments can be saved only by those enrolled in the course. Please double-check your enrollment in this course." ) new_assignment_comment = AssignmentComment(assignment_id=assignment.id) params = new_assignment_comment_parser.parse_args() new_assignment_comment.content = params.get("content") if not new_assignment_comment.content: abort( 400, title="Help Comment Not Saved", message= "Please provide content in the text editor and try saving again." ) new_assignment_comment.user_id = current_user.id db.session.add(new_assignment_comment) db.session.commit() on_assignment_comment_create.send( self, event_name=on_assignment_comment_create.name, user=current_user, course_id=course.id, assignment_comment=new_assignment_comment, data=marshal(new_assignment_comment, dataformat.get_assignment_comment(False))) return marshal(new_assignment_comment, dataformat.get_assignment_comment())
def get(self, course_uuid, assignment_uuid, assignment_comment_uuid): course = Course.get_active_by_uuid_or_404(course_uuid) assignment = Assignment.get_active_by_uuid_or_404(assignment_uuid) assignment_comment = AssignmentComment.get_active_by_uuid_or_404(assignment_comment_uuid) require(READ, assignment_comment) on_assignment_comment_get.send( self, event_name=on_assignment_comment_get.name, user=current_user, course_id=course.id, data={'assignment_id': assignment.id, 'assignment_comment_id': assignment_comment.id}) return marshal(assignment_comment, dataformat.get_assignment_comment())
def post(self, course_uuid, assignment_uuid, assignment_comment_uuid): course = Course.get_active_by_uuid_or_404(course_uuid) assignment = Assignment.get_active_by_uuid_or_404(assignment_uuid) assignment_comment = AssignmentComment.get_active_by_uuid_or_404( assignment_comment_uuid) require( EDIT, assignment_comment, title="Help Comment Not Saved", message= "Sorry, your role in this course does not allow you to save help comments." ) params = existing_assignment_comment_parser.parse_args() # make sure the comment id in the rul and the id matches if params['id'] != assignment_comment_uuid: abort( 400, title="Help Comment Not Saved", message= "The comment's ID does not match the URL, which is required in order to save the comment." ) # modify comment according to new values, preserve original values if values not passed if not params.get("content"): abort( 400, title="Help Comment Not Saved", message= "Please provide content in the text editor and try saving again." ) assignment_comment.content = params.get("content") db.session.add(assignment_comment) on_assignment_comment_modified.send( self, event_name=on_assignment_comment_modified.name, user=current_user, course_id=course.id, assignment_comment=assignment_comment, data=get_model_changes(assignment_comment)) db.session.commit() return marshal(assignment_comment, dataformat.get_assignment_comment())
def delete(self, course_uuid, assignment_uuid, assignment_comment_uuid): course = Course.get_active_by_uuid_or_404(course_uuid) assignment = Assignment.get_active_by_uuid_or_404(assignment_uuid) assignment_comment = AssignmentComment.get_active_by_uuid_or_404(assignment_comment_uuid) require(DELETE, assignment_comment) data = marshal(assignment_comment, dataformat.get_assignment_comment(False)) assignment_comment.active = False db.session.commit() on_assignment_comment_delete.send( self, event_name=on_assignment_comment_delete.name, user=current_user, course_id=course.id, assignment_comment=assignment_comment, data=data) return {'id': assignment_comment.uuid}
def get(self, course_uuid, assignment_uuid, assignment_comment_uuid): course = Course.get_active_by_uuid_or_404(course_uuid) assignment = Assignment.get_active_by_uuid_or_404(assignment_uuid) assignment_comment = AssignmentComment.get_active_by_uuid_or_404( assignment_comment_uuid) require( READ, assignment_comment, title="Help Comment Unavailable", message= "Sorry, your role in this course does not allow you to view help comments." ) on_assignment_comment_get.send( self, event_name=on_assignment_comment_get.name, user=current_user, course_id=course.id, data={ 'assignment_id': assignment.id, 'assignment_comment_id': assignment_comment.id }) return marshal(assignment_comment, dataformat.get_assignment_comment())