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
cf4f3deb
Commit
cf4f3deb
authored
May 07, 2012
by
Piotr Mitros
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved extra settings into state. Added fs module for aux content
parent
a2ec2c0c
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
49 additions
and
33 deletions
+49
-33
djangoapps/courseware/module_render.py
+27
-10
djangoapps/courseware/modules/capa_module.py
+2
-2
djangoapps/courseware/modules/html_module.py
+4
-4
djangoapps/courseware/modules/schematic_module.py
+2
-2
djangoapps/courseware/modules/seq_module.py
+2
-3
djangoapps/courseware/modules/template_module.py
+2
-3
djangoapps/courseware/modules/vertical_module.py
+3
-2
djangoapps/courseware/modules/video_module.py
+2
-2
djangoapps/courseware/modules/x_module.py
+5
-5
No files found.
djangoapps/courseware/module_render.py
View file @
cf4f3deb
...
@@ -18,8 +18,12 @@ from django.http import HttpResponse
...
@@ -18,8 +18,12 @@ from django.http import HttpResponse
from
django.shortcuts
import
redirect
from
django.shortcuts
import
redirect
from
django.template
import
Context
from
django.template
import
Context
from
django.template
import
Context
,
loader
from
django.template
import
Context
,
loader
from
fs.osfs
import
OSFS
from
mitxmako.shortcuts
import
render_to_response
,
render_to_string
from
mitxmako.shortcuts
import
render_to_response
,
render_to_string
from
models
import
StudentModule
from
models
import
StudentModule
from
student.models
import
UserProfile
from
student.models
import
UserProfile
import
track.views
import
track.views
...
@@ -30,6 +34,13 @@ import courseware.modules
...
@@ -30,6 +34,13 @@ import courseware.modules
log
=
logging
.
getLogger
(
"mitx.courseware"
)
log
=
logging
.
getLogger
(
"mitx.courseware"
)
class
I4xSystem
(
object
):
def
__init__
(
self
,
**
args
):
self
.
ajax_url
=
args
[
'ajax_url'
]
self
.
track_function
=
args
[
'track_function'
]
self
.
filestore
=
OSFS
(
settings
.
DATA_DIR
)
self
.
render_function
=
args
[
'render_function'
]
def
object_cache
(
cache
,
user
,
module_type
,
module_id
):
def
object_cache
(
cache
,
user
,
module_type
,
module_id
):
# We don't look up on user -- all queries include user
# We don't look up on user -- all queries include user
# Additional lookup would require a DB hit the way Django
# Additional lookup would require a DB hit the way Django
...
@@ -76,12 +87,15 @@ def modx_dispatch(request, module=None, dispatch=None, id=None):
...
@@ -76,12 +87,15 @@ def modx_dispatch(request, module=None, dispatch=None, id=None):
xml
=
content_parser
.
module_xml
(
request
.
user
,
module
,
'id'
,
id
)
xml
=
content_parser
.
module_xml
(
request
.
user
,
module
,
'id'
,
id
)
# Create the module
# Create the module
instance
=
courseware
.
modules
.
get_module_class
(
module
)(
xml
,
system
=
I4xSystem
(
track_function
=
make_track_function
(
request
),
render_function
=
None
,
ajax_url
=
ajax_url
,
filestore
=
None
)
instance
=
courseware
.
modules
.
get_module_class
(
module
)(
system
,
xml
,
id
,
id
,
ajax_url
=
ajax_url
,
state
=
oldstate
)
state
=
oldstate
,
track_function
=
make_track_function
(
request
),
render_function
=
None
)
# Let the module handle the AJAX
# Let the module handle the AJAX
ajax_return
=
instance
.
handle_ajax
(
dispatch
,
request
.
POST
)
ajax_return
=
instance
.
handle_ajax
(
dispatch
,
request
.
POST
)
# Save the state back to the database
# Save the state back to the database
...
@@ -128,12 +142,15 @@ def render_x_module(user, request, xml_module, module_object_preload):
...
@@ -128,12 +142,15 @@ def render_x_module(user, request, xml_module, module_object_preload):
# Create a new instance
# Create a new instance
ajax_url
=
'/modx/'
+
module_type
+
'/'
+
module_id
+
'/'
ajax_url
=
'/modx/'
+
module_type
+
'/'
+
module_id
+
'/'
instance
=
module_class
(
etree
.
tostring
(
xml_module
),
system
=
I4xSystem
(
track_function
=
make_track_function
(
request
),
render_function
=
lambda
x
:
render_module
(
user
,
request
,
x
,
module_object_preload
),
ajax_url
=
ajax_url
,
filestore
=
None
)
instance
=
module_class
(
system
,
etree
.
tostring
(
xml_module
),
module_id
,
module_id
,
ajax_url
=
ajax_url
,
state
=
state
)
state
=
state
,
track_function
=
make_track_function
(
request
),
render_function
=
lambda
x
:
render_module
(
user
,
request
,
x
,
module_object_preload
))
# If instance wasn't already in the database, create it
# If instance wasn't already in the database, create it
if
not
smod
:
if
not
smod
:
...
...
djangoapps/courseware/modules/capa_module.py
View file @
cf4f3deb
...
@@ -131,8 +131,8 @@ class Module(XModule):
...
@@ -131,8 +131,8 @@ class Module(XModule):
return
html
return
html
def
__init__
(
self
,
xml
,
item_id
,
ajax_url
=
None
,
track_url
=
None
,
state
=
None
,
track_function
=
None
,
render_function
=
None
,
meta
=
None
):
def
__init__
(
self
,
system
,
xml
,
item_id
,
state
=
None
):
XModule
.
__init__
(
self
,
xml
,
item_id
,
ajax_url
,
track_url
,
state
,
track_function
,
render_function
)
XModule
.
__init__
(
self
,
system
,
xml
,
item_id
,
state
)
self
.
attempts
=
0
self
.
attempts
=
0
self
.
max_attempts
=
None
self
.
max_attempts
=
None
...
...
djangoapps/courseware/modules/html_module.py
View file @
cf4f3deb
...
@@ -24,13 +24,13 @@ class Module(XModule):
...
@@ -24,13 +24,13 @@ class Module(XModule):
textlist
=
[
i
for
i
in
textlist
if
type
(
i
)
==
str
]
textlist
=
[
i
for
i
in
textlist
if
type
(
i
)
==
str
]
return
""
.
join
(
textlist
)
return
""
.
join
(
textlist
)
try
:
try
:
filename
=
settings
.
DATA_DIR
+
"html/"
+
self
.
filename
filename
=
"html/"
+
self
.
filename
return
open
(
filename
)
.
read
()
return
self
.
filestore
.
open
(
filename
)
.
read
()
except
:
# For backwards compatibility. TODO: Remove
except
:
# For backwards compatibility. TODO: Remove
return
render_to_string
(
self
.
filename
,
{
'id'
:
self
.
item_id
})
return
render_to_string
(
self
.
filename
,
{
'id'
:
self
.
item_id
})
def
__init__
(
self
,
xml
,
item_id
,
ajax_url
=
None
,
track_url
=
None
,
state
=
None
,
track_function
=
None
,
render_function
=
None
):
def
__init__
(
self
,
system
,
xml
,
item_id
,
state
=
None
):
XModule
.
__init__
(
self
,
xml
,
item_id
,
ajax_url
,
track_url
,
state
,
track_function
,
render_function
)
XModule
.
__init__
(
self
,
system
,
xml
,
item_id
,
state
)
xmltree
=
etree
.
fromstring
(
xml
)
xmltree
=
etree
.
fromstring
(
xml
)
self
.
filename
=
None
self
.
filename
=
None
filename_l
=
xmltree
.
xpath
(
"/html/@filename"
)
filename_l
=
xmltree
.
xpath
(
"/html/@filename"
)
...
...
djangoapps/courseware/modules/schematic_module.py
View file @
cf4f3deb
...
@@ -19,6 +19,6 @@ class Module(XModule):
...
@@ -19,6 +19,6 @@ class Module(XModule):
def
get_html
(
self
):
def
get_html
(
self
):
return
'<input type="hidden" class="schematic" name="{item_id}" height="480" width="640">'
.
format
(
item_id
=
self
.
item_id
)
return
'<input type="hidden" class="schematic" name="{item_id}" height="480" width="640">'
.
format
(
item_id
=
self
.
item_id
)
def
__init__
(
self
,
xml
,
item_id
,
ajax_url
=
None
,
track_url
=
None
,
state
=
None
,
render_function
=
None
):
def
__init__
(
self
,
system
,
xml
,
item_id
,
state
=
None
):
XModule
.
__init__
(
self
,
xml
,
item_id
,
ajax_url
,
track_url
,
state
,
render_function
)
XModule
.
__init__
(
self
,
system
,
xml
,
item_id
,
state
)
djangoapps/courseware/modules/seq_module.py
View file @
cf4f3deb
...
@@ -107,9 +107,8 @@ class Module(XModule):
...
@@ -107,9 +107,8 @@ class Module(XModule):
self
.
rendered
=
True
self
.
rendered
=
True
def
__init__
(
self
,
system
,
xml
,
item_id
,
state
=
None
):
def
__init__
(
self
,
xml
,
item_id
,
ajax_url
=
None
,
track_url
=
None
,
state
=
None
,
track_function
=
None
,
render_function
=
None
):
XModule
.
__init__
(
self
,
system
,
xml
,
item_id
,
state
)
XModule
.
__init__
(
self
,
xml
,
item_id
,
ajax_url
,
track_url
,
state
,
track_function
,
render_function
)
self
.
xmltree
=
etree
.
fromstring
(
xml
)
self
.
xmltree
=
etree
.
fromstring
(
xml
)
self
.
position
=
1
self
.
position
=
1
...
...
djangoapps/courseware/modules/template_module.py
View file @
cf4f3deb
...
@@ -20,10 +20,9 @@ class Module(XModule):
...
@@ -20,10 +20,9 @@ class Module(XModule):
def
get_html
(
self
):
def
get_html
(
self
):
return
self
.
html
return
self
.
html
def
__init__
(
self
,
xml
,
item_id
,
ajax_url
=
None
,
track_url
=
None
,
state
=
None
,
track_function
=
None
,
render_function
=
None
):
def
__init__
(
self
,
system
,
xml
,
item_id
,
state
=
None
):
XModule
.
__init__
(
self
,
xml
,
item_id
,
ajax_url
,
track_url
,
state
,
track_function
,
render_function
)
XModule
.
__init__
(
self
,
system
,
xml
,
item_id
,
state
)
xmltree
=
etree
.
fromstring
(
xml
)
xmltree
=
etree
.
fromstring
(
xml
)
filename
=
xmltree
.
tag
filename
=
xmltree
.
tag
params
=
dict
(
xmltree
.
items
())
params
=
dict
(
xmltree
.
items
())
# print params
self
.
html
=
render_to_string
(
filename
,
params
,
namespace
=
'custom_tags'
)
self
.
html
=
render_to_string
(
filename
,
params
,
namespace
=
'custom_tags'
)
djangoapps/courseware/modules/vertical_module.py
View file @
cf4f3deb
...
@@ -26,8 +26,9 @@ class Module(XModule):
...
@@ -26,8 +26,9 @@ class Module(XModule):
def
get_destroy_js
(
self
):
def
get_destroy_js
(
self
):
return
self
.
destroy_js_text
return
self
.
destroy_js_text
def
__init__
(
self
,
xml
,
item_id
,
ajax_url
=
None
,
track_url
=
None
,
state
=
None
,
track_function
=
None
,
render_function
=
None
):
XModule
.
__init__
(
self
,
xml
,
item_id
,
ajax_url
,
track_url
,
state
,
track_function
,
render_function
)
def
__init__
(
self
,
system
,
xml
,
item_id
,
state
=
None
):
XModule
.
__init__
(
self
,
system
,
xml
,
item_id
,
state
)
xmltree
=
etree
.
fromstring
(
xml
)
xmltree
=
etree
.
fromstring
(
xml
)
self
.
contents
=
[(
e
.
get
(
"name"
),
self
.
render_function
(
e
))
\
self
.
contents
=
[(
e
.
get
(
"name"
),
self
.
render_function
(
e
))
\
for
e
in
xmltree
]
for
e
in
xmltree
]
...
...
djangoapps/courseware/modules/video_module.py
View file @
cf4f3deb
...
@@ -58,8 +58,8 @@ class Module(XModule):
...
@@ -58,8 +58,8 @@ class Module(XModule):
def
get_destroy_js
(
self
):
def
get_destroy_js
(
self
):
return
"videoDestroy(
\"
{0}
\"
);"
.
format
(
self
.
item_id
)
+
self
.
annotations_destroy
return
"videoDestroy(
\"
{0}
\"
);"
.
format
(
self
.
item_id
)
+
self
.
annotations_destroy
def
__init__
(
self
,
xml
,
item_id
,
ajax_url
=
None
,
track_url
=
None
,
state
=
None
,
track_function
=
None
,
render_function
=
None
):
def
__init__
(
self
,
system
,
xml
,
item_id
,
state
=
None
):
XModule
.
__init__
(
self
,
xml
,
item_id
,
ajax_url
,
track_url
,
state
,
track_function
,
render_function
)
XModule
.
__init__
(
self
,
system
,
xml
,
item_id
,
state
)
xmltree
=
etree
.
fromstring
(
xml
)
xmltree
=
etree
.
fromstring
(
xml
)
self
.
youtube
=
xmltree
.
get
(
'youtube'
)
self
.
youtube
=
xmltree
.
get
(
'youtube'
)
self
.
name
=
xmltree
.
get
(
'name'
)
self
.
name
=
xmltree
.
get
(
'name'
)
...
...
djangoapps/courseware/modules/x_module.py
View file @
cf4f3deb
...
@@ -45,13 +45,13 @@ class XModule(object):
...
@@ -45,13 +45,13 @@ class XModule(object):
get is a dictionary-like object '''
get is a dictionary-like object '''
return
""
return
""
def
__init__
(
self
,
xml
,
item_id
,
ajax_url
=
None
,
track_url
=
None
,
state
=
None
,
track_function
=
None
,
render_function
=
None
):
def
__init__
(
self
,
system
,
xml
,
item_id
,
track_url
=
None
,
state
=
None
):
''' In most cases, you must pass state or xml'''
''' In most cases, you must pass state or xml'''
self
.
xml
=
xml
self
.
xml
=
xml
self
.
item_id
=
item_id
self
.
item_id
=
item_id
self
.
ajax_url
=
ajax_url
self
.
track_url
=
track_url
self
.
state
=
state
self
.
state
=
state
self
.
tracker
=
track_function
self
.
render_function
=
render_function
self
.
ajax_url
=
system
.
ajax_url
self
.
tracker
=
system
.
track_function
self
.
filestore
=
system
.
filestore
self
.
render_function
=
system
.
render_function
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