def contents(self):
     z2.switch_on(self, request_layer=self.request_layer)
     # XXX really messed up hack to support plone.z3cform < 0.5.8
     # We call the form to make the widgets property available on it,
     # otherwise view/widgets fails
     self.form_instance()
     return self.form_instance.render()
Ejemplo n.º 2
0
    def __call__(self):
        """Confirm the code or render the form."""
        
        # make sure we have the form marker interface when testing
        z2.switch_on(self)
        
        if self.confirm_code:
            # confirm/delete nonce
            nonce_store = getUtility(INonceManager)
            try:
                email = nonce_store.retrieve(self.confirm_code)
            except KeyError:
                self.status = _(u'Sorry, your confirmation code is invalid or has expired.')
            else:
                # set up session
                session = ISession(self.request)
                session['collective.confirm_email.confirmed'] = True
                session['collective.confirm_email.email'] = email
                session.save()
            
                # redirect back to target (by removing last 2 parts of path)
                raise Redirect(self.request['URL2'])

        # render form
        return super(EmailConfirmationForm, self).__call__()
Ejemplo n.º 3
0
 def update(self):
     z2.switch_on(self, request_layer=IFormLayer)
     self.form = QuickSearchForm(aq_inner(self.context), self.request,
                                 self.data)
     if HAS_WRAPPED_FORM:
         alsoProvides(self.form, IWrappedForm)
     self.form.update()
Ejemplo n.º 4
0
    def _update(self):
        if self.w is not None:
            return

        z2.switch_on(self)
        self.updateFieldsFromSchemata()
        self.updateWidgets()

        # shortcut 'widget' dictionary for all fieldsets
        self.w = {}
        for k, v in self.widgets.items():
            self.w[k] = v

        groups = []
        self.fieldsets = {}

        for idx, groupFactory in enumerate(self.groups):
            group = groupFactory(self.context, self.request, self)
            group.update()

            for k, v in group.widgets.items():
                self.w[k] = v

            groups.append(group)

            group_name = getattr(group, '__name__', str(idx))
            self.fieldsets[group_name] = group

        self.groups = tuple(groups)
Ejemplo n.º 5
0
 def update(self):
     super(CommentViewlet, self).update()
     z2.switch_on(self, request_layer=IFormLayer)
     self.form = CommentForm(aq_inner(self.context), self.request)
     if HAS_WRAPPED_FORM: 
         alsoProvides(self.form, IWrappedForm)        
     self.form.update()
Ejemplo n.º 6
0
 def __call__(self):
     z2.switch_on(self)
     if self.isVisible:
         self.update()
         return self._wrap_widget(self.widgets[self.field].render())
     else:
         return self._wrap_widget(u'')
Ejemplo n.º 7
0
 def update(self):
     super(Viewlet, self).update()
     self.form = u''
     if checkPermission('cmf.ModifyPortalContent', self.context):
         z2.switch_on(self, request_layer=IFormLayer)
         self.form = KeywordsForm(aq_inner(self.context), self.request)
         self.form.update()
Ejemplo n.º 8
0
    def _update(self):
        if self.w is not None:
            return

        z2.switch_on(self)
        self.updateFieldsFromSchemata()
        self.updateWidgets()

        # shortcut 'widget' dictionary for all fieldsets
        self.w = {}
        for k, v in self.widgets.items():
            self.w[k] = v

        groups = []
        self.fieldsets = {}

        for idx, groupFactory in enumerate(self.groups):
            group = groupFactory(self.context, self.request, self)
            group.update()

            for k, v in group.widgets.items():
                self.w[k] = v

            groups.append(group)

            group_name = getattr(group, '__name__', str(idx))
            self.fieldsets[group_name] = group

        self.groups = tuple(groups)
Ejemplo n.º 9
0
 def update(self):
     super(Viewlet, self).update()
     self.form = u''
     if checkPermission('cmf.ModifyPortalContent', self.context):
         z2.switch_on(self, request_layer=IFormLayer)
         self.form = KeywordsForm(aq_inner(self.context), self.request)
         self.form.update()
Ejemplo n.º 10
0
 def update(self):
     super(TwitterSearchViewlet, self).update()
     z2.switch_on(self, request_layer=IFormLayer)
     self.form = SearchForm(aq_inner(self.context), self.request)
     # necessary to avoid maximum recursion error
     alsoProvides(self.form, IWrappedForm)
     self.form.update()
