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

925 by mattgiuca
Added "groups" app. No code within the app just yet.
1
# IVLE
2
# Copyright (C) 2007-2008 The University of Melbourne
3
#
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
1099.1.56 by William Grant
ivle.webapp.groups: Remove most of the view code; the template now accesses
18
# Author: Matt Giuca, Will Grant
19
20
'''
21
Allows students and tutors to manage project groups.
22
'''
23
1356 by William Grant
Make the group admin UI a per-projectset view.
24
from ivle.database import ProjectSet
1093 by chadnickbok
Adding the changes from my genshi branch into trunk.
25
1099.1.99 by William Grant
Require that plugins providing media subclass MediaPlugin.
26
from ivle.webapp.base.plugins import ViewPlugin, MediaPlugin
1099.1.34 by William Grant
Split up ivle.webapp.base.views into ivle.webapp.base.{rest,xhtml}, as it was
27
from ivle.webapp.base.xhtml import XHTMLView
1135 by William Grant
Subject URLs now contain the short name (eg. info1) rather than the code
28
from ivle.webapp.errors import NotFound
1710 by Matt Giuca
Project set page: Added 'Projects' breadcrumb, consistent with offering projects page. Fixes Launchpad bug #493913.
29
from ivle.webapp.admin.breadcrumbs import ProjectsBreadcrumb
1099.1.17 by Nick Chadwick
Moved groups over to the new class-based xhtml templating way of being
30
31
class GroupsView(XHTMLView):
32
    """
33
    The groups view
34
    """
1099.1.35 by William Grant
ivle.webapp.base.xhtml#XHTMLView: Rename app_template to template (the things
35
    template = 'template.html'
1146 by William Grant
Move Groups into the 'subjects' tab (giving it a favicon) and put the
36
    tab = 'subjects'
1558 by William Grant
Allow tutors to manage groups.
37
    permission = 'admin_groups'
1099.1.18 by William Grant
ivle.webapp.base.views#XHTMLView: Set the content type to text/html.
38
1099.1.17 by Nick Chadwick
Moved groups over to the new class-based xhtml templating way of being
39
    def populate(self, req, ctx):
1710.1.18 by Matt Giuca
Added links to ProjectEdit view, from offering projects page, manage projects page, and individual project pages.
40
        from ivle.webapp.admin.subject import (ProjectSetEdit, ProjectNew,
1710.1.20 by Matt Giuca
Fully link the Project Delete view, from all the places the Project Edit view is linked.
41
                                               ProjectEdit, ProjectDelete)
1099.1.69 by William Grant
Move ivle.webapp.groups' media to the new framework.
42
        self.plugin_styles[Plugin] = ['groups.css']
43
        self.plugin_scripts[Plugin] = ['groups.js']
1099.1.18 by William Grant
ivle.webapp.base.views#XHTMLView: Set the content type to text/html.
44
1709 by Matt Giuca
Groups page is now 'Project set' page. Changed title. It now lists all projects in the set, as well as groups.
45
        ctx['req'] = req
1356 by William Grant
Make the group admin UI a per-projectset view.
46
        ctx['projectset'] = self.context
1710.1.5 by Matt Giuca
Added new project set edit view. Linked from projects page, project set page.
47
        ctx['ProjectSetEdit'] = ProjectSetEdit
1710.1.14 by Matt Giuca
ProjectSet page: Added 'Add a new project' button here.
48
        ctx['ProjectNew'] = ProjectNew
1710.1.18 by Matt Giuca
Added links to ProjectEdit view, from offering projects page, manage projects page, and individual project pages.
49
        ctx['ProjectEdit'] = ProjectEdit
1710.1.20 by Matt Giuca
Fully link the Project Delete view, from all the places the Project Edit view is linked.
50
        ctx['ProjectDelete'] = ProjectDelete
1710.1.5 by Matt Giuca
Added new project set edit view. Linked from projects page, project set page.
51
        ctx['permissions'] = self.context.get_permissions(req.user,req.config)
1099.1.18 by William Grant
ivle.webapp.base.views#XHTMLView: Set the content type to text/html.
52
1099.1.99 by William Grant
Require that plugins providing media subclass MediaPlugin.
53
class Plugin(ViewPlugin, MediaPlugin):
1099.1.17 by Nick Chadwick
Moved groups over to the new class-based xhtml templating way of being
54
    """
1099.1.56 by William Grant
ivle.webapp.groups: Remove most of the view code; the template now accesses
55
    The Plugin class for the group admin plugin.
1099.1.17 by Nick Chadwick
Moved groups over to the new class-based xhtml templating way of being
56
    """
1708 by Matt Giuca
Moved group management page from <projectset>/+groups to <projectset>. This page will become a generic project set page, with a focus on managing groups.
57
    views = [(ProjectSet, '+index', GroupsView)]
1099.1.69 by William Grant
Move ivle.webapp.groups' media to the new framework.
58
1710 by Matt Giuca
Project set page: Added 'Projects' breadcrumb, consistent with offering projects page. Fixes Launchpad bug #493913.
59
    breadcrumbs = {ProjectSet: ProjectsBreadcrumb}
60
1099.1.69 by William Grant
Move ivle.webapp.groups' media to the new framework.
61
    media = 'media'