def render_order_actions(self, colname, record): tag = Tag(Translate(self.request)) vendor_uid = self.request.form.get('vendor', '') if vendor_uid: view_order_target = '%s?uid=%s&vendor=%s' % ( self.context.absolute_url(), str( record.attrs['uid']), vendor_uid) else: view_order_target = '%s?uid=%s' % (self.context.absolute_url(), str(record.attrs['uid'])) view_order_attrs = { 'ajax:bind': 'click', 'ajax:target': view_order_target, 'ajax:overlay': 'order', 'class_': 'contenttype-document', 'href': '', 'title': _('view_order', default=u'View Order'), } view_order = tag('a', ' ', **view_order_attrs) select_order_attrs = { 'name': 'select_order', 'type': 'checkbox', 'value': record.attrs['uid'], 'class_': 'select_order', } select_order = tag('input', **select_order_attrs) return select_order + view_order
def render_get_actions_for_contact(self, colname, record): tag = Tag(Translate(self.request)) site = plone.api.portal.get() view_orders_target = '%s/@@orders#%s' % ( site.absolute_url(), str(record.attrs['personal_data.email'])) view_orders_attrs = { 'class_': 'contenttype-document', 'href': view_orders_target, 'title': _('view_orders', default=u'View Orders'), } view_orders = tag('a', ' ', **view_orders_attrs) view_bookings_target = '%s/@@bookings#%s' % ( site.absolute_url(), str(record.attrs['personal_data.email'])) view_bookings_attrs = { 'class_': 'contenttype-document', 'href': view_bookings_target, 'title': _('view_bookings', default=u'View Bookings'), } view_bookings = tag('a', ' ', **view_bookings_attrs) return view_orders + view_bookings
def test_data_attrs_helper(self): data = AttributedNode() widget = AttributedNode() widget.attrs['testattr1'] = 'value' widget.attrs['testattr2'] = True widget.attrs['testattr3'] = False widget.attrs['testattr4'] = None widget.attrs['testattr5'] = ['item1', 'item2', 'item3'] widget.attrs['testattr6'] = { 'key1': 'item1', 'key2': 'item2', 'key3': 'item3' } widget.attrs['testattr7'] = 1234 widget.attrs['testattr8'] = 1234.5678 widget.attrs['testattr9'] = UNSET widget.attrs['camelAttrName'] = 'camelValue' data_attrs_keys = [ 'testattr1', 'testattr2', 'testattr3', 'testattr4', 'testattr5', 'testattr6', 'testattr7', 'testattr8', 'camelAttrName' ] data_attrs = data_attrs_helper(widget, data, data_attrs_keys) self.assertEqual(data_attrs['data-testattr1'], 'value') self.assertEqual(data_attrs['data-testattr2'], 'true') self.assertEqual(data_attrs['data-testattr3'], 'false') self.assertFalse('data-testattr4' in data_attrs) self.assertEqual(data_attrs['data-testattr5'], '["item1", "item2", "item3"]') self.assertTrue(data_attrs['data-testattr6'].find('"key1": "item1"')) self.assertTrue(data_attrs['data-testattr6'].find('"key2": "item2"')) self.assertTrue(data_attrs['data-testattr6'].find('"key3": "item3"')) self.assertTrue(data_attrs['data-testattr6'].startswith('{')) self.assertTrue(data_attrs['data-testattr6'].endswith('}')) self.assertEqual(data_attrs['data-testattr7'], '1234') self.assertEqual(data_attrs['data-testattr8'], '1234.5678') self.assertFalse('data-testattr9' in data_attrs) self.assertEqual(data_attrs['data-camel-attr-name'], 'camelValue') # Test with Tag renderer tag = Tag(lambda msg: msg) self.check_output( """ <dummy data-camel-attr-name='camelValue' data-testattr1='value' data-testattr2='true' data-testattr3='false' data-testattr5='["item1", "item2", "item3"]' data-testattr6='{"..."}' data-testattr7='1234' data-testattr8='1234.5678' name="foo" /> """, tag('dummy', name='foo', **data_attrs))
def getInfo(self, html=1): if not html: info = ' yafowil widget processing info:\n' info += ' - widget: %s\n' % self.name info += ' - task : %s\n' % self.task info += ' - descr : %s' % self.descr return info tag = Tag(lambda x: x) li = tag('li', 'widget: ', tag('strong', self.name)) li += tag('li', 'task: ', tag('strong', self.task)) li += tag('li', 'description: ', tag('strong', self.descr)) return tag('p', 'yafowil widget processing info:', tag('ul', li))
def render_order_actions(self, colname, record): order_uid = record.attrs['order_uid'] tag = Tag(Translate(self.request)) vendor_uid = self.request.form.get('vendor', '') if vendor_uid: view_order_target = '%s?uid=%s&vendor=%s' % ( self.context.absolute_url(), str(order_uid), vendor_uid) else: view_order_target = '%s?uid=%s' % (self.context.absolute_url(), str(order_uid)) view_order_attrs = { 'ajax:bind': 'click', 'ajax:target': view_order_target, 'ajax:overlay': 'order', 'class_': 'contenttype-document', 'href': '', 'title': _('view_order', default=u'View Order'), } view_order = tag('a', ' ', **view_order_attrs) select_order_attrs = { 'name': 'select_order', 'type': 'checkbox', 'value': order_uid, 'class_': 'select_order', } select_order = tag('input', **select_order_attrs) site = plone.api.portal.get() portal_url = site.absolute_url() ## Custom print order data = OrderData(self.context, uid=order_uid) ordernumber = data.order.attrs.get('ordernumber', '') email = data.order.attrs.get('personal_data.email', '') print_order_attrs = { "class_": "contenttype-document", "href": "%s/showorder?ordernumber=%s&email=%s" % (portal_url, ordernumber, email), "target": "_blank", "title": _('view_order', default=u'View Order'), } print_order = tag('a', ' ', **print_order_attrs) return select_order + print_order
def render_order_actions(self, colname, record): tag = Tag(Translate(self.request)) view_order_target = '%s?uid=%s' % (self.context.absolute_url(), str(record.attrs['uid'])) view_order_attrs = { 'ajax:bind': 'click', 'ajax:target': view_order_target, 'ajax:overlay': 'myorder', 'class_': 'contenttype-document', 'href': '', 'title': _('view_order', default=u'View Order'), } view_order = tag('a', ' ', **view_order_attrs) return view_order
def test_tag_renderer(self): # Test Tag renderer tag = Tag(lambda msg: msg) t = tag('p', 'Lorem Ipsum. ', u'Hello World!', class_='fancy', id='2f5b8a234ff') self.assertEqual( t, (u'<p class="fancy" id="2f5b8a234ff">Lorem Ipsum. Hello World!</p>' )) self.assertEqual(tag('dummy', name='foo', **{'data-foo': 'bar'}), u'<dummy data-foo=\'bar\' name="foo" />') self.assertEqual(tag('dummy', name=None), u'<dummy />') self.assertEqual(tag('dummy', name=UNSET), u'<dummy />') # deprecated test self.assertEqual(deprecated_tag('div', 'foo'), u'<div>foo</div>')
def render_order_actions_head(self): tag = Tag(Translate(self.request)) select_all_orders_attrs = { 'name': 'select_all_orders', 'type': 'checkbox', 'class_': 'select_all_orders', 'title': _('select_all_orders', default=u'Select all visible orders'), } select_all_orders = tag('input', **select_all_orders_attrs) notify_customers_target = self.context.absolute_url() notify_customers_attributes = { 'ajax:target': notify_customers_target, 'class_': 'notify_customers', 'href': '', 'title': _('notify_customers', default=u'Notify customers of selected orders'), } notify_customers = tag('a', ' ', **notify_customers_attributes) return select_all_orders + notify_customers
from odict import odict from node.utils import UNSET from yafowil.base import ExtractionError from yafowil.base import factory from yafowil.controller import Controller from yafowil.tests import YafowilTestCase from yafowil.tests import fxml from yafowil.utils import Tag import yafowil.common import yafowil.compound # noqa ############################################################################### # Helpers ############################################################################### tag = Tag(lambda msg: msg) ############################################################################### # Tests ############################################################################### class TestCompound(YafowilTestCase): def test_compound_blueprint_value_via_compound(self): # Render Compound with values set via compound widget value = { 'inner': 'Value 1 from parent', 'inner2': 'Value 2 from parent', } compound = factory('compound', name='COMPOUND', value=value) compound['inner'] = factory('text')
from yafowil.base import factory from yafowil.base import fetch_value from yafowil.common import generic_extractor from yafowil.common import generic_required_extractor from yafowil.common import select_display_renderer from yafowil.common import select_edit_renderer from yafowil.common import select_extractor from yafowil.utils import Tag from yafowil.utils import cssclasses from yafowil.utils import cssid import types _ = TranslationStringFactory('cone.app') # XXX: define i18n translation callback for app tag = Tag(lambda x: x) def make_refbrowser_query(request, **kw): params = { 'root': request.params['root'], 'referencable': request.params['referencable'], 'selected': request.params['selected'], } params.update(kw) return make_query(**params) class ReferenceBrowserModelMixin(object): @request_property def referencable_root(self):
def tag(self): return Tag(self.translate_callable)