Ejemplo n.º 11
0
 def update(self):
     super(Renderer, self).update()
     z2.switch_on(self, request_layer=IFormLayer)
     self.form = PortletSubscribeForm(aq_inner(self.context), self.request,
                                      self.data)
     alsoProvides(self.form, IWrappedForm)
     self.form.update()
Ejemplo n.º 12
0
 def update(self):
     super(Renderer, self).update()
     z2.switch_on(self, request_layer=IFormLayer)
     self.form = self.form(aq_inner(self.context), self.request)
     self.form.portlet = self.data
     alsoProvides(self.form, IWrappedForm)
     self.form.update()
Ejemplo n.º 13
0
 def contents(self):
     z2.switch_on(self, request_layer=self.request_layer)
     # XXX really messed up hack to support plone.z3cform < 0.5.8
     # We call every form to make the widgets property available on it,
     # otherwise view/widgets fails
     # XXX: FIXME!!!
     [fi() for fi in self.form_instances]
     return ''.join([fi.render() for fi in self.form_instances])
Ejemplo n.º 14
0
 def update(self):
     super(CommentsViewlet, self).update()
     if self.is_discussion_allowed() and \
        (self.is_anonymous() and self.anonymous_discussion_allowed() \
         or self.can_reply()):
         z2.switch_on(self, request_layer=IFormLayer)
         self.form = self.form(aq_inner(self.context), self.request)
         alsoProvides(self.form, IWrappedForm)
         self.form.update()
Ejemplo n.º 15
0
    def __init__(self, values, context=None, request=None):
        self.values = values

        self.form = AssignEditorForm(aq_inner(context), request)
        z2.switch_on(self.form, request_layer=IFormLayer)
        alsoProvides(self.form, IWrappedForm)

        self.form.update()
        self.values["form"] = self.form.render()
Ejemplo n.º 16
0
 def update(self):
     super(CommentsViewlet, self).update()
     if self.is_discussion_allowed() and \
        (self.is_anonymous() and self.anonymous_discussion_allowed() \
         or self.can_reply()):
         z2.switch_on(self, request_layer=IFormLayer)
         self.form = self.form(aq_inner(self.context), self.request)
         alsoProvides(self.form, IWrappedForm)
         self.form.update()
Ejemplo n.º 17
0
def switch_on(view, request_layer=z3c.form.interfaces.IFormLayer):
    # Fix the request. If we find a form layer from plone.app.z3cform take
    # it away. It uses a base template using context/main_template but our
    # views don't have an implicit Acquisition context. The base template
    # from plone.z3cform uses /@@standard-macros which does work, so we fall
    # back on that one
    z2.switch_on(view, request_layer=request_layer)
    request = view.request
    if IPloneFormLayer.providedBy(request):
        noLongerProvides(request, IPloneFormLayer)
Ejemplo n.º 18
0
def switch_on(view, request_layer=z3c.form.interfaces.IFormLayer):
    # Fix the request. If we find a form layer from plone.app.z3cform take
    # it away. It uses a base template using context/main_template but our
    # views don't have an implicit Acquisition context. The base template
    # from plone.z3cform uses /@@standard-macros which does work, so we fall
    # back on that one
    z2.switch_on(view, request_layer=request_layer)
    request = view.request
    if IPloneFormLayer.providedBy(request):
        noLongerProvides(request, IPloneFormLayer)
Ejemplo n.º 19
0
    def render(self):
        if switch_on is not None:
            switch_on(self)

        if not self.getContent().feeds:
            del self.widgets['urls']
        else:
            self.widgets['urls'].update()

        return super(ControlPanelEditForm, self).render()
Ejemplo n.º 20
0
    def validate_input(self, formname, fieldname, fieldset=None, value=None,
                       warning_only=True):
        """Given a form (view) name, a field name and the submitted
        value, validate the given field.
        """

        # Abort if there was no value changed. Note that the actual value
        # comes along the submitted form, since a widget may require more than
        # a single form field to validate properly.
        if value is None:
            return

        context = aq_inner(self.context)
        request = aq_inner(self.request)
        alsoProvides(request, IFormLayer)

        # Find the form, the field and the widget
        form = request.traverseName(context, formname)
        if IFormWrapper.providedBy(form):
            formWrapper = form
            form = form.form_instance
            if not z2.IFixedUpRequest.providedBy(request):
                z2.switch_on(form, request_layer=formWrapper.request_layer)

        if not IForm.providedBy(form):
            return

        form.update()
        
        if getattr(form, "extractData", None):
            data, errors = form.extractData()
        else:
            return

        #if we validate a field in a group we operate on the group
        if fieldset is not None:
            fieldset = int(fieldset)
            form = form.groups[fieldset]

        index = len(form.prefix) + len(form.widgets.prefix)
        raw_fieldname = fieldname[index:]
        validationError = None
        for error in errors:
            if error.widget == form.widgets.get(raw_fieldname, None):
                validationError = error.message
                break

        if isinstance(validationError, Message):
            validationError = translate(validationError, context=self.request)

        # Attempt to convert the value - this will trigger validation
        ksscore = self.getCommandSet('core')
        kssplone = self.getCommandSet('plone')
        validate_and_issue_message(ksscore, validationError, fieldname,
                                   fieldset, kssplone, warning_only)
