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

1099.1.99 by William Grant
Require that plugins providing media subclass MediaPlugin.
1
from ivle.webapp.base.plugins import ViewPlugin, OverlayPlugin, MediaPlugin
1099.1.29 by William Grant
ivle.webapp.console.service: Port www/apps/consoleservice to new framework.
2
from ivle.webapp.console.service import ConsoleServiceRESTView
1099.1.74 by Nick Chadwick
Added overlay system and console overlay. Note that the console overlay
3
from ivle.webapp.console.overlay import ConsoleOverlay
1099.1.75 by Nick Chadwick
Added a console plugin, which now uses our new architecture.
4
from ivle.webapp.base.xhtml import XHTMLView
1294.2.53 by William Grant
Port the console and service to object traversal.
5
from ivle.webapp import ApplicationRoot
1099.1.75 by Nick Chadwick
Added a console plugin, which now uses our new architecture.
6
7
8
class ConsoleView(XHTMLView):
1116 by William Grant
Move the old tutorial views into the 'subjects' tab, so they get the right
9
    tab = 'console'
1099.1.100 by Nick Chadwick
Created a new help system.
10
    help = 'Console'
1294.2.132 by William Grant
Add couple of view breadcrumbs.
11
    breadcrumb_text = 'Console'
1099.1.77 by William Grant
Set appname on ivle.webapp.console.ConsoleView so we get an icon and selected
12
1294.4.3 by David Coles
Fix Console breakage due to ConsoleView's class varibiles being overwritten by the parent class' init function.
13
    # Overide the the standard constructor view
14
    def __init__(self, *args, **kwargs):
15
        super(ConsoleView, self).__init__(*args, **kwargs)
16
17
        self.plugin_scripts = {'ivle.webapp.console': ['console.js']}
18
        self.plugin_styles  = {'ivle.webapp.console': ['console.css']}
1742 by William Grant
Start a console backend immediately in ConsoleView, and when the overlay is maximised.
19
        self.scripts_init = ['start_server_early']
1294.4.3 by David Coles
Fix Console breakage due to ConsoleView's class varibiles being overwritten by the parent class' init function.
20
21
        # Don't load the console overlay when we already have a console.
22
        self.overlay_blacklist = [ConsoleOverlay]
1099.1.77 by William Grant
Set appname on ivle.webapp.console.ConsoleView so we get an icon and selected
23
1099.1.110 by William Grant
Implement an authorization system in the new framework. This breaks the REST
24
    def authorize(self, req):
25
        return req.user is not None
26
1099.1.75 by Nick Chadwick
Added a console plugin, which now uses our new architecture.
27
    def populate(self, req, ctx):
28
        ctx['windowpane'] = False
1666 by William Grant
Redo console CSS, and replace the examples on the help page with something more like the modern console that also doesn't break the real console with ID conflicts.
29
        ctx['start_body_attrs'] = {'class': 'console_body'}
1099.1.75 by Nick Chadwick
Added a console plugin, which now uses our new architecture.
30
1099.1.99 by William Grant
Require that plugins providing media subclass MediaPlugin.
31
class Plugin(ViewPlugin, OverlayPlugin, MediaPlugin):
1294.2.53 by William Grant
Port the console and service to object traversal.
32
    views = [(ApplicationRoot, ('console', '+index'), ConsoleView),
33
             (ApplicationRoot, ('console', 'service'), ConsoleServiceRESTView),
34
             ]
35
1099.1.115 by William Grant
Add tabs to the new framework. Move the app icons into the apps themselves.
36
    tabs = [
1118 by matt.giuca
Rewrote tooltips for the four tabs visible by default.
37
        ('console', 'Console', 'Try out your code in a Python console',
38
         'console.png', 'console', 3)
1099.1.115 by William Grant
Add tabs to the new framework. Move the app icons into the apps themselves.
39
    ]
1294.2.53 by William Grant
Port the console and service to object traversal.
40
1099.1.74 by Nick Chadwick
Added overlay system and console overlay. Note that the console overlay
41
    overlays = [
42
        ConsoleOverlay,
43
    ]
1294.2.53 by William Grant
Port the console and service to object traversal.
44
1099.1.74 by Nick Chadwick
Added overlay system and console overlay. Note that the console overlay
45
    media = 'media'
1099.1.100 by Nick Chadwick
Created a new help system.
46
    help = {'Console': 'help.html'}