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

« back to all changes in this revision

Viewing changes to ivle/webapp/media.py

Require that plugins providing media subclass MediaPlugin.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
 
26
26
import ivle.conf
27
27
from ivle.webapp.base.views import BaseView
28
 
from ivle.webapp.base.plugins import ViewPlugin
 
28
from ivle.webapp.base.plugins import ViewPlugin, MediaPlugin
29
29
from ivle.webapp.errors import NotFound, Forbidden
30
30
 
31
31
def media_url(req, plugin, path):
35
35
    or a plugin object, in which case its name is looked up.'''
36
36
    if not isinstance(plugin, basestring):
37
37
        plugin = req.reverse_plugins[plugin]
38
 
        
 
38
 
39
39
    return os.path.join(ivle.conf.root_dir, '+media', plugin, path)
40
40
 
41
41
class MediaFileView(BaseView):
58
58
        except KeyError:
59
59
            raise NotFound()
60
60
 
61
 
        try:
62
 
            mediadir = plugin.media
63
 
        except AttributeError:
 
61
        if not issubclass(plugin, MediaPlugin):
64
62
            raise NotFound()
65
63
 
 
64
        mediadir = plugin.media
66
65
        plugindir = os.path.dirname(inspect.getmodule(plugin).__file__)
67
66
 
68
67
        return os.path.join(plugindir, mediadir, self.path)