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
ea1100d4
Commit
ea1100d4
authored
Nov 15, 2012
by
Calen Pennington
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add examples of render and render_childe
parent
d521a21a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
3 deletions
+28
-3
common/lib/xmodule/xmodule/vertical_module.py
+1
-1
common/lib/xmodule/xmodule/xmodule.py
+27
-2
No files found.
common/lib/xmodule/xmodule/vertical_module.py
View file @
ea1100d4
...
@@ -14,7 +14,7 @@ class VerticalModule(XModule):
...
@@ -14,7 +14,7 @@ class VerticalModule(XModule):
@register_view
(
'student_view'
)
@register_view
(
'student_view'
)
def
get_html
(
self
):
def
get_html
(
self
):
return
render_template
(
'vert_module.html'
,
{
return
render_template
(
'vert_module.html'
,
{
'items'
:
[
child
.
render
(
)
for
child
in
self
.
children
]
'items'
:
[
self
.
render_child
(
child
)
for
child
in
self
.
children
]
})
})
def
get_progress
(
self
):
def
get_progress
(
self
):
...
...
common/lib/xmodule/xmodule/xmodule.py
View file @
ea1100d4
...
@@ -186,10 +186,35 @@ class XModule(Plugin, HTMLSnippet):
...
@@ -186,10 +186,35 @@ class XModule(Plugin, HTMLSnippet):
self
.
user_preferences
=
user_preferences
self
.
user_preferences
=
user_preferences
self
.
student_state
=
student_state
self
.
student_state
=
student_state
def
render
(
self
,
view_name
):
@staticmethod
def
render
(
module
,
view_name
):
"""
Render the specified view from the supplied module
view_name: The string name of the view to render
module: The XModule to render
"""
# Make children use the appropriate render context
try
:
setattr
(
module
,
'view_name'
,
view_name
)
return
module
.
find_view
(
view_name
)()
finally
:
delattr
(
module
,
'view_name'
)
def
render_child
(
self
,
child
,
view_name
=
None
):
"""
Render a view on a child module. If view_name isn't supplied,
render the same view on the child that is currently being rendered on the parent
"""
if
view_name
is
None
:
view_name
=
getattr
(
self
,
'view_name'
)
return
XModule
.
render
(
child
,
view_name
)
def
find_view
(
self
,
view_name
):
for
method_name
,
method_fn
in
inspect
.
getmembers
(
self
,
lambda
m
:
inspect
.
ismethod
(
m
)):
for
method_name
,
method_fn
in
inspect
.
getmembers
(
self
,
lambda
m
:
inspect
.
ismethod
(
m
)):
if
getattr
(
method_fn
,
'view_name'
,
None
)
is
not
None
:
if
getattr
(
method_fn
,
'view_name'
,
None
)
is
not
None
:
return
method_fn
()
return
method_fn
@property
@property
def
children
(
self
):
def
children
(
self
):
...
...
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