from zope import interface, schema from z3c.form import form, field, button from plone.z3cform.layout import wrap_form from z3c.form.ptcompat import ViewPageTemplateFile from z3c.relationfield.schema import RelationChoice, RelationList from plone.formwidget.contenttree import ObjPathSourceBinder from tabellio.searchform.interfaces import MessageFactory as _ class ISearch(interface.Interface): nodoc = schema.TextLine(title=_(u'Document Number'), required=False) nosuite = schema.TextLine(title=_(u'Suite Number'), required=False) doctype = schema.Set(title=_(u'Type'), required=False, value_type=schema.Choice(values=[_(u'Lorem'), _(u'Ipsum')])) #subjects = ttitle = schema.TextLine(title=_(u'Title'), required=False) text = schema.TextLine(title=_(u'Text'), required=False) authors = RelationList(title=_(u'Authors'), default=[], required=False, value_type=RelationChoice(title=_(u'Author'), source=ObjPathSourceBinder( portal_type=['themis.datatypes.deputy']))) # polgroups # session start = schema.Date(title=_(u'Start'), required=False) end = schema.Date(title=_(u'End'), required=False) class SearchForm(form.Form): fields = field.Fields(ISearch) ignoreContext = True template = ViewPageTemplateFile('form_templates/view_effectivesearch.pt') @button.buttonAndHandler(u'Search') def handleApply(self, action): data, errors = self.extractData() if not errors and False: plone_utils = getToolByName(self.context.context, 'plone_utils') plone_utils.addPortalMessage(_('Your search has been completed!')) return self.request.response.redirect('./') return SearchView = wrap_form(SearchForm)