1
<html xmlns="http://www.w3.org/1999/xhtml"
2
xmlns:py="http://genshi.edgewall.org/">
4
<title>Submit project</title>
7
<h1>Submit project</h1>
8
<div id="ivle_padding">
9
<py:choose test="offering">
11
<p>Error: IVLE could not find a valid offering to submit to, from <span style="font-family: monospace">${path}</span> in
13
<span py:when="principal is req.user">your repository.</span>
14
<span py:otherwise="">the repository for ${principal.display_name}.</span>
16
This may have one of the following causes:
19
<li>You are not in a subject directory. You can only submit files from a subject directory. For example, you cannot submit a file from your "<code>stuff</code>" directory.</li>
20
<li>You are not enrolled in the subject of that name. You can only submit files to a subject you are enrolled in.</li>
21
<li>You are enrolled in a past (or even future) offering of the subject. You can only submit files to a current offering of a subject.</li>
25
<p>You are submitting <span style="font-family: monospace">${path}</span> from
27
<span py:when="principal is req.user">your repository.</span>
28
<span py:otherwise="">the repository for ${principal.display_name}.</span>
31
<p>You may submit to any open project in ${offering.subject.name}. Which project do you wish to submit this for?</p>
32
<form action="" method="post">
34
<tr py:for="project in principal.get_projects(offering=offering)"
35
py:attrs="{'class': 'project closed'} if project.has_deadline_passed(req.user) else {'class': 'project'}">
36
<td style="vertical-align: top">
37
<input type="radio" name="project" id="project_${project.id}" value="${project.id}" />
40
<label for="project_${project.id}">
41
<py:choose test="project.url not in (None, '')">
42
<a py:when="True" href="${project.url}">${project.name}</a>
43
<span py:otherwise="">${project.name}</span>
46
<span py:content="format_submission_principal(req.user, principal)" /> –
47
<!-- XXX This deadline does not take the student's extensions into account. -->
48
<span title="${format_datetime(project.deadline)}">
49
${'closed' if project.has_deadline_passed(req.user) else 'due'} ${format_datetime_short(project.deadline)}
51
<py:if test="principal is not None"
52
py:with="submissions = project.get_submissions_for_principal(principal)">
54
<py:choose test="submissions.count()">
59
py:with="latest = submissions.last()"
60
title="${format_datetime(latest.date_submitted)}">
61
last submitted ${format_datetime_short(latest.date_submitted)}
67
<py:if test="project.has_deadline_passed(req.user)"><br />
68
<em>Note: The deadline has passed. You may still submit late, but a penalty may be incurred.</em>
74
<p>Ensure that you have committed all changes - only changes in the repository will be submitted.</p>
75
<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>
76
<p><input type="submit" value="Submit Project" />
77
<a class="helpaction" href="/+help/Submitting%20a%20project">Help submitting a project</a>