~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/apps/tutorial/__init__.py

  • Committer: mattgiuca
  • Date: 2008-03-28 07:23:56 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:717
Tutorial: Bugfix - Reset Text was not escaped, so bad, horribly bad things
    happened for partial solutions with weird characters.
    Now URLencoded, and the JavaScript unencodes it.
    Also refactored code to print out all the buttons, since one huge format
    string was not good.

Show diffs side-by-side

added added

removed removed

Lines of Context:
444
444
    if exercisedesc is not None:
445
445
        req.write("<div>%s</div>\n" % exercisedesc)
446
446
    filename = cgi.escape(cjson.encode(exercisesrc), quote=True)
447
 
    exercisepartial = cgi.escape(exercisepartial)
448
447
    req.write("""<input id="input_resettext_exercise%d" type="hidden"
449
448
    value="%s" />"""
450
 
        % (exerciseid, exercisepartial_backup))
 
449
        % (exerciseid, urllib.quote(exercisepartial_backup)))
451
450
    req.write("""<textarea id="textarea_exercise%d" class="exercisebox"
452
451
    onkeypress="return catch_textbox_input(&quot;exercise%d&quot;, %s,
453
452
        event.keyCode)"
455
454
        &quot;Save&quot;)"
456
455
    cols="80" rows="%s">%s</textarea>"""
457
456
        % (exerciseid, exerciseid, filename, exerciseid, filename,
458
 
            rows, exercisepartial))
459
 
    req.write("""\n<div class="exercisebuttons">
460
 
  <input type="button" value="Reset"
 
457
            rows, cgi.escape(exercisepartial)))
 
458
    req.write("""\n<div class="exercisebuttons">\n""")
 
459
    req.write("""  <input type="button" value="Reset"
461
460
    id="resetbutton_exercise%d"
462
 
    onclick="resetexercise(&quot;exercise%d&quot;, %s)"
463
 
    title="Reload the original partial solution for this exercise" />
464
 
  <input type="button" value="Saved" disabled="disabled"
 
461
    onclick="resetexercise(&quot;exercise%d&quot;)"
 
462
    title="Reload the original partial solution for this exercise" />\n"""
 
463
        % (exerciseid, exerciseid))
 
464
    req.write("""  <input type="button" value="Saved" disabled="disabled"
465
465
    id="savebutton_exercise%d"
466
466
    onclick="saveexercise(&quot;exercise%d&quot;, %s)"
467
 
    title="Save your solution to this exercise" />
468
 
  <input type="button" value="Run"
 
467
    title="Save your solution to this exercise" />\n"""
 
468
        % (exerciseid, exerciseid, filename))
 
469
    req.write("""  <input type="button" value="Run"
469
470
    onclick="runexercise(&quot;exercise%d&quot;, %s)"
470
 
    title="Run this program in the console" />
471
 
  <input type="button" value="Submit"
 
471
    title="Run this program in the console" />\n"""
 
472
        % (exerciseid, filename))
 
473
    req.write("""  <input type="button" value="Submit"
472
474
    id="submitbutton_exercise%d"
473
475
    onclick="submitexercise(&quot;exercise%d&quot;, %s)"
474
 
    title="Submit this solution for evaluation" />
475
 
</div>
 
476
    title="Submit this solution for evaluation" />\n"""
 
477
        % (exerciseid, exerciseid, filename))
 
478
    req.write("""</div>
476
479
<div class="testoutput">
477
 
</div>
478
 
""" % (exerciseid, exerciseid, filename, exerciseid, exerciseid, filename,
479
 
        exerciseid, filename,
480
 
        exerciseid, exerciseid, filename))
 
480
</div>\n""")
481
481
    # Write the "summary" - whether this problem is complete and how many
482
482
    # attempts it has taken.
483
483
    req.write("""<div class="problem_summary">