from Products.Five.browser import BrowserView from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile from plone.app.form import named_template_adapter from plone.app.form.interfaces import IPlonePageForm from plone.app.form.validators import null_validator from plone.app.portlets import PloneMessageFactory as _ from plone.app.portlets.interfaces import IPortletPermissionChecker from plone.app.portlets.browser.interfaces import IPortletAddForm from plone.app.portlets.browser.interfaces import IPortletEditForm # Add a named template form, which allows us to carry some extra information # about the referer _template = ViewPageTemplateFile('templates/portlets-pageform.pt') portlets_named_template_adapter = named_template_adapter(_template) class AddForm(formbase.AddFormBase): """A base add form for portlets. Use this for portlet assignments that require configuration before being added. Assignment types that do not should use NullAddForm instead. Sub-classes should define create() and set the form_fields class variable. Notice the suble difference between AddForm and NullAddform in that the create template method for AddForm takes as a parameter a dict 'data': def create(self, data): return MyAssignment(data.get('foo'))
from Products.CMFCore.utils import getToolByName from Acquisition import aq_inner from Products.Five.formlib import formbase from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile from Products.statusmessages.interfaces import IStatusMessage from plone.app.form import named_template_adapter from plone.app.form.interfaces import IPlonePageForm from zope.app.form.browser import TextAreaWidget from qi.jabberHelpdesk.interfaces import IChatRequest from qi.jabberHelpdesk import HelpdeskMessageFactory as _ logger = logging.getLogger('qi.jabberHelpdesk') chatRequestFormView = named_template_adapter(ViewPageTemplateFile('chatRequest.pt')) class SmallTextAreaWidget(TextAreaWidget): height = 5 class ChatRequestView(formbase.PageForm): """Request a chat """ implements(IPlonePageForm) label = _(u"Chat with us") description = _(u"Welcome to our helpdesk") form_name =_(u"Please fill in your details") def __init__(self,context,request): ChatRequestView.label = context.title
from zope.event import notify from zope.formlib import form from zope.interface import implements import zope.lifecycleevent from Acquisition import aq_parent, aq_inner from Products.Five.browser import BrowserView from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile from plone.app.contentrules import PloneMessageFactory as _ from plone.app.contentrules.browser.interfaces import IContentRulesForm # Add a named template form, which allows us to carry some extra information # about the referer _template = ViewPageTemplateFile('templates/contentrules-pageform.pt') contentrules_named_template_adapter = named_template_adapter(_template) class AddForm(formbase.AddFormBase): """A base add form for content rule. Use this for rule elements that require configuration before being added to a rule. Element types that do not should use NullAddForm instead. Sub-classes should define create() and set the form_fields class variable. Notice the suble difference between AddForm and NullAddform in that the create template method for AddForm takes as a parameter a dict 'data': def create(self, data): return MyAssignment(data.get('foo'))
from plone.app.form.validators import null_validator from plone.memoize.instance import memoize from optilux.cinemacontent.interfaces import IReservation from optilux.cinemacontent.interfaces import ReservationError from optilux.cinemacontent.interfaces import IScreeningLocator from optilux.cinemacontent.interfaces import ITicketReservations from optilux.cinemacontent import CinemaMessageFactory as _ from optilux.cinemacontent.reservation import Reservation # This is registered as an adapter factory. When formlib renders the page, # it will look up this adapter to work out which template to use. reserve_screening_formview = named_template_adapter(ViewPageTemplateFile('reserve.pt')) class ReserveScreeningView(formbase.PageForm): """Reserve tickets for a screening """ label = _(u"Reserve tickets") form_fields = form.FormFields(IReservation).omit('screening') @form.action(_(u"Reserve")) def action_reserve(self, action, data): """Reserve tickets """ context = aq_inner(self.context) screening = self.screening() reservations = getUtility(ITicketReservations)
from zope import interface, schema from zope.formlib import form from Acquisition import aq_inner from Products.CMFCore.utils import getToolByName from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile from Products.Five.formlib import formbase from Products.CMFPlone.utils import safe_unicode from plone.app.form import named_template_adapter subscriber_search_formview = named_template_adapter(ViewPageTemplateFile( 'subscribersearch.pt')) # [Chris] I encountered a ContentProviderLookupError: plone.htmlhead # and found https://bugs.launchpad.net/zope2/+bug/176566 discribing # this (I believe still unsolved) issue. # Therefore we use this somewhat clumsy hack: def _getContext(self): self = self.aq_parent while getattr(self, '_is_wrapperish', None): self = self.aq_parent return self ViewPageTemplateFile._getContext = _getContext # End of hack