From e7be2f73110dbbef98ed4b784a737064c9423e14 Mon Sep 17 00:00:00 2001 From: Waqas Khalid Date: Wed, 17 Dec 2014 16:59:38 +0500 Subject: [PATCH] Discussion thread response show dual vote count When the responses of the thread is loaded it shows dual vote count one with simple text and one with button whereas only text should be shown when thread is closed and only button when thread is open. TNL-1016 --- .../views/discussion_content_view.coffee | 2 + .../views/discussion_thread_view.coffee | 2 +- .../test/acceptance/pages/lms/discussion.py | 4 ++ .../tests/discussion/test_discussion.py | 50 +++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) diff --git a/common/static/coffee/src/discussion/views/discussion_content_view.coffee b/common/static/coffee/src/discussion/views/discussion_content_view.coffee index 8c075f6902..bd92462615 100644 --- a/common/static/coffee/src/discussion/views/discussion_content_view.coffee +++ b/common/static/coffee/src/discussion/views/discussion_content_view.coffee @@ -138,6 +138,8 @@ if Backbone? closed: (closed) -> @updateButtonState(".action-close", closed) @$(".post-label-closed").toggleClass("is-hidden", not closed) + @$(".action-vote").toggle(not closed) + @$(".display-vote").toggle(closed) }) toggleSecondaryActions: (event) => diff --git a/common/static/coffee/src/discussion/views/discussion_thread_view.coffee b/common/static/coffee/src/discussion/views/discussion_thread_view.coffee index f8af5dd359..2efd220d09 100644 --- a/common/static/coffee/src/discussion/views/discussion_thread_view.coffee +++ b/common/static/coffee/src/discussion/views/discussion_thread_view.coffee @@ -79,7 +79,6 @@ if Backbone? @$('.comment-form').closest('li').toggle(not closed) @$(".action-vote").toggle(not closed) @$(".display-vote").toggle(closed) -# @$(".display-vote").toggle(closed) @renderAddResponseButton() }) @@ -260,6 +259,7 @@ if Backbone? comment = new Comment(body: body, created_at: (new Date()).toISOString(), username: window.user.get("username"), votes: { up_count: 0 }, abuse_flaggers:[], endorsed: false, user_id: window.user.get("id")) comment.set('thread', @model.get('thread')) @renderResponseToList(comment, ".js-response-list") + @renderAttrs() @model.addComment() @renderAddResponseButton() diff --git a/common/test/acceptance/pages/lms/discussion.py b/common/test/acceptance/pages/lms/discussion.py index d7c62313e3..b26c1e066a 100644 --- a/common/test/acceptance/pages/lms/discussion.py +++ b/common/test/acceptance/pages/lms/discussion.py @@ -265,6 +265,10 @@ class DiscussionTabSingleThreadPage(CoursePage): def __getattr__(self, name): return getattr(self.thread_page, name) + def close_open_thread(self): + with self.thread_page._secondary_action_menu_open(".forum-thread-main-wrapper"): + self._find_within(".forum-thread-main-wrapper .action-close").first.click() + class InlineDiscussionPage(PageObject): url = None diff --git a/common/test/acceptance/tests/discussion/test_discussion.py b/common/test/acceptance/tests/discussion/test_discussion.py index 68d6e5f143..9a62f97253 100644 --- a/common/test/acceptance/tests/discussion/test_discussion.py +++ b/common/test/acceptance/tests/discussion/test_discussion.py @@ -152,6 +152,56 @@ class DiscussionTabSingleThreadTest(UniqueCourseTest, DiscussionResponsePaginati self.assertFalse(self.thread_page.is_show_comments_visible(response_id)) +@attr('shard_1') +class DiscussionOpenClosedThreadTest(UniqueCourseTest): + """ + Tests for checking the display of attributes on open and closed threads + """ + + def setUp(self): + super(DiscussionOpenClosedThreadTest, self).setUp() + + # Create a course to register for + CourseFixture(**self.course_info).install() + self.thread_id = "test_thread_{}".format(uuid4().hex) + + def setup_user(self, roles=[]): + roles_str = ','.join(roles) + self.user_id = AutoAuthPage(self.browser, course_id=self.course_id, roles=roles_str).visit().get_user_id() + + def setup_view(self, **thread_kwargs): + view = SingleThreadViewFixture( + Thread(id=self.thread_id, **thread_kwargs) + ) + view.addResponse(Response(id="response1")) + view.push() + + def setup_openclosed_thread_page(self, closed=False): + self.setup_user(roles=['Moderator']) + if closed: + self.setup_view(closed=True) + else: + self.setup_view() + page = DiscussionTabSingleThreadPage(self.browser, self.course_id, self.thread_id) + page.visit() + page.close_open_thread() + return page + + def test_originally_open_thread_vote_display(self): + page = self.setup_openclosed_thread_page() + self.assertFalse(page._is_element_visible('.forum-thread-main-wrapper .action-vote')) + self.assertTrue(page._is_element_visible('.forum-thread-main-wrapper .display-vote')) + self.assertFalse(page._is_element_visible('.response_response1 .action-vote')) + self.assertTrue(page._is_element_visible('.response_response1 .display-vote')) + + def test_originally_closed_thread_vote_display(self): + page = self.setup_openclosed_thread_page(True) + self.assertTrue(page._is_element_visible('.forum-thread-main-wrapper .action-vote')) + self.assertFalse(page._is_element_visible('.forum-thread-main-wrapper .display-vote')) + self.assertTrue(page._is_element_visible('.response_response1 .action-vote')) + self.assertFalse(page._is_element_visible('.response_response1 .display-vote')) + + @attr('shard_1') class DiscussionCommentDeletionTest(UniqueCourseTest): """