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

« back to all changes in this revision

Viewing changes to ivle/webapp/admin/subject.py

Merge from submissions-admin.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
# A sample / testing application for IVLE.
24
24
 
25
25
import os
 
26
import os.path
26
27
import urllib
 
28
import urlparse
27
29
import cgi
28
30
 
29
31
from storm.locals import Desc
218
220
        if self.context is None:
219
221
            raise NotFound()
220
222
 
 
223
    def build_subversion_url(self, svnroot, submission):
 
224
        princ = submission.assessed.principal
 
225
 
 
226
        if isinstance(princ, User):
 
227
            path = 'users/%s' % princ.login
 
228
        else:
 
229
            path = 'groups/%s_%s_%s_%s' % (
 
230
                    princ.project_set.offering.subject.short_name,
 
231
                    princ.project_set.offering.semester.year,
 
232
                    princ.project_set.offering.semester.semester,
 
233
                    princ.name
 
234
                    )
 
235
        return urlparse.urljoin(
 
236
                    svnroot,
 
237
                    os.path.join(path, submission.path[1:] if
 
238
                                       submission.path.startswith(os.sep) else
 
239
                                       submission.path))
 
240
 
221
241
    def populate(self, req, ctx):
222
242
        ctx['format_datetime_short'] = ivle.date.format_datetime_for_paragraph
223
 
 
 
243
        ctx['build_subversion_url'] = self.build_subversion_url
 
244
        ctx['svn_addr'] = req.config['urls']['svn_addr']
224
245
        ctx['project'] = self.context
225
 
        ctx['assesseds'] = self.context.assesseds
226
 
 
227
 
        ctx['submissions'] = []
228
 
        for assessed in self.context.assesseds:
229
 
            if assessed.submissions.count() > 0:
230
 
                ctx['submissions'].append(
231
 
                        assessed.submissions.order_by(
232
 
                            ProjectSubmission.date_submitted)[-1])
233
 
        ctx['assigned'] = self.context.project_set.get_assigned()
 
246
        ctx['user'] = req.user
234
247
 
235
248
class Plugin(ViewPlugin, MediaPlugin):
236
249
    urls = [