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

« back to all changes in this revision

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

  • Committer: Matt Giuca
  • Date: 2009-12-08 06:31:34 UTC
  • Revision ID: matt.giuca@gmail.com-20091208063134-c1412h9k4m0v2s24
database: Offering.get_members_by_role now sorts the data.

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
from ivle.webapp.admin.projectservice import ProjectSetRESTView,\
47
47
                                             ProjectRESTView
48
48
from ivle.webapp.admin.offeringservice import OfferingRESTView
49
 
from ivle.webapp.admin.traversal import (root_to_subject,
 
49
from ivle.webapp.admin.publishing import (root_to_subject,
50
50
            subject_to_offering, offering_to_projectset, offering_to_project,
51
51
            subject_url, offering_url, projectset_url, project_url)
 
52
from ivle.webapp.admin.breadcrumbs import (SubjectBreadcrumb,
 
53
            OfferingBreadcrumb, UserBreadcrumb, ProjectBreadcrumb)
 
54
from ivle.webapp.groups import GroupsView
52
55
 
53
56
class SubjectsView(XHTMLView):
54
57
    '''The view of the list of subjects.'''
131
134
    permission = 'edit'
132
135
    tab = 'subjects'
133
136
 
134
 
    def project_url(self, projectset, project):
135
 
        return "/subjects/%s/%s/%s/+projects/%s" % (
136
 
                    self.context.subject.short_name,
137
 
                    self.context.semester.year,
138
 
                    self.context.semester.semester,
139
 
                    project.short_name
140
 
                    )
141
 
 
142
 
    def new_project_url(self, projectset):
143
 
        return "/api/subjects/" + self.context.subject.short_name + "/" +\
144
 
                self.context.semester.year + "/" + \
145
 
                self.context.semester.semester + "/+projectsets/" +\
146
 
                str(projectset.id) + "/+projects/+new"
147
 
    
148
137
    def populate(self, req, ctx):
149
138
        self.plugin_styles[Plugin] = ["project.css"]
150
139
        self.plugin_scripts[Plugin] = ["project.js"]
 
140
        ctx['req'] = req
151
141
        ctx['offering'] = self.context
152
142
        ctx['projectsets'] = []
 
143
        ctx['OfferingRESTView'] = OfferingRESTView
153
144
 
154
145
        #Open the projectset Fragment, and render it for inclusion
155
146
        #into the ProjectSets page
164
155
        for projectset in self.context.project_sets:
165
156
            settmpl = loader.load(set_fragment)
166
157
            setCtx = Context()
 
158
            setCtx['req'] = req
167
159
            setCtx['projectset'] = projectset
168
 
            setCtx['new_project_url'] = self.new_project_url(projectset)
169
160
            setCtx['projects'] = []
 
161
            setCtx['GroupsView'] = GroupsView
 
162
            setCtx['ProjectSetRESTView'] = ProjectSetRESTView
170
163
 
171
164
            for project in projectset.projects:
172
165
                projecttmpl = loader.load(project_fragment)
173
166
                projectCtx = Context()
 
167
                projectCtx['req'] = req
174
168
                projectCtx['project'] = project
175
 
                projectCtx['project_url'] = self.project_url(projectset, project)
176
169
 
177
170
                setCtx['projects'].append(
178
171
                        projecttmpl.generate(projectCtx))
232
225
             (Project, '+index', ProjectRESTView, 'api'),
233
226
             ]
234
227
 
 
228
    breadcrumbs = {Subject: SubjectBreadcrumb,
 
229
                   Offering: OfferingBreadcrumb,
 
230
                   User: UserBreadcrumb,
 
231
                   Project: ProjectBreadcrumb,
 
232
                   }
 
233
 
235
234
    tabs = [
236
235
        ('subjects', 'Subjects',
237
236
         'View subject content and complete worksheets',