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

« back to all changes in this revision

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

  • Committer: William Grant
  • Date: 2009-02-24 06:01:52 UTC
  • mfrom: (1099.5.5 new-dispatch)
  • mto: This revision was merged to the branch mainline in revision 1119.
  • Revision ID: grantw@unimelb.edu.au-20090224060152-136r6lj6zc2eaexp
Merge my console and tutorial changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
import cgi
28
28
 
29
29
from ivle.webapp.base.xhtml import XHTMLView
30
 
from ivle.webapp.base.plugins import BasePlugin
 
30
from ivle.webapp.base.plugins import ViewPlugin, MediaPlugin
31
31
from ivle.webapp.errors import NotFound
32
32
from ivle.database import Subject
33
33
from ivle import util
38
38
    template = 'subjects.html'
39
39
    appname = 'subjects' # XXX
40
40
 
 
41
    def authorize(self, req):
 
42
        return req.user is not None
 
43
 
41
44
    def populate(self, req, ctx):
42
 
        req.styles = ["media/subjects/subjects.css"]
43
 
 
44
45
        enrolled_subjects = req.user.subjects
45
46
        unenrolled_subjects = [subject for subject in
46
47
                               req.store.find(Subject)
49
50
        ctx['enrolled_subjects'] = []
50
51
        ctx['other_subjects'] = []
51
52
 
52
 
        req.content_type = "text/html"
53
 
        req.write_html_head_foot = True
54
 
 
55
53
        for subject in enrolled_subjects:
56
54
            new_subj = {}
57
55
            new_subj['name'] = subject.name
66
64
                ctx['other_subjects'].append(new_subj)
67
65
 
68
66
 
69
 
class SubjectView(XHTMLView):
70
 
    '''The view of a subject.'''
71
 
    template = 'subject.html'
72
 
    appname = 'subjects' # XXX
73
 
 
74
 
    def __init__(self, req, subject, path):
75
 
        self.subject = req.store.find(Subject, code=subject).one()
76
 
        self.path = path
77
 
 
78
 
    def populate(self, req, ctx):
79
 
        if self.subject is None:
80
 
            raise NotFound()
81
 
 
82
 
        ctx['serve_loc'] = urllib.quote(util.make_path(os.path.join('media',
83
 
                                    'subjects', self.subject.code, self.path)))
84
 
 
85
 
class Plugin(BasePlugin):
 
67
class Plugin(ViewPlugin, MediaPlugin):
86
68
    urls = [
87
69
        ('subjects/', SubjectsView),
88
 
        ('subjects/:subject', SubjectView, {'path': ''}),
89
 
        ('subjects/:subject/*(path)', SubjectView),
90
 
    ]
 
70
    ]
 
71
 
 
72
    tabs = [
 
73
        ('subjects', 'Subjects', 'Announcements and information about the '
 
74
         'subjects you are enrolled in.', 'subjects.png', 'subjects', 5)
 
75
    ]
 
76
 
 
77
    media = 'subject-media'