diff --git a/lms/djangoapps/django_comment_client/forum/views.py b/lms/djangoapps/django_comment_client/forum/views.py index 62055f0ab7..ae8e999a8a 100644 --- a/lms/djangoapps/django_comment_client/forum/views.py +++ b/lms/djangoapps/django_comment_client/forum/views.py @@ -102,7 +102,7 @@ def get_threads(request, course_id, discussion_id=None): default_query_params = { 'page': 1, 'per_page': THREADS_PER_PAGE, - 'sort_key': 'activity', + 'sort_key': 'date', 'sort_order': 'desc', 'text': '', 'tags': '', @@ -110,6 +110,17 @@ def get_threads(request, course_id, discussion_id=None): 'course_id': course_id, } + if not request.GET.get('sort_key'): + # If the user did not select a sort key, use their last used sort key + user = cc.User.from_django_user(request.user) + user.retrieve() + default_query_params['sort_key'] = user.default_sort_key + else: + # If the user clicked a sort key, update their default sort key + user = cc.User.from_django_user(request.user) + user.default_sort_key = request.GET.get('sort_key') + user.save() + query_params = merge_dict(default_query_params, strip_none(extract(request.GET, ['page', 'sort_key', 'sort_order', 'text', 'tags']))) diff --git a/lms/lib/comment_client/user.py b/lms/lib/comment_client/user.py index ae4abf91b7..eea6fda407 100644 --- a/lms/lib/comment_client/user.py +++ b/lms/lib/comment_client/user.py @@ -8,10 +8,10 @@ class User(models.Model): accessible_fields = ['username', 'email', 'follower_ids', 'upvoted_ids', 'downvoted_ids', 'id', 'external_id', 'subscribed_user_ids', 'children', 'course_id', 'subscribed_thread_ids', 'subscribed_commentable_ids', - 'threads_count', 'comments_count', + 'threads_count', 'comments_count', 'default_sort_key' ] - updatable_fields = ['username', 'external_id', 'email'] + updatable_fields = ['username', 'external_id', 'email', 'default_sort_key'] initializable_fields = updatable_fields base_url = "{prefix}/users".format(prefix=settings.PREFIX)