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

« back to all changes in this revision

Viewing changes to ivle/webapp/submit/submit.html

Add an XHTMLUnauthorizedView which redirects unauthenticated users to the
login page if a page raises an Unauthorized. Alter UserSettingsView to raise
one in the right cases, for testing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<html xmlns="http://www.w3.org/1999/xhtml"
2
 
      xmlns:py="http://genshi.edgewall.org/">
3
 
  <head>
4
 
    <title>Submit project</title>
5
 
  </head>
6
 
  <body>
7
 
    <h1>Submit project</h1>
8
 
    <div id="ivle_padding">
9
 
      <py:choose test="offering">
10
 
        <div py:when="None">
11
 
          <p>You may not submit files from <span style="font-family: monospace">${path}</span> in
12
 
            <py:choose test="">
13
 
              <span py:when="principal is req.user">your repository.</span>
14
 
              <span py:otherwise="">the repository for ${principal.display_name}.</span>
15
 
            </py:choose>
16
 
            You can only submit files from a subject directory.
17
 
          </p>
18
 
        </div>
19
 
        <div py:otherwise="">
20
 
          <p>You are submitting <span style="font-family: monospace">${path}</span> from
21
 
            <py:choose test="">
22
 
              <span py:when="principal is req.user">your repository.</span>
23
 
              <span py:otherwise="">the repository for ${principal.display_name}.</span>
24
 
            </py:choose>
25
 
          </p>
26
 
          <p>You may submit to any open project in ${offering.subject.name}. Which project do you wish to submit this for?</p>
27
 
          <form action="" method="post">
28
 
            <table>
29
 
              <tr py:for="project in principal.get_projects(offering=offering)"
30
 
                  py:attrs="{'class': 'project closed'} if project.has_deadline_passed(req.user) else {'class': 'project'}">
31
 
                <td style="vertical-align: top">
32
 
                  <input type="radio" name="project" id="project_${project.id}" value="${project.id}" />
33
 
                </td>
34
 
                <td>
35
 
                  <label for="project_${project.id}">
36
 
                    <py:choose test="project.url not in (None, '')">
37
 
                      <a py:when="True" href="${project.url}">${project.name}</a>
38
 
                      <span py:otherwise="">${project.name}</span> 
39
 
                    </py:choose>
40
 
                    &ndash;
41
 
                    <span py:content="format_submission_principal(req.user, principal)" /> &ndash;
42
 
                    <!-- XXX This deadline does not take the student's extensions into account. -->
43
 
                    <span title="${format_datetime(project.deadline)}">
44
 
                      ${'closed' if project.has_deadline_passed(req.user) else 'due'} ${format_datetime_short(project.deadline)}
45
 
                    </span>
46
 
                    <py:if test="principal is not None"
47
 
                           py:with="submissions = project.get_submissions_for_principal(principal)">
48
 
                      &ndash;
49
 
                      <py:choose test="submissions.count()">
50
 
                        <span py:when="0">
51
 
                          not yet submitted
52
 
                        </span>
53
 
                        <span py:otherwise=""
54
 
                              py:with="latest = submissions.last()"
55
 
                              title="${format_datetime(latest.date_submitted)}">
56
 
                          last submitted ${format_datetime_short(latest.date_submitted)}
57
 
                        </span>
58
 
                      </py:choose>
59
 
                    </py:if>
60
 
                    <br />
61
 
                    ${project.synopsis}
62
 
                    <py:if test="project.has_deadline_passed(req.user)"><br />
63
 
                      <em>Note: The deadline has passed. You may still submit late, but a penalty may be incurred.</em>
64
 
                    </py:if>
65
 
                  </label>
66
 
                </td>
67
 
              </tr>
68
 
            </table>
69
 
            <p>Ensure that you have committed all changes - only changes in the repository will be submitted.</p>
70
 
            <p>You may resubmit a project again at any time, but a new submission will overwrite any made earlier, and submissions after the deadline may incur a penalty.</p>
71
 
            <p><input type="submit" value="Submit Project" />
72
 
              <a class="helpaction" href="/+help/Submitting%20a%20project">Help submitting a project</a>
73
 
            </p>
74
 
          </form>
75
 
        </div>
76
 
      </py:choose>
77
 
    </div>
78
 
  </body>
79
 
</html>