Added optional mark_as_read field to comments in Discussion API
Currently when GETting comments, the thread of the comment will be marked as read. This change makes this effect optional as well as setting the default to not mark the thread as read.
This commit is contained in:
@@ -337,7 +337,7 @@ def get_thread_list(
|
||||
return ret
|
||||
|
||||
|
||||
def get_comment_list(request, thread_id, endorsed, page, page_size):
|
||||
def get_comment_list(request, thread_id, endorsed, page, page_size, mark_as_read=False):
|
||||
"""
|
||||
Return the list of comments in the given thread.
|
||||
|
||||
@@ -356,6 +356,8 @@ def get_comment_list(request, thread_id, endorsed, page, page_size):
|
||||
|
||||
page_size: The number of comments to retrieve per page
|
||||
|
||||
mark_as_read: Marks the thread of the comment list as read.
|
||||
|
||||
Returns:
|
||||
|
||||
A paginated result containing a list of comments; see
|
||||
@@ -368,7 +370,7 @@ def get_comment_list(request, thread_id, endorsed, page, page_size):
|
||||
retrieve_kwargs={
|
||||
"recursive": True,
|
||||
"user_id": request.user.id,
|
||||
"mark_as_read": True,
|
||||
"mark_as_read": mark_as_read,
|
||||
"response_skip": response_skip,
|
||||
"response_limit": page_size,
|
||||
}
|
||||
|
||||
@@ -121,6 +121,7 @@ class CommentListGetForm(_PaginationForm):
|
||||
# TODO: should we use something better here? This only accepts "True",
|
||||
# "False", "1", and "0"
|
||||
endorsed = NullBooleanField(required=False)
|
||||
mark_as_read = BooleanField(required=False)
|
||||
|
||||
|
||||
class CommentActionsForm(Form):
|
||||
|
||||
@@ -1083,7 +1083,7 @@ class GetCommentListTest(CommentsServiceMockMixin, SharedModuleStoreTestCase):
|
||||
{
|
||||
"recursive": ["True"],
|
||||
"user_id": [str(self.user.id)],
|
||||
"mark_as_read": ["True"],
|
||||
"mark_as_read": ["False"],
|
||||
"resp_skip": ["70"],
|
||||
"resp_limit": ["14"],
|
||||
}
|
||||
|
||||
@@ -186,6 +186,7 @@ class CommentListGetFormTest(FormTestMixin, PaginationTestMixin, TestCase):
|
||||
"endorsed": False,
|
||||
"page": 2,
|
||||
"page_size": 13,
|
||||
"mark_as_read": False
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -698,7 +698,7 @@ class CommentViewSetListTest(DiscussionAPIViewTestMixin, ModuleStoreTestCase):
|
||||
"resp_skip": ["0"],
|
||||
"resp_limit": ["10"],
|
||||
"user_id": [str(self.user.id)],
|
||||
"mark_as_read": ["True"],
|
||||
"mark_as_read": ["False"],
|
||||
}
|
||||
)
|
||||
|
||||
@@ -732,7 +732,7 @@ class CommentViewSetListTest(DiscussionAPIViewTestMixin, ModuleStoreTestCase):
|
||||
"resp_skip": ["68"],
|
||||
"resp_limit": ["4"],
|
||||
"user_id": [str(self.user.id)],
|
||||
"mark_as_read": ["True"],
|
||||
"mark_as_read": ["False"],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -314,6 +314,9 @@ class CommentViewSet(_ViewMixin, DeveloperErrorViewMixin, ViewSet):
|
||||
|
||||
* page_size: The number of items per page (default is 10, max is 100)
|
||||
|
||||
* mark_as_read: Will mark the thread of the comments as read. (default
|
||||
is False)
|
||||
|
||||
**POST Parameters**:
|
||||
|
||||
* thread_id (required): The thread to post the comment in
|
||||
@@ -404,7 +407,8 @@ class CommentViewSet(_ViewMixin, DeveloperErrorViewMixin, ViewSet):
|
||||
form.cleaned_data["thread_id"],
|
||||
form.cleaned_data["endorsed"],
|
||||
form.cleaned_data["page"],
|
||||
form.cleaned_data["page_size"]
|
||||
form.cleaned_data["page_size"],
|
||||
form.cleaned_data["mark_as_read"]
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user