Example #1
0
    def test_snippet_register_without_class(self):
        view.register_snippet('test', Context, renderer='ptah:tests/test.pt')
        self.init_ptah()

        res = self.registry.queryMultiAdapter((Context(), self.request),
                                              view.ISnippet, 'test')

        self.assertEqual(res.strip(), '<div>My snippet</div>')
Example #2
0
    def test_snippet_register_without_class(self):
        view.register_snippet(
            'test', Context, renderer='ptah:tests/test.pt')
        self.init_ptah()

        res = self.registry.queryMultiAdapter(
            (Context(), self.request), view.ISnippet, 'test')

        self.assertEqual(res.strip(), '<div>My snippet</div>')
Example #3
0
    def test_snippet_register_no_stype(self):
        class TestSnippet(view.Snippet):
            pass

        view.register_snippet('unknown', Context, TestSnippet)
        self._init_ptah()

        snippet = self.registry.getMultiAdapter(
            (Context(), None), ISnippet, name='unknown')
        self.assertIsInstance(snippet, TestSnippet)
Example #4
0
    def test_snippet_register_without_class(self):
        view.snippettype('test', Context)
        view.register_snippet('test', Context)
        self._init_ptah()

        snippet = self.registry.getMultiAdapter(
            (Context(), self.request), ISnippet, 'test')

        self.assertTrue(isinstance(snippet, Snippet))
        self.assertEqual(str(snippet.__class__),
                         "<class 'ptah.view.snippet.Snippet None'>")
Example #5
0
    def test_snippet_View_snippet_with_error(self):
        class TestSnippet(view.Snippet):
            def render(self):
                raise ValueError('Error')

        view.snippettype('test', Context)
        view.register_snippet('test', Context, TestSnippet)
        self._init_ptah()

        base = view.View(None, self.request)
        self.assertEqual(base.snippet('test', Context()), '')
Example #6
0
    def test_snippet_register(self):
        class TestSnippet(view.Snippet):
            def render(self):
                return 'test snippet'

        view.snippettype('test', Context)
        view.register_snippet('test', Context, TestSnippet)
        self._init_ptah()

        self.assertEqual(
            render_snippet('test', Context(), self.request), 'test snippet')
Example #7
0
    def test_snippet_register_render_snippet(self):
        def TestSnippet(request):
            return 'test snippet'

        view.register_snippet('test', Context, TestSnippet)
        self.init_ptah()

        res = view.render_snippet('test', Context(), self.request)
        self.assertEqual(res.strip(), 'test snippet')

        self.assertRaises(Exception, view.render_snippet, 'unknown', Context(),
                          self.request)
Example #8
0
    def test_snippet_register(self):
        def TestSnippet(request):
            return 'test snippet'

        view.register_snippet('test', Context, TestSnippet)
        self.init_ptah()

        res = self.registry.adapters.lookup(
            (providedBy(Context()), providedBy(self.request)), view.ISnippet,
            'test')

        self.assertEqual(res(Context(), self.request), 'test snippet')
Example #9
0
    def test_snippet_register(self):
        def TestSnippet(request):
            return 'test snippet'

        view.register_snippet('test', Context, TestSnippet)
        self.init_ptah()

        res = self.registry.adapters.lookup(
            (providedBy(Context()), providedBy(self.request)),
            view.ISnippet, 'test')

        self.assertEqual(res(Context(), self.request), 'test snippet')
Example #10
0
    def test_snippet_render_with_exception(self):
        class TestSnippet(view.Snippet):
            def render(self):
                raise ValueError('Unknown')

        view.snippettype('test', Context)
        view.register_snippet('test', Context, TestSnippet)
        self._init_ptah()

        self.assertRaises(
            ValueError,
            render_snippet, 'test', Context(), self.request)
Example #11
0
    def test_snippet_register_render_snippet(self):
        def TestSnippet(request):
            return 'test snippet'

        view.register_snippet('test', Context, TestSnippet)
        self.init_ptah()

        res = view.render_snippet('test', Context(), self.request)
        self.assertEqual(res.strip(), 'test snippet')

        self.assertRaises(
            Exception,
            view.render_snippet, 'unknown', Context(), self.request)
Example #12
0
    def test_snippet_register_with_not_Snippet_class(self):
        class TestSnippet(object):
            pass

        view.snippettype('test', Context)
        view.register_snippet('test', Context, TestSnippet)
        self._init_ptah()

        snippet = self.registry.getMultiAdapter(
            (Context(), self.request), ISnippet, 'test')

        self.assertTrue(isinstance(snippet, Snippet))
        self.assertTrue(isinstance(snippet, TestSnippet))
