From 25435cfc9824abee771b23b4a9f2475705d0dac5 Mon Sep 17 00:00:00 2001 From: attiyaishaque Date: Thu, 13 Apr 2017 23:31:06 +0500 Subject: [PATCH] TNL-5515. Fix discussion topic navigation and sorting option. --- .../common/js/discussion/views/new_post_view.js | 12 +++++++++++- .../tests/discussion/test_discussion.py | 16 ++++++++++++++++ .../discussion/js/discussion_board_factory.js | 1 + 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/common/static/common/js/discussion/views/new_post_view.js b/common/static/common/js/discussion/views/new_post_view.js index d2537111c2..c60146b7f3 100644 --- a/common/static/common/js/discussion/views/new_post_view.js +++ b/common/static/common/js/discussion/views/new_post_view.js @@ -43,6 +43,7 @@ this.course_settings = options.course_settings; this.is_commentable_cohorted = options.is_commentable_cohorted; this.topicId = options.topicId; + this.discussionBoardView = options.discussionBoardView; }; NewPostView.prototype.render = function() { @@ -161,8 +162,17 @@ }, error: DiscussionUtil.formErrorHandler(this.$('.post-errors')), success: function(response) { - var thread; + var thread, discussionBreadcrumbsModel; thread = new Thread(response.content); + // Update the breadcrumbs and discussion Id(s) related to current topic + if (self.discussionBoardView) { + discussionBreadcrumbsModel = self.discussionBoardView.breadcrumbs.model; + if (discussionBreadcrumbsModel.get('contents').length) { + discussionBreadcrumbsModel.set('contents', self.topicView.topicText.split('/')); + } + self.discussionBoardView.discussionThreadListView.discussionIds = + self.topicView.currentTopicId; + } self.$el.addClass('is-hidden'); self.resetForm(); self.trigger('newPost:createPost'); diff --git a/common/test/acceptance/tests/discussion/test_discussion.py b/common/test/acceptance/tests/discussion/test_discussion.py index 9fb28b5797..923e563765 100644 --- a/common/test/acceptance/tests/discussion/test_discussion.py +++ b/common/test/acceptance/tests/discussion/test_discussion.py @@ -297,6 +297,22 @@ class DiscussionNavigationTest(BaseDiscussionTestCase): self.thread_page.q(css=".breadcrumbs .nav-item")[0].click() self.assertEqual(self.thread_page.q(css=".search-input").text[0], "") + def test_navigation_and_sorting(self): + """ + Test that after adding the post, user sorting preference is changing properly + and recently added post is shown. + """ + topic_button = self.thread_page.q( + css=".forum-nav-browse-menu-item[data-discussion-id='{}']".format(self.discussion_id) + ) + self.assertTrue(topic_button.visible) + topic_button.click() + sort_page = DiscussionSortPreferencePage(self.browser, self.course_id) + for sort_type in ["votes", "comments", "activity"]: + sort_page.change_sort_preference(sort_type) + # Verify that recently added post titled "dummy thread title" is shown in each sorting preference + self.assertEqual(self.thread_page.q(css=".forum-nav-thread-title").text[0], 'dummy thread title') + @attr(shard=2) class DiscussionTabSingleThreadTest(BaseDiscussionTestCase, DiscussionResponsePaginationTestMixin): diff --git a/lms/djangoapps/discussion/static/discussion/js/discussion_board_factory.js b/lms/djangoapps/discussion/static/discussion/js/discussion_board_factory.js index 1b1806299c..0f8d313da6 100644 --- a/lms/djangoapps/discussion/static/discussion/js/discussion_board_factory.js +++ b/lms/djangoapps/discussion/static/discussion/js/discussion_board_factory.js @@ -57,6 +57,7 @@ el: $('.new-post-article'), collection: discussion, course_settings: courseSettings, + discussionBoardView: discussionBoardView, mode: 'tab', startHeader: 2 });