Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
68303997
Commit
68303997
authored
Aug 16, 2016
by
Awais Jibran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix Discussion blackout date still has Add a Response text box
TNL-5111
parent
a52cfd86
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
73 additions
and
3 deletions
+73
-3
common/test/acceptance/pages/lms/discussion.py
+13
-0
common/test/acceptance/pages/lms/tab_nav.py
+7
-0
common/test/acceptance/tests/discussion/test_discussion.py
+49
-0
lms/djangoapps/discussion/templates/discussion/discussion_board.html
+4
-3
No files found.
common/test/acceptance/pages/lms/discussion.py
View file @
68303997
...
...
@@ -108,6 +108,12 @@ class DiscussionThreadPage(PageObject, DiscussionPageMixin):
"""Returns true if the add response button is visible, false otherwise"""
return
self
.
is_element_visible
(
".add-response-btn"
)
def
has_discussion_reply_editor
(
self
):
"""
Returns true if the discussion reply editor is is visible
"""
return
self
.
is_element_visible
(
".discussion-reply-new"
)
def
click_add_response_button
(
self
):
"""
Clicks the add response button and ensures that the response text
...
...
@@ -152,6 +158,13 @@ class DiscussionThreadPage(PageObject, DiscussionPageMixin):
with
self
.
secondary_action_menu_open
(
".response_{} .discussion-response"
.
format
(
response_id
)):
return
self
.
is_element_visible
(
".response_{} .discussion-response .action-edit"
.
format
(
response_id
))
def
is_response_deletable
(
self
,
response_id
):
"""
Returns true if the delete response button is present, false otherwise
"""
with
self
.
secondary_action_menu_open
(
".response_{} .discussion-response"
.
format
(
response_id
)):
return
self
.
is_element_visible
(
".response_{} .discussion-response .action-delete"
.
format
(
response_id
))
def
get_response_body
(
self
,
response_id
):
return
self
.
_get_element_text
(
".response_{} .response-body"
.
format
(
response_id
))
...
...
common/test/acceptance/pages/lms/tab_nav.py
View file @
68303997
...
...
@@ -104,3 +104,10 @@ class TabNavPage(PageObject):
lambda
:
self
.
_is_on_tab
(
tab_name
),
"{0} is the current tab"
.
format
(
tab_name
)
)
def
has_new_post_button_visible_on_tab
(
self
):
"""
Check if new post button present and visible on course tab page
"""
new_post_btn
=
self
.
q
(
css
=
'ol.course-tabs .new-post-btn'
)
return
new_post_btn
.
present
and
new_post_btn
.
visible
common/test/acceptance/tests/discussion/test_discussion.py
View file @
68303997
...
...
@@ -21,6 +21,7 @@ from common.test.acceptance.pages.lms.discussion import (
DiscussionSortPreferencePage
,
)
from
common.test.acceptance.pages.lms.learner_profile
import
LearnerProfilePage
from
common.test.acceptance.pages.lms.tab_nav
import
TabNavPage
from
common.test.acceptance.fixtures.course
import
CourseFixture
,
XBlockFixtureDesc
from
common.test.acceptance.fixtures.discussion
import
(
...
...
@@ -285,6 +286,7 @@ class DiscussionTabSingleThreadTest(BaseDiscussionTestCase, DiscussionResponsePa
def
setUp
(
self
):
super
(
DiscussionTabSingleThreadTest
,
self
)
.
setUp
()
AutoAuthPage
(
self
.
browser
,
course_id
=
self
.
course_id
)
.
visit
()
self
.
tab_nav
=
TabNavPage
(
self
.
browser
)
def
setup_thread_page
(
self
,
thread_id
):
self
.
thread_page
=
self
.
create_single_thread_page
(
thread_id
)
# pylint: disable=attribute-defined-outside-init
...
...
@@ -348,6 +350,53 @@ class DiscussionTabSingleThreadTest(BaseDiscussionTestCase, DiscussionResponsePa
self
.
assertTrue
(
self
.
thread_page
.
is_add_comment_visible
(
response_id
))
self
.
assertFalse
(
self
.
thread_page
.
is_show_comments_visible
(
response_id
))
def
test_discussion_blackout_period
(
self
):
"""
Verify that new discussion can not be started during course blackout period.
Blackout period is the period between which students cannot post new or contribute
to existing discussions.
"""
now
=
datetime
.
datetime
.
now
(
UTC
)
# Update course advance settings with a valid blackout period.
self
.
course_fixture
.
add_advanced_settings
(
{
u"discussion_blackouts"
:
{
"value"
:
[
[
(
now
-
datetime
.
timedelta
(
days
=
14
))
.
isoformat
(),
(
now
+
datetime
.
timedelta
(
days
=
2
))
.
isoformat
()
]
]
}
}
)
self
.
course_fixture
.
_add_advanced_settings
()
# pylint: disable=protected-access
self
.
browser
.
refresh
()
thread
=
Thread
(
id
=
uuid4
()
.
hex
,
commentable_id
=
self
.
discussion_id
)
thread_fixture
=
SingleThreadViewFixture
(
thread
)
thread_fixture
.
addResponse
(
Response
(
id
=
"response1"
),
[
Comment
(
id
=
"comment1"
)])
thread_fixture
.
push
()
self
.
setup_thread_page
(
thread
.
get
(
"id"
))
# pylint: disable=no-member
# Verify that `Add a Post` is not visible on course tab nav.
self
.
assertFalse
(
self
.
tab_nav
.
has_new_post_button_visible_on_tab
())
# Verify that `Add a response` button is not visible.
self
.
assertFalse
(
self
.
thread_page
.
has_add_response_button
())
# Verify user can not add new responses or modify existing responses.
self
.
assertFalse
(
self
.
thread_page
.
has_discussion_reply_editor
())
self
.
assertFalse
(
self
.
thread_page
.
is_response_editable
(
"response1"
))
self
.
assertFalse
(
self
.
thread_page
.
is_response_deletable
(
"response1"
))
# Verify that user can not add new comment to a response or modify existing responses.
self
.
assertFalse
(
self
.
thread_page
.
is_add_comment_visible
(
"response1"
))
self
.
assertFalse
(
self
.
thread_page
.
is_comment_editable
(
"comment1"
))
self
.
assertFalse
(
self
.
thread_page
.
is_comment_deletable
(
"comment1"
))
@attr
(
shard
=
2
)
class
DiscussionTabMultipleThreadTest
(
BaseDiscussionTestCase
):
...
...
lms/djangoapps/discussion/templates/discussion/discussion_board.html
View file @
68303997
...
...
@@ -6,6 +6,7 @@
<
%
inherit
file=
"../main.html"
/>
<
%
namespace
name=
'static'
file=
'../static_content.html'
/>
<
%!
import
json
from
django
.
utils
.
translation
import
ugettext
as
_
from
django
.
template
.
defaultfilters
import
escapejs
from
django
.
core
.
urlresolvers
import
reverse
...
...
@@ -48,11 +49,11 @@ DiscussionBoardFactory({
<
%
block
name=
"content"
>
<section
class=
"discussion discussion-board container"
id=
"discussion-container"
data-course-id=
"${course_id}"
data-user-create-comment=
"${
can_create_comment
}"
data-user-create-subcomment=
"${
can_create_subcomment
}"
data-user-create-comment=
"${
json.dumps(can_create_comment)
}"
data-user-create-subcomment=
"${
json.dumps(can_create_subcomment)
}"
data-read-only=
"false"
data-sort-preference=
"${sort_preference}"
data-flag-moderator=
"${
flag_moderator
}"
data-flag-moderator=
"${
json.dumps(flag_moderator)
}"
data-user-cohort-id=
"${user_cohort}"
>
<header
class=
"page-header has-secondary"
>
## Breadcrumb navigation
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment