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