~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: 2010-02-15 08:49:58 UTC
  • Revision ID: grantw@unimelb.edu.au-20100215084958-8x5dzd9k4pbcddlz
Split subject/semester management out onto a separate page, and link to SemesterEdit.

Show diffs side-by-side

added added

removed removed

Lines of Context:
70
70
        ctx['req'] = req
71
71
        ctx['user'] = req.user
72
72
        ctx['semesters'] = []
73
 
        ctx['mediapath'] = media_url(req, CorePlugin, 'images/')
74
 
        ctx['SubjectEdit'] = SubjectEdit
75
73
 
76
74
        for semester in req.store.find(Semester).order_by(Desc(Semester.year),
77
75
                                                     Desc(Semester.semester)):
84
82
            if len(offerings):
85
83
                ctx['semesters'].append((semester, offerings))
86
84
 
87
 
        # Admins get a separate list of subjects so they can add/edit.
88
 
        if req.user.admin:
89
 
            ctx['subjects'] = req.store.find(Subject).order_by(Subject.name)
 
85
 
 
86
class SubjectsManage(XHTMLView):
 
87
    '''Subject management view.'''
 
88
    template = 'templates/subjects-manage.html'
 
89
    tab = 'subjects'
 
90
 
 
91
    def authorize(self, req):
 
92
        return req.user is not None and req.user.admin
 
93
 
 
94
    def populate(self, req, ctx):
 
95
        ctx['req'] = req
 
96
        ctx['mediapath'] = media_url(req, CorePlugin, 'images/')
 
97
        ctx['SubjectEdit'] = SubjectEdit
 
98
        ctx['SemesterEdit'] = SemesterEdit
 
99
 
 
100
        ctx['subjects'] = req.store.find(Subject).order_by(Subject.name)
 
101
        ctx['semesters'] = req.store.find(Semester).order_by(
 
102
            Semester.year, Semester.semester)
90
103
 
91
104
 
92
105
class SubjectShortNameUniquenessValidator(formencode.FancyValidator):
608
621
        subject_url, semester_url, offering_url, projectset_url, project_url)
609
622
 
610
623
    views = [(ApplicationRoot, ('subjects', '+index'), SubjectsView),
 
624
             (ApplicationRoot, ('subjects', '+manage'), SubjectsManage),
611
625
             (ApplicationRoot, ('subjects', '+new'), SubjectNew),
612
626
             (ApplicationRoot, ('subjects', '+new-offering'), OfferingNew),
613
627
             (ApplicationRoot, ('+semesters', '+new'), SemesterNew),