Ejemplo n.º 21
0
    def render(self):
        if switch_on is not None:
            switch_on(self)

        urls = self.widgets['urls']
        urls.update()

        if not urls.value:
            del self.widgets['urls']

        return super(ControlPanelEditForm, self).render()
 def afterSetUp(self):
     from plone.app.z3cform.interfaces import IPloneFormLayer
     from plone.z3cform.z2 import switch_on
     
     self.form = self.folder[self.folder.invokeFactory('FormFolder', 'form')]
     self.request = makerequest(self.app).REQUEST
     self.request.SESSION = Session()
     self.wizard = DummyWizard(self.form, self.request)
     switch_on(self.wizard, request_layer=IPloneFormLayer)
     self.session = self.request.SESSION[self.wizard.sessionKey] = {}
     self.step = SignersStep(self.form, self.request, self.wizard)
Ejemplo n.º 23
0
    def render(self):
        if switch_on is not None:
            switch_on(self)

        urls = self.widgets['urls']
        urls.update()

        if not urls.value:
            del self.widgets['urls']

        return super(ControlPanelEditForm, self).render()
Ejemplo n.º 24
0
    def update(self):
        if not ISubForm.providedBy(self.form_instance):
            interface.alsoProvides(self.form_instance, IWrappedForm)

        # If a form action redirected, don't render the wrapped form
        if self.request.response.getStatus() in (302, 303):
            self.contents = ""
            return

        z2.switch_on(self, request_layer=self.request_layer)
        self.form_instance.update()
Ejemplo n.º 25
0
    def update(self):
        super(FiltersFormView, self).update()
        z2.switch_on(self, request_layer=IFormLayer)
        context = aq_inner(self.context)
        self.form_filter = FiltersForm(context, self.request)
        interface.alsoProvides(self.form_filter, IWrappedForm)
        self.form_filter.update()

        self.form_addbutton = AddForm(context, self.request)
        interface.alsoProvides(self.form_addbutton, IWrappedForm)
        self.form_addbutton.update()
Ejemplo n.º 26
0
 def date_input_widget(self, name):
     z2.switch_on(self)
     widget = DateWidget(self.request)
     widget.name = name
     widget.id = name
     context = self.context
     date = getattr(context, name)
     if date:
         widget.value = (date.year(), date.month(), date.day())
     widget.show_today_link = True
     widget.ignoreContext = False
     widget.update()
     return widget.render()
Ejemplo n.º 27
0
    def __call__(self):

        form = self.request.form
        self.request = self.context.REQUEST
        self.request.URL = self.context.absolute_url()
        self.form = CommentForm(aq_inner(self.context), self.request)
        alsoProvides(self.form, IWrappedForm)
        # wrap the form inside the page
        z2.switch_on(self.form, request_layer=IFormLayer)
        self.form.update()

        if form:
            self.form.extractData()

        return self.index()
Ejemplo n.º 28
0
 def update(self):
     base.Renderer.update(self)
     z2.switch_on(self, request_layer=IFormLayer)
     self.form = GDPRPortletSubscribeForm(self.data, self.request)
     portal_url = api.portal.get_navigation_root(self.context).absolute_url()
     gpdr_url = '/'.join([portal_url, 'gdpr-view'])
     msgid = _(
         u'see_legal_conditions',
         default=u'See <a href="${legal_conditions_url}">legal terms and conditions</a>.',  # NOQA
         mapping={u'legal_conditions_url': gpdr_url},
     )
     legal_description = self.context.translate(msgid)
     gdpr_field = self.form.fields.get('legal_conditions')
     gdpr_field.field.description = legal_description
     alsoProvides(self.form, IWrappedForm)
     self.form.update()
