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

« back to all changes in this revision

Viewing changes to ivle/webapp/admin/templates/offering.html

  • Committer: William Grant
  • Date: 2010-02-11 08:53:40 UTC
  • Revision ID: grantw@unimelb.edu.au-20100211085340-4ms0t2f195dv0cqa
Correct the XHTML in the logout view.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
           href="${req.publisher.generate(context, OfferingEdit)}">
13
13
           Change details
14
14
        </a>
15
 
        <a py:if="req.user.admin"
16
 
           class="subjectaction"
17
 
           href="${req.publisher.generate(context, OfferingCloneWorksheets)}">
18
 
           Clone worksheets
19
 
        </a>
20
15
        <a py:if="'enrol' in permissions"
21
16
           class="groupaction"
22
 
           href="${req.publisher.generate(context, EnrolmentsView)}">
23
 
          Administer enrolments
 
17
           href="${req.publisher.generate(context, None, ('+enrolments', '+new'))}">
 
18
          Enrol users
24
19
        </a>
25
20
      </div>
26
21
 
38
33
          </p>
39
34
          <py:otherwise>
40
35
            <ul class="paddedlist">
41
 
              <li py:for="project in context.projects.order_by(Project.deadline)"
 
36
              <li py:for="project in context.projects"
42
37
                  py:attrs="{'class': 'project closed'}
43
38
                            if project.has_deadline_passed(req.user)
44
39
                            else {'class': 'project'}"
50
45
                &ndash;
51
46
                <span py:content="format_submission_principal(req.user, principal)" /> &ndash;
52
47
                <!-- XXX This deadline does not take the student's extensions into account. -->
53
 
                <span title="${'Closed' if project.has_deadline_passed(req.user) else 'Due'}: ${format_datetime(project.deadline)}">
 
48
                <span title="${format_datetime(project.deadline)}">
54
49
                  ${'closed' if project.has_deadline_passed(req.user) else 'due'} ${format_datetime_short(project.deadline)}
55
50
                </span>
56
51
                <py:if test="principal is not None"
62
57
                    </span>
63
58
                    <span py:otherwise=""
64
59
                          py:with="latest = submissions.last()"
65
 
                          title="Submitted: ${format_datetime(latest.date_submitted)}">
 
60
                          title="${format_datetime(latest.date_submitted)}">
66
61
                      last submitted ${format_datetime_short(latest.date_submitted)}
67
 
                      <a class="verifyaction" href="${latest.get_verify_url(req.user)}">Verify</a>
68
62
                    </span>
69
63
                  </py:choose>
70
64
                </py:if>
71
65
                <br />
72
66
                ${project.synopsis}
73
 
                <div class="horizontalactions" py:if="'view_project_submissions' in permissions">
74
 
                  <a class="verifyaction" href="${req.publisher.generate(project)}">View submissions</a>
75
 
                  <a py:if="project.project_set.is_group" class="groupaction"
76
 
                     href="${req.publisher.generate(project.project_set, GroupsView)}">Manage groups</a>
77
 
                </div>
78
67
              </li>
79
68
            </ul>
80
 
            <p py:if="context.get_open_projects_for_user(req.user).count() > 0">
81
 
              <a class="helpaction" href="/+help/Submitting%20a%20project">Help submitting a project</a>
82
 
            </p>
 
69
            <py:if test="context.get_open_projects_for_user(req.user).count() > 0">
 
70
              <p>
 
71
                To submit to a project that has not yet closed, use the file
 
72
                browser to navigate to the file or directory that you wish to
 
73
                submit, click &ldquo;More actions...&rdquo;,
 
74
                &ldquo;Submit&rdquo;, and then select the correct project.
 
75
              </p>
 
76
              <p>
 
77
                If the project to which you intend to submit is not listed,
 
78
                ensure that you are in the correct directory, or a subdirectory
 
79
                thereof. For solo projects, you must be inside the subject's
 
80
                &ldquo;mywork&rdquo; directory. For group projects, you must be
 
81
                inside the directory for the assigned group.
 
82
              </p>
 
83
              <p>
 
84
                You may resubmit a project as you wish until the deadline, but
 
85
                a new submission will overwrite any made earlier.
 
86
              </p>
 
87
            </py:if>
83
88
          </py:otherwise>
84
89
        </py:choose>
85
90
 
90
95
        </a>
91
96
      </div>
92
97
 
93
 
      <div py:if="'edit_worksheets' in permissions or len(worksheets) > 0"
 
98
      <div py:if="'edit' in permissions or context.worksheets.count() > 0"
94
99
           class="majorsection">
95
100
        <h2>Worksheets</h2>
96
 
        <py:choose test="len(worksheets)">
 
101
        <py:choose test="context.worksheets.count()">
97
102
          <p py:when="0">
98
103
            There are no worksheets for this offering.
99
104
            <a class="addaction" href="${req.publisher.generate(context, None, ('+worksheets', '+new'))}">Create one now</a>
104
109
                <li>
105
110
                  <!-- Can't generate a URL directly to the worksheet, since this is a fake worksheet. -->
106
111
                  <a href="${req.publisher.generate(context)}/+worksheets/${worksheet.id}">${worksheet.name}</a>
107
 
                  <span py:if="not worksheet.published">(unpublished &mdash; not visible to students)</span>
108
112
                  <py:if test="worksheet.assessable">
109
113
                    <ul>
110
114
                      <li class="${worksheet.complete_class}">
121
125
                  Total exercises completed: ${exercises_done}/${exercises_total} (${exercises_pct}%)
122
126
                </li>
123
127
              </ul> 
124
 
              <p py:if="context.show_worksheet_marks">
 
128
              <p>
125
129
                <span style="font-weight: bold;">Mark:</span> ${worksheet_mark}/${worksheet_max_mark}
126
130
              </p>
127
131
            </py:if>
128
 
            <span py:if="context.worksheet_cutoff is not None"
129
 
              title="${'Closed' if context.has_worksheet_cutoff_passed(req.user) else 'Due'}: ${format_datetime(context.worksheet_cutoff)}">
130
 
              Worksheet submissions ${'closed' if context.has_worksheet_cutoff_passed(req.user) else 'are due'} ${format_datetime_short(context.worksheet_cutoff)}.
131
 
              <br />
132
 
              <py:choose test="context.has_worksheet_cutoff_passed(req.user)">
133
 
              <py:when test="True">You can still submit, but it will not count towards your mark.</py:when>
134
 
              <py:when test="False">After this time, you can still submit, but it will not count towards your mark.</py:when>
135
 
              </py:choose>
136
 
            </span>
137
 
            <div class="horizontalactions" py:if="'edit_worksheets' in permissions">
138
 
              <a class="manageaction" href="${req.publisher.generate(context, None, ('+worksheets', '+edit'))}"> Manage worksheets</a>
139
 
              <a class="manageaction" href="/+exercises">Manage exercises</a>
140
 
            </div>
141
 
            <div class="horizontalactions" py:if="'view_worksheet_marks' in permissions">
142
 
              <a class="marksaction" href="${req.publisher.generate(context, None, ('+worksheets', '+marks'))}">View worksheet marks</a>
143
 
            </div>
 
132
            <a py:if="'edit' in permissions"
 
133
               class="manageaction"
 
134
               href="${req.publisher.generate(context, None, ('+worksheets', '+edit'))}">
 
135
              Manage worksheets
 
136
            </a><br />
 
137
            <a py:if="'edit' in permissions"
 
138
               class="manageaction"
 
139
               href="/+exercises">
 
140
              Manage exercises
 
141
            </a>
144
142
          </div>
145
143
        </py:choose>
146
144
      </div>