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:
christopher lee
2015-08-11 16:56:35 -04:00
parent eda45d37f2
commit 5b35ab3668
6 changed files with 14 additions and 6 deletions

View File

@@ -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,
}

View File

@@ -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):

View File

@@ -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"],
}

View File

@@ -186,6 +186,7 @@ class CommentListGetFormTest(FormTestMixin, PaginationTestMixin, TestCase):
"endorsed": False,
"page": 2,
"page_size": 13,
"mark_as_read": False
}
)

View File

@@ -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"],
}
)

View File

@@ -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"]
)
)