Ejemplo n.º 29
0
    def update(self):
        if not ISubForm.providedBy(self.form_instance):
            interface.alsoProvides(self.form_instance, IWrappedForm)

        # If a form action redirected, don't render the wrapped form
        if self.request.response.getStatus() in (302, 303):
            self.contents = ""
            return

        z2.switch_on(self, request_layer=self.request_layer)
        self.form_instance.update()

        # A z3c.form.form.AddForm does a redirect in its render method.
        # So we have to render the form to see if we have a redirection.
        # In the case of redirection, we don't render the layout at all.
        self.contents = self.form_instance.render()
Ejemplo n.º 30
0
 def setup_forms(self):
     """Initialize the section forms."""
     z2.switch_on(self, request_layer=IFormLayer)
     if not self.config.get('section_1_hide_section', False) and \
             self.config.get('section_1_search_target', None):
         self.section_1 = SectionForm(
             aq_inner(self.context),
             self.request,
             config=self.map_config('section_1'),
             prefix='section_1',
         )
         if HAS_WRAPPED_FORM:
             alsoProvides(self.section_1, IWrappedForm)
         self.section_1.update()
     if not self.config.get('section_2_hide_section', False) and \
             self.config.get('section_2_search_target', None):
         self.section_2 = SectionForm(
             aq_inner(self.context),
             self.request,
             config=self.map_config('section_2'),
             prefix='section_2',
         )
         if HAS_WRAPPED_FORM:
             alsoProvides(self.section_2, IWrappedForm)
         self.section_2.update()
     if not self.config.get('section_3_hide_section', False) and \
             self.config.get('section_3_search_target', None):
         self.section_3 = SectionForm(
             aq_inner(self.context),
             self.request,
             config=self.map_config('section_3'),
             prefix='section_3',
         )
         if HAS_WRAPPED_FORM:
             alsoProvides(self.section_3, IWrappedForm)
         self.section_3.update()
     if not self.config.get('section_4_hide_section', False) and \
             self.config.get('section_4_search_target', None):
         self.section_4 = SectionForm(
             aq_inner(self.context),
             self.request,
             config=self.map_config('section_4'),
             prefix='section_4',
         )
         if HAS_WRAPPED_FORM:
             alsoProvides(self.section_4, IWrappedForm)
         self.section_4.update()
Ejemplo n.º 31
0
 def render_form(self):
     provided = IPloneFormLayer.providedBy(self.request)
     noLongerProvides(self.request, IPloneFormLayer)
     alsoProvides(self.request, IFormLayer)
     try:
         form = self.create_form()
         if IWrappedForm is None:
             switch_on(self)
             alsoProvides(self.request, ICMFDefaultSkin)
         else:
             alsoProvides(form, IWrappedForm)
         form.update()
         return form.render()
     finally:
         noLongerProvides(self.request, IFormLayer)
         if provided:
             alsoProvides(self.request, IPloneFormLayer)
Ejemplo n.º 32
0
 def render_form(self):
     provided = IPloneFormLayer.providedBy(self.request)
     noLongerProvides(self.request, IPloneFormLayer)
     alsoProvides(self.request, IFormLayer)
     try:
         form = self.create_form()
         if IWrappedForm is None:
             switch_on(self)
             alsoProvides(self.request, ICMFDefaultSkin)
         else:
             alsoProvides(form, IWrappedForm)
         form.update()
         return form.render()
     finally:
         noLongerProvides(self.request, IFormLayer)
         if provided:
             alsoProvides(self.request, IPloneFormLayer)
Ejemplo n.º 33
0
    def update(self):
        if self.view.info is None:
            return
        listing_info = {
            'listing_id': self.view.info.get('id').get('value'),
            'listing_title': self.view.info.get('title').get('value'),
            'agent': self.view.contact.get('agent'),
            'original_agent': self.view.contact.get('original_agent'),
            'overridden': self.view.contact.get('overridden', False),
        }

        z2.switch_on(self, request_layer=IFormLayer)
        portlet_hash = self.__portlet_metadata__.get('hash')
        self.form = EmailForm(aq_inner(self.context), self.request,
                              portlet_hash, listing_info, self.data)
        if HAS_WRAPPED_FORM:
            alsoProvides(self.form, IWrappedForm)
        self.form.update()
