1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# Copyright 2009 Canonical Ltd. This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).
"""A simple display widget that renders like the tal expression fmt:link."""
__metaclass__ = type
__all__ = [
'LinkWidget',
]
from zope.app.form.browser import DisplayWidget
from zope.component import queryAdapter
from zope.traversing.interfaces import IPathAdapter
class LinkWidget(DisplayWidget):
"""Renders using the tal formatter for fmt:link.
Used by specifying `custom_widget('fieldname', LinkWidget)`.
"""
def __init__(self, context, request, *ignored):
"""Ignores extra params such as vocabularies."""
super(DisplayWidget, self).__init__(context, request)
def __call__(self):
adapter = queryAdapter(self._data, IPathAdapter, 'fmt')
return adapter.link('')
|