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
2118453e
You need to sign in or sign up before continuing.
Commit
2118453e
authored
10 years ago
by
Daniel Friedman
Committed by
cahrens
10 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Include edited/published_by for container page only
parent
9d6d98b3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
10 deletions
+15
-10
cms/djangoapps/contentstore/views/component.py
+1
-1
cms/djangoapps/contentstore/views/item.py
+7
-3
cms/djangoapps/contentstore/views/tests/test_item.py
+7
-6
No files found.
cms/djangoapps/contentstore/views/component.py
View file @
2118453e
...
@@ -176,7 +176,7 @@ def container_handler(request, usage_key_string):
...
@@ -176,7 +176,7 @@ def container_handler(request, usage_key_string):
# Fetch the XBlock info for use by the container page. Note that it includes information
# Fetch the XBlock info for use by the container page. Note that it includes information
# about the block's ancestors and siblings for use by the Unit Outline.
# about the block's ancestors and siblings for use by the Unit Outline.
xblock_info
=
create_xblock_info
(
xblock
,
include_ancestor_info
=
is_unit_page
)
xblock_info
=
create_xblock_info
(
xblock
,
include_ancestor_info
=
is_unit_page
,
include_edited_by
=
True
,
include_published_by
=
True
)
# Create the link for preview.
# Create the link for preview.
preview_lms_base
=
settings
.
FEATURES
.
get
(
'PREVIEW_LMS_BASE'
)
preview_lms_base
=
settings
.
FEATURES
.
get
(
'PREVIEW_LMS_BASE'
)
...
...
This diff is collapsed.
Click to expand it.
cms/djangoapps/contentstore/views/item.py
View file @
2118453e
...
@@ -587,7 +587,7 @@ def _get_module_info(xblock, rewrite_static_links=True):
...
@@ -587,7 +587,7 @@ def _get_module_info(xblock, rewrite_static_links=True):
def
create_xblock_info
(
xblock
,
data
=
None
,
metadata
=
None
,
include_ancestor_info
=
False
,
include_child_info
=
False
,
def
create_xblock_info
(
xblock
,
data
=
None
,
metadata
=
None
,
include_ancestor_info
=
False
,
include_child_info
=
False
,
include_children_predicate
=
NEVER
):
include_
edited_by
=
False
,
include_published_by
=
False
,
include_
children_predicate
=
NEVER
):
"""
"""
Creates the information needed for client-side XBlockInfo.
Creates the information needed for client-side XBlockInfo.
...
@@ -640,10 +640,8 @@ def create_xblock_info(xblock, data=None, metadata=None, include_ancestor_info=F
...
@@ -640,10 +640,8 @@ def create_xblock_info(xblock, data=None, metadata=None, include_ancestor_info=F
"display_name"
:
xblock
.
display_name_with_default
,
"display_name"
:
xblock
.
display_name_with_default
,
"category"
:
xblock
.
category
,
"category"
:
xblock
.
category
,
"edited_on"
:
get_default_time_display
(
xblock
.
subtree_edited_on
)
if
xblock
.
subtree_edited_on
else
None
,
"edited_on"
:
get_default_time_display
(
xblock
.
subtree_edited_on
)
if
xblock
.
subtree_edited_on
else
None
,
"edited_by"
:
safe_get_username
(
xblock
.
subtree_edited_by
),
"published"
:
published
,
"published"
:
published
,
"published_on"
:
get_default_time_display
(
xblock
.
published_date
)
if
xblock
.
published_date
else
None
,
"published_on"
:
get_default_time_display
(
xblock
.
published_date
)
if
xblock
.
published_date
else
None
,
"published_by"
:
safe_get_username
(
xblock
.
published_by
),
'studio_url'
:
xblock_studio_url
(
xblock
),
'studio_url'
:
xblock_studio_url
(
xblock
),
"released_to_students"
:
datetime
.
now
(
UTC
)
>
xblock
.
start
,
"released_to_students"
:
datetime
.
now
(
UTC
)
>
xblock
.
start
,
"release_date"
:
release_date
,
"release_date"
:
release_date
,
...
@@ -659,6 +657,12 @@ def create_xblock_info(xblock, data=None, metadata=None, include_ancestor_info=F
...
@@ -659,6 +657,12 @@ def create_xblock_info(xblock, data=None, metadata=None, include_ancestor_info=F
xblock_info
[
'ancestor_info'
]
=
_create_xblock_ancestor_info
(
xblock
)
xblock_info
[
'ancestor_info'
]
=
_create_xblock_ancestor_info
(
xblock
)
if
child_info
:
if
child_info
:
xblock_info
[
'child_info'
]
=
child_info
xblock_info
[
'child_info'
]
=
child_info
# Currently, 'edited_by' and 'published_by' are only used by the container page. Only compute them when asked to do
# so, since safe_get_username() is expensive.
if
include_edited_by
:
xblock_info
[
'edited_by'
]
=
safe_get_username
(
xblock
.
subtree_edited_by
)
if
include_published_by
:
xblock_info
[
'published_by'
]
=
safe_get_username
(
xblock
.
published_by
)
# On the unit page only, add 'has_changes' to indicate when there are changes that can be discarded.
# On the unit page only, add 'has_changes' to indicate when there are changes that can be discarded.
# We don't add it in general because it is an expensive operation.
# We don't add it in general because it is an expensive operation.
if
is_xblock_unit
:
if
is_xblock_unit
:
...
...
This diff is collapsed.
Click to expand it.
cms/djangoapps/contentstore/views/tests/test_item.py
View file @
2118453e
...
@@ -1133,6 +1133,7 @@ class TestXBlockInfo(ItemTest):
...
@@ -1133,6 +1133,7 @@ class TestXBlockInfo(ItemTest):
xblock_info
=
create_xblock_info
(
xblock_info
=
create_xblock_info
(
vertical
,
vertical
,
include_child_info
=
True
,
include_child_info
=
True
,
include_edited_by
=
True
,
include_children_predicate
=
ALWAYS
,
include_children_predicate
=
ALWAYS
,
include_ancestor_info
=
True
include_ancestor_info
=
True
)
)
...
@@ -1167,7 +1168,6 @@ class TestXBlockInfo(ItemTest):
...
@@ -1167,7 +1168,6 @@ class TestXBlockInfo(ItemTest):
self
.
assertEqual
(
xblock_info
[
'id'
],
'i4x://MITx/999/chapter/Week_1'
)
self
.
assertEqual
(
xblock_info
[
'id'
],
'i4x://MITx/999/chapter/Week_1'
)
self
.
assertEqual
(
xblock_info
[
'display_name'
],
'Week 1'
)
self
.
assertEqual
(
xblock_info
[
'display_name'
],
'Week 1'
)
self
.
assertTrue
(
xblock_info
[
'published'
])
self
.
assertTrue
(
xblock_info
[
'published'
])
self
.
assertEqual
(
xblock_info
[
'edited_by'
],
'testuser'
)
# Finally, validate the entire response for consistency
# Finally, validate the entire response for consistency
self
.
validate_xblock_info_consistency
(
xblock_info
,
has_child_info
=
has_child_info
)
self
.
validate_xblock_info_consistency
(
xblock_info
,
has_child_info
=
has_child_info
)
...
@@ -1180,7 +1180,6 @@ class TestXBlockInfo(ItemTest):
...
@@ -1180,7 +1180,6 @@ class TestXBlockInfo(ItemTest):
self
.
assertEqual
(
xblock_info
[
'id'
],
'i4x://MITx/999/sequential/Lesson_1'
)
self
.
assertEqual
(
xblock_info
[
'id'
],
'i4x://MITx/999/sequential/Lesson_1'
)
self
.
assertEqual
(
xblock_info
[
'display_name'
],
'Lesson 1'
)
self
.
assertEqual
(
xblock_info
[
'display_name'
],
'Lesson 1'
)
self
.
assertTrue
(
xblock_info
[
'published'
])
self
.
assertTrue
(
xblock_info
[
'published'
])
self
.
assertEqual
(
xblock_info
[
'edited_by'
],
'testuser'
)
# Finally, validate the entire response for consistency
# Finally, validate the entire response for consistency
self
.
validate_xblock_info_consistency
(
xblock_info
,
has_child_info
=
has_child_info
)
self
.
validate_xblock_info_consistency
(
xblock_info
,
has_child_info
=
has_child_info
)
...
@@ -1205,7 +1204,7 @@ class TestXBlockInfo(ItemTest):
...
@@ -1205,7 +1204,7 @@ class TestXBlockInfo(ItemTest):
self
.
validate_course_xblock_info
(
ancestors
[
2
],
has_child_info
=
False
)
self
.
validate_course_xblock_info
(
ancestors
[
2
],
has_child_info
=
False
)
# Finally, validate the entire response for consistency
# Finally, validate the entire response for consistency
self
.
validate_xblock_info_consistency
(
xblock_info
,
has_child_info
=
True
,
has_ancestor_info
=
True
)
self
.
validate_xblock_info_consistency
(
xblock_info
,
has_child_info
=
True
,
has_ancestor_info
=
True
,
has_edited_by
=
True
)
def
validate_component_xblock_info
(
self
,
xblock_info
):
def
validate_component_xblock_info
(
self
,
xblock_info
):
"""
"""
...
@@ -1215,12 +1214,11 @@ class TestXBlockInfo(ItemTest):
...
@@ -1215,12 +1214,11 @@ class TestXBlockInfo(ItemTest):
self
.
assertEqual
(
xblock_info
[
'id'
],
'i4x://MITx/999/video/My_Video'
)
self
.
assertEqual
(
xblock_info
[
'id'
],
'i4x://MITx/999/video/My_Video'
)
self
.
assertEqual
(
xblock_info
[
'display_name'
],
'My Video'
)
self
.
assertEqual
(
xblock_info
[
'display_name'
],
'My Video'
)
self
.
assertTrue
(
xblock_info
[
'published'
])
self
.
assertTrue
(
xblock_info
[
'published'
])
self
.
assertEqual
(
xblock_info
[
'edited_by'
],
'testuser'
)
# Finally, validate the entire response for consistency
# Finally, validate the entire response for consistency
self
.
validate_xblock_info_consistency
(
xblock_info
)
self
.
validate_xblock_info_consistency
(
xblock_info
)
def
validate_xblock_info_consistency
(
self
,
xblock_info
,
has_ancestor_info
=
False
,
has_child_info
=
False
):
def
validate_xblock_info_consistency
(
self
,
xblock_info
,
has_ancestor_info
=
False
,
has_child_info
=
False
,
has_edited_by
=
False
):
"""
"""
Validate that the xblock info is internally consistent.
Validate that the xblock info is internally consistent.
"""
"""
...
@@ -1228,7 +1226,6 @@ class TestXBlockInfo(ItemTest):
...
@@ -1228,7 +1226,6 @@ class TestXBlockInfo(ItemTest):
self
.
assertIsNotNone
(
xblock_info
[
'id'
])
self
.
assertIsNotNone
(
xblock_info
[
'id'
])
self
.
assertIsNotNone
(
xblock_info
[
'category'
])
self
.
assertIsNotNone
(
xblock_info
[
'category'
])
self
.
assertTrue
(
xblock_info
[
'published'
])
self
.
assertTrue
(
xblock_info
[
'published'
])
self
.
assertEqual
(
xblock_info
[
'edited_by'
],
'testuser'
)
if
has_ancestor_info
:
if
has_ancestor_info
:
self
.
assertIsNotNone
(
xblock_info
.
get
(
'ancestor_info'
,
None
))
self
.
assertIsNotNone
(
xblock_info
.
get
(
'ancestor_info'
,
None
))
ancestors
=
xblock_info
[
'ancestor_info'
][
'ancestors'
]
ancestors
=
xblock_info
[
'ancestor_info'
][
'ancestors'
]
...
@@ -1249,6 +1246,10 @@ class TestXBlockInfo(ItemTest):
...
@@ -1249,6 +1246,10 @@ class TestXBlockInfo(ItemTest):
)
)
else
:
else
:
self
.
assertIsNone
(
xblock_info
.
get
(
'child_info'
,
None
))
self
.
assertIsNone
(
xblock_info
.
get
(
'child_info'
,
None
))
if
has_edited_by
:
self
.
assertEqual
(
xblock_info
[
'edited_by'
],
'testuser'
)
else
:
self
.
assertIsNone
(
xblock_info
.
get
(
'edited_by'
,
None
))
class
TestXBlockPublishingInfo
(
ItemTest
):
class
TestXBlockPublishingInfo
(
ItemTest
):
...
...
This diff is collapsed.
Click to expand it.
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