Ejemplo n.º 34
0
 def update(self):
     base.Renderer.update(self)
     z2.switch_on(self, request_layer=IFormLayer)
     self.form = GDPRPortletSubscribeForm(aq_inner(self.context),
                                          self.request, self.data)
     portal_url = api.portal.get_navigation_root(
         self.context).absolute_url()
     gpdr_url = '/'.join([portal_url, 'gdpr-view'])
     msgid = _(
         u'see_legal_conditions',
         default=
         u'See <a href="${legal_conditions_url}">legal terms and conditions</a>.',  # NOQA
         mapping={u'legal_conditions_url': gpdr_url},
     )
     legal_description = self.context.translate(msgid)
     gdpr_field = self.form.fields.get('legal_conditions')
     gdpr_field.field.description = legal_description
     alsoProvides(self.form, IWrappedForm)
     self.form.update()
Ejemplo n.º 35
0
    def contact_form(self):
        """Get the contact form, if enabled."""
        if not self.config.get('show_contact_form', False):
            return

        if self._contact_form is not None:
            return self._contact_form

        item_info = self._get_contact_info().get('agent')
        z2.switch_on(self, request_layer=IFormLayer)
        self._contact_form = ContactForm(
            aq_inner(self.context),
            self.request,
            info=item_info,
            development=self.item,
        )
        if HAS_WRAPPED_FORM:
            alsoProvides(self._contact_form, IWrappedForm)
        return self._contact_form
Ejemplo n.º 36
0
    def update(self):
        """Prepare view related data."""
        super(ListingSearchViewlet, self).update()
        self.context_state = queryMultiAdapter((self.context, self.request), name="plone_context_state")

        self.limit = self.config.get("limit", 25)

        z2.switch_on(self, request_layer=IFormLayer)
        self.form = ListingSearchForm(aq_inner(self.context), self.request)
        if HAS_WRAPPED_FORM:
            alsoProvides(self.form, IWrappedForm)
        self.form.update()

        self.search_performed = bool(self.request.form)
        if self.available and len(self.request.form) > 0:
            data, errors = self.form.extractData()
            if not errors:
                self._get_listings(prepare_search_params(data))

            self.request.form = encode_dict(self.request.form)
Ejemplo n.º 37
0
    def update(self):
        """On update, we switch on the zope3 request, needed to work with
        our z3c form. We update here the wrapped form.

        Override this method if you have more than one form.
        """

        if not z3c.form.interfaces.ISubForm.providedBy(self.form_instance):
            zope.interface.alsoProvides(self.form_instance, interfaces.IWrappedForm)

        z2.switch_on(self, request_layer=self.request_layer)
        self.form_instance.update()

        # If a form action redirected, don't render the wrapped form
        if self.request.response.getStatus() in (302, 303):
            self.contents = ""
            return

        # A z3c.form.form.AddForm does a redirect in its render method.
        # So we have to render the form to see if we have a redirection.
        # In the case of redirection, we don't render the layout at all.
        self.contents = self.form_instance.render()
Ejemplo n.º 38
0
 def add_story_form(self):
     z2.switch_on(self, request_layer=IFormLayer)
     addform = AddStoryQuickForm(aq_inner(self.context), self.request)
     addform.update()
     return addform.render()
Ejemplo n.º 39
0
def dynamic_searchable_text_indexer(obj):
    """Dynamic searchable text indexer.
    """
    # if the object does not provide a request, get one.
    # This happens when running scripts (bin/instance run script.py)
    try:
        request = obj.REQUEST
    except AttributeError:
        request = getRequest()

    # We need to make sure that we have z2 mode switched on for z3c form.
    # Since we do not really have any view to do this on, we just use
    # a fake view. For switching z2 mode on, it's only necessary that
    # there is a view.request.
    view = FakeView(obj, request)
    z2.switch_on(view, request_layer=IFormLayer)

    indexed = []

    for _storage, fields in get_searchable_contexts_and_fields(obj):
        for field in fields:

            # we need the form-field, not the schema-field we
            # already have..
            form_field = Field(field, interface=field.interface, prefix='')

            # get the widget
            try:
                widget = get_field_widget(obj, form_field, request)
            except TypeError:
                # Some times the field value is wrong, then the converter
                # failes. We should not fail, so we catch this error.
                continue

            # get the converter for this field / widget
            converter = getMultiAdapter(
                (obj, field, widget),
                interfaces.IDexterityTextIndexFieldConverter)

            # convert the field value
            value = converter.convert()

            # if no value was returned, we don't need to index
            # anything.
            if not value:
                continue

            # be sure that it is utf-8 encoded
            if six.PY2 and isinstance(value, six.text_type):
                value = value.encode('utf-8')

            # only accept strings
            assert isinstance(value, str), 'expected converted ' + \
                'value of IDexterityTextIndexFieldConverter to be a str'

            indexed.append(value)

    # after converting all fields, run additional
    # IDynamicTextIndexExtender adapters.
    for _name, adapter in getAdapters((obj, ),
                                      interfaces.IDynamicTextIndexExtender):
        extended_value = adapter()

        # if no value was returned, we don't need to index anything.
        if not extended_value:
            continue

        # be sure that it is utf-8 encoded
        if isinstance(extended_value, six.text_type):
            extended_value = extended_value.encode('utf-8')

        # only accept strings
        assert isinstance(extended_value, str), 'expected converted ' + \
            'value of IDynamicTextIndexExtender to be a str'

        indexed.append(extended_value)

    return ' '.join(indexed)
