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
23269359
Commit
23269359
authored
May 20, 2013
by
Vik Paruchuri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Jasmine tests, fix some review issues
parent
7699c179
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
168 additions
and
5 deletions
+168
-5
common/lib/xmodule/xmodule/js/fixtures/combinedopenended-with-markdown.html
+7
-0
common/lib/xmodule/xmodule/js/fixtures/combinedopenended-without-markdown.html
+6
-0
common/lib/xmodule/xmodule/js/fixtures/problem-with-markdown.html
+2
-1
common/lib/xmodule/xmodule/js/spec/combinedopenended/edit_spec.coffee
+145
-0
common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee
+6
-2
lms/djangoapps/courseware/module_render.py
+2
-2
No files found.
common/lib/xmodule/xmodule/js/fixtures/combinedopenended-with-markdown.html
0 → 100644
View file @
23269359
<section
class=
"combinedopenended-editor editor"
>
<div
class=
"row"
>
<textarea
class=
"markdown-box"
>
markdown
</textarea>
<textarea
class=
"xml-box"
rows=
"8"
cols=
"40"
>
xml
</textarea>
</div>
</section>
\ No newline at end of file
common/lib/xmodule/xmodule/js/fixtures/combinedopenended-without-markdown.html
0 → 100644
View file @
23269359
<section
class=
"combinedopenended-editor editor"
>
<div
class=
"row"
>
<textarea
class=
"xml-box"
rows=
"8"
cols=
"40"
>
xml only
</textarea>
</div>
</section>
\ No newline at end of file
common/lib/xmodule/xmodule/js/fixtures/problem-with-markdown.html
View file @
23269359
<section
class=
"problem-editor editor"
>
<div
class=
"row"
>
<textarea
class=
"markdown-box"
>
markdown
</textarea>
<textarea
class=
"markdown-box"
>
[prompt]prompt[prompt]
</textarea>
<textarea
class=
"xml-box"
rows=
"8"
cols=
"40"
>
xml
</textarea>
</div>
</section>
\ No newline at end of file
common/lib/xmodule/xmodule/js/spec/combinedopenended/edit_spec.coffee
0 → 100644
View file @
23269359
describe
'OpenEndedMarkdownEditingDescriptor'
,
->
describe
'save stores the correct data'
,
->
it
'saves markdown from markdown editor'
,
->
loadFixtures
'combinedopenended-with-markdown.html'
@
descriptor
=
new
OpenEndedMarkdownEditingDescriptor
(
$
(
'.combinedopenended-editor'
))
saveResult
=
@
descriptor
.
save
()
expect
(
saveResult
.
metadata
.
markdown
).
toEqual
(
'markdown'
)
expect
(
saveResult
.
data
).
toEqual
(
'<combinedopenended>
\n
markdown
\n
</combinedopenended>'
)
it
'clears markdown when xml editor is selected'
,
->
loadFixtures
'combinedopenended-with-markdown.html'
@
descriptor
=
new
OpenEndedMarkdownEditingDescriptor
(
$
(
'.combinedopenended-editor'
))
@
descriptor
.
createXMLEditor
(
'replace with markdown'
)
saveResult
=
@
descriptor
.
save
()
expect
(
saveResult
.
metadata
.
markdown
).
toEqual
(
null
)
expect
(
saveResult
.
data
).
toEqual
(
'replace with markdown'
)
it
'saves xml from the xml editor'
,
->
loadFixtures
'combinedopenended-without-markdown.html'
@
descriptor
=
new
OpenEndedMarkdownEditingDescriptor
(
$
(
'.combinedopenended-editor'
))
saveResult
=
@
descriptor
.
save
()
expect
(
saveResult
.
metadata
.
markdown
).
toEqual
(
null
)
expect
(
saveResult
.
data
).
toEqual
(
'xml only'
)
describe
'insertPrompt'
,
->
it
'inserts the template if selection is empty'
,
->
revisedSelection
=
OpenEndedMarkdownEditingDescriptor
.
insertPrompt
(
''
)
expect
(
revisedSelection
).
toEqual
(
OpenEndedMarkdownEditingDescriptor
.
promptTemplate
)
it
'recognizes html in the prompt'
,
->
revisedSelection
=
OpenEndedMarkdownEditingDescriptor
.
insertPrompt
(
'[prompt]<h1>Hello</h1>[prompt]'
)
expect
(
revisedSelection
).
toEqual
(
'[prompt]<h1>Hello</h1>[prompt]'
)
describe
'insertRubric'
,
->
it
'inserts the template if selection is empty'
,
->
revisedSelection
=
OpenEndedMarkdownEditingDescriptor
.
insertRubric
(
''
)
expect
(
revisedSelection
).
toEqual
(
OpenEndedMarkdownEditingDescriptor
.
rubricTemplate
)
it
'recognizes a proper rubric'
,
->
revisedSelection
=
OpenEndedMarkdownEditingDescriptor
.
insertRubric
(
'[rubric]
\n
+1
\n
-1
\n
-2
\n
[rubric]'
)
expect
(
revisedSelection
).
toEqual
(
'[rubric]
\n
+1
\n
-1
\n
-2
\n
[rubric]'
)
describe
'insertTasks'
,
->
it
'inserts the template if selection is empty'
,
->
revisedSelection
=
OpenEndedMarkdownEditingDescriptor
.
insertTasks
(
''
)
expect
(
revisedSelection
).
toEqual
(
OpenEndedMarkdownEditingDescriptor
.
tasksTemplate
)
it
'recognizes a proper task string'
,
->
revisedSelection
=
OpenEndedMarkdownEditingDescriptor
.
insertTasks
(
'[tasks](Self)[tasks]'
)
expect
(
revisedSelection
).
toEqual
(
'[tasks](Self)[tasks]'
)
describe
'markdownToXml'
,
->
# test default templates
it
'converts prompt to xml'
,
->
data
=
OpenEndedMarkdownEditingDescriptor
.
markdownToXml
(
"""[prompt]
<h1>Prompt!</h1>
This is my super awesome prompt.
[prompt]
"""
)
data
=
data
.
replace
(
/[\t\n\s]/gmi
,
''
)
expect
(
data
).
toEqual
(
"""
<combinedopenended>
<prompt>
<h1>Prompt!</h1>
This is my super awesome prompt.
</prompt>
</combinedopenended>
"""
.
replace
(
/[\t\n\s]/gmi
,
''
))
it
'converts rubric to xml'
,
->
data
=
OpenEndedMarkdownEditingDescriptor
.
markdownToXml
(
"""[rubric]
+ 1
-1
-2
+ 2
-1
-2
+3
-1
-2
-3
[rubric]
"""
)
data
=
data
.
replace
(
/[\t\n\s]/gmi
,
''
)
expect
(
data
).
toEqual
(
"""
<combinedopenended>
<rubric>
<rubric>
<category>
<description>1</description>
<option>1</option>
<option>2</option>
</category>
<category>
<description>2</description>
<option>1</option>
<option>2</option>
</category>
<category>
<description>3</description>
<option>1</option>
<option>2</option>
<option>3</option>
</category>
</rubric>
</rubric>
</combinedopenended>
"""
.
replace
(
/[\t\n\s]/gmi
,
''
))
it
'converts tasks to xml'
,
->
data
=
OpenEndedMarkdownEditingDescriptor
.
markdownToXml
(
"""[tasks]
(Self), ({1-2}AI), ({1-4}AI), ({1-2}Peer
[tasks]
"""
)
data
=
data
.
replace
(
/[\t\n\s]/gmi
,
''
)
equality_list
=
"""
<combinedopenended>
<task>
<selfassessment/>
</task>
<task>
<openended min_score_to_attempt="1" max_score_to_attempt="2">
<openendedparam>
<initial_display>Enter essay here.</initial_display>
<answer_display>This is the answer.</answer_display>
<grader_payload>{"grader_settings" : "ml_grading.conf", "problem_id" : "6.002x/Welcome/OETest"}</grader_payload>
</openendedparam>
</openended>
</task>
<task>
<openended min_score_to_attempt="1" max_score_to_attempt="4">
<openendedparam>
<initial_display>Enter essay here.</initial_display>
<answer_display>This is the answer.</answer_display>
<grader_payload>{"grader_settings" : "ml_grading.conf", "problem_id" : "6.002x/Welcome/OETest"}</grader_payload>
</openendedparam>
</openended>
</task>
<task>
<openended min_score_to_attempt="1" max_score_to_attempt="2">
<openendedparam>
<initial_display>Enter essay here.</initial_display>
<answer_display>This is the answer.</answer_display>
<grader_payload>{"grader_settings" : "peer_grading.conf", "problem_id" : "6.002x/Welcome/OETest"}</grader_payload>
</openendedparam>
</openended>
</task>
</combinedopenended>
"""
expect
(
data
).
toEqual
(
equality_list
.
replace
(
/[\t\n\s]/gmi
,
''
))
common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee
View file @
23269359
...
...
@@ -131,8 +131,12 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor
@
insertGenericInput
:
(
selectedText
,
lineStart
,
lineEnd
,
template
)
->
if
selectedText
.
length
>
0
# TODO: should this insert a newline afterwards?
return
lineStart
+
selectedText
+
lineEnd
new_string
=
selectedText
.
replace
(
/^\s+|\s+$/g
,
''
)
if
new_string
.
substring
(
0
,
lineStart
.
length
)
!=
lineStart
new_string
=
lineStart
+
new_string
if
new_string
.
substring
((
new_string
.
length
)
-
lineEnd
.
length
,
new_string
.
length
)
!=
lineEnd
new_string
=
new_string
+
lineEnd
return
new_string
else
return
template
...
...
lms/djangoapps/courseware/module_render.py
View file @
23269359
...
...
@@ -217,8 +217,8 @@ def get_module_for_descriptor(user, request, descriptor, model_data_cache, cours
#this first checks to see if the descriptor is the correct one, and only sends settings if it is
#Get descriptor metadata fields indicating needs for various settings
needs_open_ended_interface
=
hasattr
(
descriptor
,
"needs_open_ended_interface"
)
and
descriptor
.
needs_open_ended_interface
needs_s3_interface
=
hasattr
(
descriptor
,
"needs_s3_interface"
)
and
descriptor
.
needs_s3_interface
needs_open_ended_interface
=
hasattr
(
descriptor
,
"needs_open_ended_interface"
,
False
)
needs_s3_interface
=
hasattr
(
descriptor
,
"needs_s3_interface"
,
False
)
#Initialize interfaces to None
open_ended_grading_interface
=
None
...
...
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