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

« back to all changes in this revision

Viewing changes to www/apps/__init__.py

Dispatch now generates an index for each plugin type, allowing plugins to
be written which are aware of other plugins, and other plugin types.

All view plugins now subclass from ivle.webapp.base.plugins.ViewPlugin,
as opposed to subclassing BasePlugin directly. This will allow us to
easily re-write console as an OverlayPlugin, and allow future new
plugins types to be created.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
# Loads IVLE applications.
23
23
# All sub-packages in this package are apps.
24
24
 
25
 
from mod_python import apache
26
 
 
27
25
def call_app(appname, req):
28
26
    """Calls an application with the given name. Passes req to the app's
29
27
    handler."""
30
28
    try:
31
29
        # level=-1 to make it look in the right directory
32
30
        app_module = __import__(appname, globals(), locals(), [], -1)
33
 
        app_module.handle(req)
34
 
    except ImportError:
 
31
    except ImportError, msg:
35
32
        # Any problems meant it's a server error, because conf/apps.py said
36
33
        # this app would be here.
37
 
        raise apache.SERVER_RETURN, apache.HTTP_INTERNAL_SERVER_ERROR
 
34
        req.throw_error(req.HTTP_INTERNAL_SERVER_ERROR,
 
35
            "Could not load the %s application: %s" % (repr(appname), str(msg)))
 
36
    app_module.handle(req)