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
8c5b203d
Commit
8c5b203d
authored
Aug 30, 2012
by
David Ormsbee
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #591 from MITx/kimth/gentler-frontend
A gentler, more helpful frontend
parents
4ce41c01
86409a2a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
43 additions
and
20 deletions
+43
-20
common/lib/capa/capa/responsetypes.py
+6
-3
common/lib/xmodule/xmodule/js/src/capa/display.coffee
+18
-9
common/lib/xmodule/xmodule/js/src/sequence/display.coffee
+19
-8
No files found.
common/lib/capa/capa/responsetypes.py
View file @
8c5b203d
...
...
@@ -8,6 +8,7 @@ Used by capa_problem.py
'''
# standard library imports
import
cgi
import
inspect
import
json
import
logging
...
...
@@ -725,7 +726,8 @@ class NumericalResponse(LoncapaResponse):
# I think this is just pyparsing.ParseException, calc.UndefinedVariable:
# But we'd need to confirm
except
:
raise
StudentInputError
(
'Invalid input -- please use a number only'
)
raise
StudentInputError
(
"Invalid input: could not parse '
%
s' as a number"
%
\
cgi
.
escape
(
student_answer
))
if
correct
:
return
CorrectMap
(
self
.
answer_id
,
'correct'
)
...
...
@@ -1517,11 +1519,12 @@ class FormulaResponse(LoncapaResponse):
cs
=
self
.
case_sensitive
)
except
UndefinedVariable
as
uv
:
log
.
debug
(
'formularesponse: undefined variable in given=
%
s'
%
given
)
raise
StudentInputError
(
uv
.
message
+
" not permitted in answer"
)
raise
StudentInputError
(
"Invalid input: "
+
uv
.
message
+
" not permitted in answer"
)
except
Exception
as
err
:
#traceback.print_exc()
log
.
debug
(
'formularesponse: error
%
s in formula'
%
err
)
raise
StudentInputError
(
"Error in formula"
)
raise
StudentInputError
(
"Invalid input: Could not parse '
%
s' as a formula"
%
\
cgi
.
escape
(
given
))
if
numpy
.
isnan
(
student_result
)
or
numpy
.
isinf
(
student_result
):
return
"incorrect"
if
not
compare_with_tolerance
(
student_result
,
instructor_result
,
self
.
tolerance
):
...
...
common/lib/xmodule/xmodule/js/src/capa/display.coffee
View file @
8c5b203d
...
...
@@ -192,8 +192,11 @@ class @Problem
if
file_not_selected
errors
.
push
'You did not select any files to submit'
if
errors
.
length
>
0
alert
errors
.
join
(
"
\n
"
)
error_html
=
'<ul>
\n
'
for
error
in
errors
error_html
+=
'<li>'
+
error
+
'</li>
\n
'
error_html
+=
'</ul>'
@
gentle_alert
error_html
abort_submission
=
file_too_large
or
file_not_selected
or
unallowed_file_submitted
or
required_files_not_submitted
...
...
@@ -208,7 +211,7 @@ class @Problem
@
render
(
response
.
contents
)
@
updateProgress
response
else
alert
(
response
.
success
)
@
gentle_alert
response
.
success
if
not
abort_submission
$
.
ajaxWithPrefix
(
"
#{
@
url
}
/problem_check"
,
settings
)
...
...
@@ -220,8 +223,10 @@ class @Problem
when
'incorrect'
,
'correct'
@
render
(
response
.
contents
)
@
updateProgress
response
if
@
el
.
hasClass
'showed'
@
el
.
removeClass
'showed'
else
alert
(
response
.
success
)
@
gentle_alert
response
.
success
reset
:
=>
Logger
.
log
'problem_reset'
,
@
answers
...
...
@@ -253,15 +258,19 @@ class @Problem
@
el
.
removeClass
'showed'
@
$
(
'.show'
).
val
'Show Answer'
gentle_alert
:
(
msg
)
=>
if
@
el
.
find
(
'.capa_alert'
).
length
@
el
.
find
(
'.capa_alert'
).
remove
()
alert_elem
=
"<div class='capa_alert'>"
+
msg
+
"</div>"
@
el
.
find
(
'.action'
).
after
(
alert_elem
)
@
el
.
find
(
'.capa_alert'
).
animate
(
opacity
:
0
,
500
).
animate
(
opacity
:
1
,
500
)
save
:
=>
Logger
.
log
'problem_save'
,
@
answers
$
.
postWithPrefix
"
#{
@
url
}
/problem_save"
,
@
answers
,
(
response
)
=>
if
response
.
success
if
@
el
.
find
(
'.save_message'
).
length
@
el
.
find
(
'.save_message'
).
animate
(
opacity
:
0
,
500
).
animate
(
opacity
:
1
,
500
)
else
saveMessage
=
"<div class='save_message'>Your answers have been saved but not graded. Hit 'Check' to grade them.</div>"
@
el
.
find
(
'.action'
).
after
(
saveMessage
)
saveMessage
=
"Your answers have been saved but not graded. Hit 'Check' to grade them."
@
gentle_alert
saveMessage
@
updateProgress
response
refreshMath
:
(
event
,
element
)
=>
...
...
common/lib/xmodule/xmodule/js/src/sequence/display.coffee
View file @
8c5b203d
...
...
@@ -2,6 +2,7 @@ class @Sequence
constructor
:
(
element
)
->
@
el
=
$
(
element
).
find
(
'.sequence'
)
@
contents
=
@
$
(
'.seq_contents'
)
@
num_contents
=
@
contents
.
length
@
id
=
@
el
.
data
(
'id'
)
@
modx_url
=
@
el
.
data
(
'course_modx_root'
)
@
initProgress
()
...
...
@@ -90,18 +91,28 @@ class @Sequence
@
toggleArrows
()
@
hookUpProgressEvent
()
sequence_links
=
@
$
(
'#seq_content a.seqnav'
)
sequence_links
.
click
@
goto
goto
:
(
event
)
=>
event
.
preventDefault
()
new_position
=
$
(
event
.
target
).
data
(
'element'
)
Logger
.
log
"seq_goto"
,
old
:
@
position
,
new
:
new_position
,
id
:
@
id
if
$
(
event
.
target
).
hasClass
'seqnav'
# Links from courseware <a class='seqnav' href='n'>...</a>
new_position
=
$
(
event
.
target
).
attr
(
'href'
)
else
# Tab links generated by backend template
new_position
=
$
(
event
.
target
).
data
(
'element'
)
if
(
1
<=
new_position
)
and
(
new_position
<=
@
num_contents
)
Logger
.
log
"seq_goto"
,
old
:
@
position
,
new
:
new_position
,
id
:
@
id
# On Sequence chage, destroy any existing polling thread
# for queued submissions, see ../capa/display.coffee
if
window
.
queuePollerID
window
.
clearTimeout
(
window
.
queuePollerID
)
delete
window
.
queuePollerID
# On Sequence chage, destroy any existing polling thread
# for queued submissions, see ../capa/display.coffee
if
window
.
queuePollerID
window
.
clearTimeout
(
window
.
queuePollerID
)
delete
window
.
queuePollerID
@
render
new_position
@
render
new_position
else
alert
'Sequence error! Cannot navigate to tab '
+
new_position
+
'in the current SequenceModule. Please contact the course staff.'
next
:
(
event
)
=>
event
.
preventDefault
()
...
...
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