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

« back to all changes in this revision

Viewing changes to ivle/webapp/tutorial/exercise.html

Added module ivle.config, which takes care of some work interfacing with
    configobj, including searching for the file and opening the object.
ivle.conf.conf now uses this instead of having its own search.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<html xmlns="http://www.w3.org/1999/xhtml"
2
2
      xmlns:py="http://genshi.edgewall.org/" py:strip="">
3
 
  <div class="exercise" id="${exercise.id}">
4
 
    <p><b>Exercise:</b> ${exercise.name}</p>
5
 
    <py:if test="description is not None">
6
 
      <div>${description}</div>
 
3
  <div class="exercise" id="exercise${exerciseid}">
 
4
    <p><b>Exercise:</b> ${exercisename}</p>
 
5
    <py:if test="exercisedesc is not None">
 
6
      <div>${exercisedesc}</div>
7
7
    </py:if>
8
 
    <input id="input_resettext_${exercise.id}" type="hidden" value="${exercise.partial}" />
9
 
    <textarea id="textarea_${exercise.id}" class="exercisebox"
10
 
        onkeypress="return catch_textbox_input(&quot;${exercise.id}&quot;, '${exercise.id}',
 
8
    <input id="input_resettext_exercise${exerciseid}" type="hidden" value="${exercisepartial_backup}" />
 
9
    <textarea id="textarea_exercise${exerciseid}" class="exercisebox"
 
10
        onkeypress="return catch_textbox_input(&quot;exercise${exerciseid}&quot;, '${filename}',
11
11
        event.keyCode)"
12
 
        onchange="set_saved_status(&quot;${exercise.id}&quot;, '${exercise.id}',
 
12
        onchange="set_saved_status(&quot;exercise${exerciseid}&quot;, '${filename}',
13
13
        &quot;Save&quot;)"
14
 
        cols="80" rows="${exercise.num_rows}">${exercisesave}</textarea>
 
14
        cols="80" rows="${rows}">${exercisepartial}</textarea>
15
15
    <div class="exercisebuttons">
16
 
      <py:if test="worksheet">
17
 
        <input type="button" value="Saved" disabled="disabled" id="savebutton_${exercise.id}"
18
 
            onclick="saveexercise(&quot;${exercise.id}&quot;, '${exercise.id}')"
19
 
            title="Save your solution to this exercise" />
20
 
        <input type="button" value="Reset" id="resetbutton_${exercise.id}"
21
 
            onclick="resetexercise(&quot;${exercise.id}&quot;, '${exercise.id}')"
22
 
            title="Reload the original partial solution for this exercise" />
23
 
      </py:if>
 
16
      <input type="button" value="Saved" disabled="disabled" id="savebutton_exercise${exerciseid}"
 
17
          onclick="saveexercise(&quot;exercise${exerciseid}&quot;, '${filename}')"
 
18
          title="Save your solution to this exercise" />
 
19
      <input type="button" value="Reset" id="resetbutton_exercise${exerciseid}"
 
20
          onclick="resetexercise(&quot;exercise${exerciseid}&quot;, '${filename}')"
 
21
          title="Reload the original partial solution for this exercise" />
24
22
      <input type="button" value="Run"
25
 
          onclick="runexercise(&quot;${exercise.id}&quot;, '${exercise.id}')"
 
23
          onclick="runexercise(&quot;exercise${exerciseid}&quot;, '${filename}')"
26
24
          title="Run this program in the console" />
27
25
      <input type="button" value="Submit"
28
 
              id="submitbutton_${exercise.id}"
29
 
              onclick="submitexercise(&quot;${exercise.id}&quot;, '${exercise.id}')"
 
26
              id="submitbutton_exercise${exerciseid}"
 
27
              onclick="submitexercise(&quot;exercise${exerciseid}&quot;, '${filename}')"
30
28
              title="Submit this solution for evaluation" />
31
29
    </div>
32
30
    <div class="testoutput">
33
31
    </div>
34
 
    <div py:if="worksheet" class="problem_summary">
 
32
    <div class="problem_summary">
35
33
      <ul>
36
 
        <li id="summaryli_${exercise.id}" class="${complete_class}">
37
 
          <b><span id="summarycomplete_${exercise.id}">${complete}</span>.</b>
38
 
            Attempts: <span id="summaryattempts_${exercise.id}">${attempts}</span>.
 
34
        <li id="summaryli_exercise${exerciseid}" class="${complete_class}">
 
35
          <b><span id="summarycomplete_exercise${exerciseid}">${complete}</span>.</b>
 
36
            Attempts: <span id="summaryattempts_exercise${exerciseid}">${attempts}</span>.
39
37
        </li>
40
38
      </ul>
41
39
    </div>
42
40
    <!-- This is filled in by javascript when the page loads -->
43
 
    <div py:if="worksheet" class="attempthistory">
 
41
    <div class="attempthistory">
44
42
      <p>
45
43
        <a title="Click to view previous submissions you have made for this exercise" 
46
 
              onclick="open_previous(&quot;${exercise.id}&quot;, '${exercise.id}')">
 
44
              onclick="open_previous(&quot;exercise${exerciseid}&quot;, '${filename}')">
47
45
          View previous attempts
48
46
        </a>
49
47
      </p>
50
48
    <div style="display: none">
51
49
      <h3>Previous attempts</h3>
52
50
        <p>
53
 
          <a title="Close the previous attempts" onclick="close_previous(&quot;${exercise.id}&quot;)">
 
51
          <a title="Close the previous attempts" onclick="close_previous(&quot;exercise${exerciseid}&quot;)">
54
52
            Close attempts
55
53
          </a>
56
54
        </p>
59
57
            <option></option>
60
58
          </select>
61
59
          <input type="button" value="View"
62
 
              onclick="select_attempt(&quot;${exercise.id}&quot;, '${exercise.id}')" />
 
60
              onclick="select_attempt(&quot;exercise${exerciseid}&quot;, '${filename}')" />
63
61
        </p>
64
62
        <p class="noattempts" style="display: none">
65
63
          No attempts have been made for this exercise.
66
64
        </p>
67
65
        <p>
68
 
          <textarea readonly="readonly" class="exercisebox" cols="80" rows="${exercise.num_rows}"
 
66
          <textarea readonly="readonly" class="exercisebox" cols="80" rows="${rows}"
69
67
              title="You submitted this code on a previous attempt">
70
68
          </textarea>
71
69
        </p>