示例#1
0
    def test_dashboard_hook(self):
        """Testing dashboard sidebar extension hooks"""
        entry = {
            'label': 'My Hook',
            'url': 'foo-url',
        }

        hook = DashboardHook(extension=self.extension, entries=[entry])
        context = Context({
            'dashboard_hook': hook,
        })

        entries = hook.entries
        self.assertEqual(len(entries), 1)
        self.assertEqual(entries[0], entry)

        t = Template("{% load rb_extensions %}"
                     "{% for hook in dashboard_hook.entries %}"
                     "{{hook.label}} - {{hook.url}}"
                     "{% endfor %}")

        self.assertEqual(
            t.render(context).strip(), '%(label)s - %(url)s' % entry)
示例#2
0
from django.conf import settings
from django.conf.urls.defaults import patterns, include
from reviewboard.extensions.base import Extension
{%- if dashboard_link is not none %}
from reviewboard.extensions.hooks import DashboardHook, URLHook
{% endif %}

{%- if dashboard_link is not none %}
class {{class_name}}URLHook(URLHook):
    def __init__(self, extension, *args, **kwargs):
        pattern = patterns('', (r'^{{package_name}}/',
                            include('{{package_name}}.urls')))
        super({{class_name}}URLHook, self).__init__(extension, pattern)


class {{class_name}}DashboardHook(DashboardHook):
    def __init__(self, extension, *args, **kwargs):
        entries = [{
            'label': '{{dashboard_link}}',
            'url': settings.SITE_ROOT + '{{package_name}}/',
        }]
        super({{class_name}}DashboardHook, self).__init__(extension,
                entries=entries, *args, **kwargs)
{%- endif %}

class {{class_name}}(Extension):
{%- if is_configurable %}
    is_configurable = True

{%- endif %}
    def __init__(self, *args, **kwargs):