Ejemplo n.º 40
0
 def update(self):
     z2.switch_on(self)
     self.updateFieldsFromSchemata()
     self.updateWidgets()
Ejemplo n.º 41
0
 def _update(self):
     if self.available:
         z2.switch_on(self, request_layer=IFormLayer)
         self.form = self.form(aq_inner(self.context), self.request)
         alsoProvides(self.form, IWrappedForm)
         self.form.update()
Ejemplo n.º 42
0
 def form_contents(self):
     z2.switch_on(self, request_layer=IFormLayer)
     addform = BookingForm(aq_inner(self.context), self.request)
     addform.update()
     return addform.render()
Ejemplo n.º 43
0
 def _prepareForm(self):
     form = self.context.form_instance
     z2.switch_on(self.context, request_layer=self.context.request_layer)
     return form
def dynamic_searchable_text_indexer(obj):
    """Dynamic searchable text indexer.
    """
    # if the object does not provide a request, get one.
    # This happens when running scripts (bin/instance run script.py)
    try:
        request = obj.REQUEST
    except AttributeError:
        request = getRequest()

    # We need to make sure that we have z2 mode switched on for z3c form.
    # Since we do not really have any view to do this on, we just use
    # a fake view. For switching z2 mode on, it's only necessary that
    # there is a view.request.
    view = FakeView(obj, request)
    z2.switch_on(view, request_layer=IFormLayer)

    indexed = []

    for _storage, fields in get_searchable_contexts_and_fields(obj):
        for field in fields:

            # we need the form-field, not the schema-field we
            # already have..
            form_field = Field(field, interface=field.interface,
                               prefix='')

            # get the widget
            try:
                widget = get_field_widget(obj, form_field, request)
            except TypeError:
                # Some times the field value is wrong, then the converter
                # failes. We should not fail, so we catch this error.
                continue

            # get the converter for this field / widget
            converter = getMultiAdapter(
                (obj, field, widget),
                interfaces.IDexterityTextIndexFieldConverter)

            # convert the field value
            value = converter.convert()

            # if no value was returned, we don't need to index
            # anything.
            if not value:
                continue

            # be sure that it is utf-8 encoded
            if six.PY2 and isinstance(value, six.text_type):
                value = value.encode('utf-8')

            # only accept strings
            assert isinstance(value, str), 'expected converted ' + \
                'value of IDexterityTextIndexFieldConverter to be a str'

            indexed.append(value)

    # after converting all fields, run additional
    # IDynamicTextIndexExtender adapters.
    for _name, adapter in getAdapters(
        (obj,), interfaces.IDynamicTextIndexExtender
    ):
        extended_value = adapter()

        # if no value was returned, we don't need to index anything.
        if not extended_value:
            continue

        # be sure that it is utf-8 encoded
        if isinstance(extended_value, six.text_type):
            extended_value = extended_value.encode('utf-8')

        # only accept strings
        assert isinstance(extended_value, str), 'expected converted ' + \
            'value of IDynamicTextIndexExtender to be a str'

        indexed.append(extended_value)

    return ' '.join(indexed)
Ejemplo n.º 45
0
 def renderForm(self):
     z2.switch_on(self)
     form = EditRealmForm(self.context, self.request)
     return form()
Ejemplo n.º 46
0
 def render_add_form(self):
     z2.switch_on(self)
     form = AddPathForm(self.context, self.request)
     return form()
Ejemplo n.º 47
0
 def form_contents(self):
     z2.switch_on(self, request_layer=IFormLayer)
     addform = BookingForm(aq_inner(self.context), self.request)
     addform.update()
     return addform.render()
Ejemplo n.º 48
0
 def contents(self):
     # use LocalManageChannelsForm to show local channels only
     # A call to 'switch_on' is required before we can render z3c.forms.
     z2.switch_on(self)
     return LocalManageChannelsForm(self.context.channels, self.request)()