Example #13
0
    def test_snippet_register_with_template(self):
        class TestSnippet(view.Snippet):
            pass

        def template(*args, **kw):
            keys = kw.keys()
            keys.sort()
            return '|'.join(keys)

        view.snippettype('test', Context)
        view.register_snippet('test', klass=TestSnippet, template = template)
        self._init_ptah()

        self.assertEqual(
            render_snippet('test', Context(), self.request),
            'context|request|view')
Example #14
0
    def test_snippet_render_additional_params_to_template(self):
        class TestSnippet(view.Snippet):
            def update(self):
                return {'param1': 1, 'param2': 2}

        def template(*args, **kw):
            keys = kw.keys()
            keys.sort()
            return '|'.join(keys)

        view.snippettype('test', Context)
        view.register_snippet('test', klass=TestSnippet, template = template)
        self._init_ptah()

        self.assertTrue(
            'param1|param2|' in render_snippet('test', Context(), self.request))
Example #15
0
    def test_snippet_View_snippet(self):
        class TestSnippet(view.Snippet):
            def render(self):
                return 'test snippet'

        view.snippettype('test', Context)
        view.register_snippet('test', Context, TestSnippet)
        self._init_ptah()

        base = view.View(None, self.request)

        # snippettype is string
        self.assertEqual(base.snippet('unknown', Context()), '')
        self.assertEqual(base.snippet('test', Context()), 'test snippet')

        # by default use view context
        base.context = Context()
        self.assertEqual(base.snippet('test'), 'test snippet')
Example #16
0
        return self.template(**kwargs)


class DisplayForm(Form):

    mode = FORM_DISPLAY

    def form_params(self):
        return self.params


FORM_VIEW = "form-view"
FORM_ACTIONS = "form-actions"
FORM_WIDGET = "form-widget"
FORM_DISPLAY_WIDGET = "form-display-widget"

view.snippettype(FORM_VIEW, IForm, "Form view")
view.snippettype(FORM_ACTIONS, IForm, "Form actions")
view.snippettype(FORM_WIDGET, Field, "Form widget")
view.snippettype(FORM_DISPLAY_WIDGET, Field, "Form display widget")

view.register_snippet("form-view", Form, template=view.template("ptah.form:templates/form.pt"))

view.register_snippet("form-view", DisplayForm, template=view.template("ptah.form:templates/form-display.pt"))

view.register_snippet("form-actions", Form, template=view.template("ptah.form:templates/form-actions.pt"))

view.register_snippet("form-widget", Field, template=view.template("ptah.form:templates/widget.pt"))

view.register_snippet("form-display-widget", Field, template=view.template("ptah.form:templates/widget-display.pt"))
Example #17
0
from pyramid.httpexceptions import HTTPFound
from ptah import config, view, manage
from ptah.view import tmpl
from ptah.view.customize import TEMPLATE


class TemplatesModule(manage.PtahModule):
    """ Templates management module. """

    title = "Templates"
    manage.module("templates")


view.register_snippet(
    "ptah-module-actions",
    TemplatesModule,
    template=view.template("ptah.manage:templates/customize-actions.pt", nolayer=True),
)


class TemplatesView(view.View):
    """List templates"""

    view.pview(context=TemplatesModule, template=view.template("ptah.manage:templates/customize.pt", nolayer=True))

    __intr_path__ = "/ptah-module/templates/index.html"

    pkg_data = None

    def update(self):
        items = tmpl.registry.items()
Example #18
0
                    info['obj'] = obj

                    if obj is not None:
                        cls = getattr(obj, '__class__', None)
                        info['cls'] = cls
                        info['clsdoc'] = getattr(cls, '__doc__', '')

                        if cls is not None:
                            info['clsmod'] = cls.__module__
                            info['clsline'] = inspect.getsourcelines(cls)[-1]

                data.append(info)


view.register_snippet(
    'ptah-module-actions', IntrospectModule,
    template = view.template('ptah.manage:templates/introspect-actions.pt'))


class PackageView(view.View):
    view.pview(
        context = Package,
        template = view.template('ptah.manage:templates/introspect-pkg.pt'))

    __doc__ = 'Package introspection page.'
    __intr_path__ = '/ptah-manage/introspect/${pkg}/index.html'

    def update(self):
        self.data = self.context.actions()

        self.ndata = ndata = {}
Example #19
0
""" security ptah module """
from zope import interface

import ptah
from ptah import config, view, manage


class PermissionsModule(manage.PtahModule):
    __doc__ = u'A listing of all permission sets and their definitions'

    title = 'Permissions'
    manage.module('permissions')


view.register_snippet(
    'ptah-module-actions', PermissionsModule,
    template = view.template('ptah.manage:templates/permissions-actions.pt'))


