Beispiel #1
0
    def index(self, q=None):
        def serializable(i):
            _, v = i
            try:
                json.dumps(v)
                return True
            except TypeError:
                return False

        request = self.request

        links = link_to('hello', '/hello')
        tpl = links + '<pre>{}</pre>'
        request_values = dict(filter(serializable, request.__dict__.items()))
        values = dict(
            request_values,
            data=request.data,
            a_url=url_for('howdy', name='Joe Smith'),
            a_rooted_url=url_for('/howdy', name='Joe Smith'),
        )

        actions = 'New',

        return page(tpl.format(json.dumps(values, indent=4)),
                    title='System Info',
                    actions=actions,
                    search=request.data.get('q', ''),
                    subtitle='this is the subtitle')

        return page('overview', title='my page')
Beispiel #2
0
def as_actions(items):
    """returns actions

    >>> from zoom.context import context as ctx
    >>> ctx.site = lambda: None
    >>> ctx.site.url = ''

    >>> as_actions(['New'])
    '<div class="actions"><ul><li><a class="action" href="<dz:request_path>/new" id="new-action">New</a></li></ul></div>'

    >>> as_actions(['New','Delete'])
    '<div class="actions"><ul><li><a class="action" href="<dz:request_path>/delete" id="delete-action">Delete</a></li><li><a class="action" href="<dz:request_path>/new" id="new-action">New</a></li></ul></div>'

    """
    if not items:
        return ''
    result = []
    for item in reversed(items):
        if type(item) == str:
            text = item
            url = url_for('./' + id_for(item))
        elif hasattr(item, '__iter__'):
            text, url = item[:2]
        else:
            raise Exception('actions require str or (str,url)')
        result.append(
            a(
                text,
                Class='action',
                id=id_for(text)+'-action',
                href=url
            )
        )
    return div(ul(result), Class='actions')
Beispiel #3
0
def delete_form(name, cancel=None):
    """produce a delete form"""
    css = """
    .delete-card {
        border: thin solid #ddd;
        margin: 10% auto;
        width: 50%;
        padding: 3em;
        background: white;
        box-shadow: 3px 3px 3px #ddd;
    }
    .delete-card p {
        font-size: 1.8rem;
    }
    @media (max-width: 600px) {
        .delete-card {
            padding: 1em;
            width: 100%;
        }
    }
    """
    return zoom.Component(html.div(Form(
        MarkdownText('Are you sure you want to delete **%s**?' % name),
        Hidden(name='confirm', value='no'),
        Button('Yes, I\'m sure.  Please delete.',
               name='delete_button',
               cancel=cancel or url_for('..'))).edit(),
                                   classed='delete-card'),
                          css=css)
Beispiel #4
0
def delete_form(name, cancel=None):
    """produce a delete form"""
    return Form(
        MarkdownText('Are you sure you want to delete **%s**?' % name),
        Hidden(name='confirm', value='no'),
        Button('Yes, I\'m sure.  Please delete.',
               name='delete_button',
               cancel=cancel or url_for('..'))).edit()
Beispiel #5
0
    def render(self, request):
        """render redirect"""

        location = url_for(*self.args, **self.kwargs)
        location = zoom.render.render(location)
        location = abs_url_for(location)
        location = zoom.render.render(location)

        logger = logging.getLogger(__name__)
        logger.debug('redirecting to: %r', location)
        return RedirectResponse(location)
Beispiel #6
0
 def test_basic(self):
     self.assertEqual(url_for(), '')
     self.assertEqual(url_for(''), '')
     # self.assertEqual(url_for('/'), '/')
     self.assertEqual(url_for('/', 'home'), '/home')
     self.assertEqual(url_for('/home'), '/home')
     self.assertEqual(url_for('home'), 'home')
     self.assertEqual(url_for('/user', 1234), '/user/1234')
Beispiel #7
0
 def test_site_specified_urls(self):
     context.site.url = 'mysite.com/app'
     self.assertEqual(url_for(), '')
     self.assertEqual(url_for(''), '')
     # self.assertEqual(url_for('/'), '/')
     self.assertEqual(url_for('/', 'home'), 'mysite.com/app/home')
     self.assertEqual(url_for('/home'), 'mysite.com/app/home')
     self.assertEqual(url_for('home'), 'home')
     self.assertEqual(url_for('/user', 1234), 'mysite.com/app/user/1234')
Beispiel #8
0
 def url(self):
     """user view url"""
     return url_for('/admin/users/{}'.format(self.key))
Beispiel #9
0
 def url(self):
     """return the group URL"""
     return url_for('/admin/groups/{}'.format(self.key))