Example #1
0
def create_sub_comment(request, course_id, comment_id):
    """
    given a course_id and comment_id, create a response to a comment
    after checking the max depth allowed, if allowed
    """
    if is_comment_too_deep(parent=cc.Comment(comment_id)):
        return JsonError(_("Comment level too deep"))
    return _create_comment(request, CourseKey.from_string(course_id), parent_id=comment_id)
Example #2
0
def create_comment(request, course_id, thread_id):
    """
    given a course_id and thread_id, test for comment depth. if not too deep,
    call _create_comment to create the actual comment.
    """
    if is_comment_too_deep(parent=None):
        return JsonError(_("Comment level too deep"))
    return _create_comment(request, CourseKey.from_string(course_id), thread_id=thread_id)
Example #3
0
def create_sub_comment(request, course_id, comment_id):
    """
    given a course_id and comment_id, create a response to a comment
    after checking the max depth allowed, if allowed
    """
    if is_comment_too_deep(parent=cc.Comment(comment_id)):
        return JsonError(_("Comment level too deep"))
    return _create_comment(request, CourseKey.from_string(course_id), parent_id=comment_id)
Example #4
0
def create_comment(request, course_id, thread_id):
    """
    given a course_id and thread_id, test for comment depth. if not too deep,
    call _create_comment to create the actual comment.
    """
    if is_comment_too_deep(parent=None):
        return JsonError(_("Comment level too deep"))
    return _create_comment(request, CourseKey.from_string(course_id), thread_id=thread_id)
Example #5
0
 def validate(self, attrs):
     """
     Ensure that parent_id identifies a comment that is actually in the
     thread identified by thread_id and does not violate the configured
     maximum depth.
     """
     parent = None
     parent_id = attrs.get("parent_id")
     if parent_id:
         try:
             parent = Comment(id=parent_id).retrieve()
         except CommentClientRequestError:
             pass
         if not (parent and parent["thread_id"] == attrs["thread_id"]):
             raise ValidationError(
                 "parent_id does not identify a comment in the thread identified by thread_id."
             )
     if is_comment_too_deep(parent):
         raise ValidationError({"parent_id": ["Comment level is too deep."]})
     return attrs
Example #6
0
 def validate(self, attrs):
     """
     Ensure that parent_id identifies a comment that is actually in the
     thread identified by thread_id and does not violate the configured
     maximum depth.
     """
     parent = None
     parent_id = attrs.get("parent_id")
     if parent_id:
         try:
             parent = Comment(id=parent_id).retrieve()
         except CommentClientRequestError:
             pass
         if not (parent and parent["thread_id"] == attrs["thread_id"]):
             raise ValidationError(
                 "parent_id does not identify a comment in the thread identified by thread_id."
             )
     if is_comment_too_deep(parent):
         raise ValidationError({"parent_id": ["Comment level is too deep."]})
     return attrs