class PermissionsView(view.View):
    view.pview(
        context=PermissionsModule,
        template=view.template('ptah.manage:templates/permissions.pt'))

    def update(self):
        self.permissions = ptah.get_permissions().values()
        self.permissions.sort(key = lambda p: p.title)

        acls = ptah.get_acls()
        self.acls = [acl for acl in acls.values() if acl.name != '']
        self.acls.sort(key = lambda a: a.title)
Example #20
0
            user = CrowdUser.get(key)
            if user is not None:
                return UserWrapper(user, self)

        raise KeyError(key)


class UserWrapper(object):
    def __init__(self, user, parent):
        self.user = user
        self.__name__ = str(user.pid)
        self.__parent__ = parent


view.register_snippet(
    "ptah-module-actions", CrowdModule, template=view.template("ptah.crowd:templates/ptah-actions.pt")
)


class CrowdModuleView(form.Form):
    view.pview(context=CrowdModule, template=view.template("ptah.crowd:templates/search.pt"))

    __doc__ = "List/search users view"
    __intr_path__ = "/ptah-manage/crowd/"

    csrf = True
    fields = form.Fieldset(
        form.TextField(
            "term",
            title=_(u"Search term"),
            description=_("Ptah searches users by login and email"),
Example #21
0
        raise KeyError(key)


view.register_route(
    'ptah-manage-view','/ptah-manage',
    PtahManageRoute, use_global_views=True)

view.register_route(
    'ptah-manage','/ptah-manage/*traverse',
    PtahManageRoute, use_global_views=True)

view.snippettype('ptah-module-actions', PtahModule)

view.register_snippet(
    'ptah-module-actions', PtahModule,
    template = view.template('ptah.manage:templates/moduleactions.pt'))

view.register_layout(
    '', PtahManageRoute, parent='ptah-manage',
    template=view.template("ptah.manage:templates/ptah-layout.pt"))


class LayoutManage(view.Layout):
    view.layout('ptah-manage', PtahManageRoute,
                template=view.template("ptah.manage:templates/ptah-manage.pt"))

    def update(self):
        self.user = authService.get_current_principal()

        mod = self.request.context
Example #22
0
        content = self.create(**data)

        self.message('New content has been created.')
        raise HTTPFound(location=self.get_next_url(content))

    @form.button('Cancel')
    def cancel_handler(self):
        raise HTTPFound(location='.')

    def get_next_url(self, content):
        return self.request.resource_url(content)


view.register_snippet(
    'form-actions', AddForm,
    template = view.template('ptah.cms:form-actions.pt'))


class EditForm(form.Form):

    @reify
    def label(self):
        return 'Modify content: %s'%self.tinfo.title

    @reify
    def fields(self):
        return self.tinfo.fieldset

    def form_content(self):
        data = {}
Example #23
0
File: form.py Project: mcdonc/ptah
    def form_params(self):
        return self.params


FORM_VIEW = 'form-view'
FORM_ACTIONS = 'form-actions'
FORM_WIDGET = 'form-widget'
FORM_DISPLAY_WIDGET = 'form-display-widget'

view.snippettype(FORM_VIEW, IForm, 'Form view')
view.snippettype(FORM_ACTIONS, IForm, 'Form actions')
view.snippettype(FORM_WIDGET, Field, 'Form widget')
view.snippettype(FORM_DISPLAY_WIDGET, Field, 'Form display widget')

view.register_snippet(
    'form-view', Form,
    template = view.template('ptah.form:templates/form.pt'))

view.register_snippet(
    'form-view', DisplayForm,
    template = view.template('ptah.form:templates/form-display.pt'))

view.register_snippet(
    'form-actions', Form,
    template = view.template('ptah.form:templates/form-actions.pt'))

view.register_snippet(
    'form-widget', Field,
    template = view.template('ptah.form:templates/widget.pt'))

view.register_snippet(
Example #24
0
            if user is not None:
                return UserWrapper(user, self)

        raise KeyError(key)


class UserWrapper(object):

    def __init__(self, user, parent):
        self.user = user
        self.__name__ = str(user.pid)
        self.__parent__ = parent


view.register_snippet(
    'ptah-module-actions', CrowdModule,
    template = view.template('ptah.crowd:templates/ptah-actions.pt'))


class SearchUsers(form.Form):
    view.pview(
        context = CrowdModule,
        template = view.template('ptah.crowd:templates/search.pt'))

    __doc__ = 'List/search users view'
    __intr_path__ = '/ptah-manage/crowd/'

    csrf = True
    fields = form.Fieldset(
        form.TextField(
            'term',