from zope import interface, schema from z3c.form import field, button from plone.z3cform.layout import wrap_form from Products.CMFCore.utils import getToolByName 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 _ from Products.Five import BrowserView from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile import form class SimpleSearchView(BrowserView): batch_macros = ViewPageTemplateFile('batch_macros.pt') js_macros = ViewPageTemplateFile('js_macros.pt') def deputy_search_form(self): f = form.DeputySearchForm(self.context, self.request) f.update() return f.render() def document_pfb_search_form(self): f = form.DocumentPfbSearchForm(self.context, self.request) f.update() return f.render() def document_search_form(self): f = form.DocumentSearchForm(self.context, self.request) f.update() return f.render() def dossier_search_form(self): f = form.DossierSearchForm(self.context, self.request) f.update() return f.render() def question_search_form(self): f = form.QuestionSearchForm(self.context, self.request) f.update() return f.render() def event_search_form(self): f = form.EventSearchForm(self.context, self.request) f.update() return f.render() def deputy_form_url(self): catalog = getToolByName(self.context, 'portal_catalog') try: return catalog( portal_type='Folder', object_provides=('tabellio.webviews.deputy.IDeputiesAndOthersFolderView', 'tabellio.webviews.deputy.IPfbDeputiesFolderView', 'tabellio.webviews.deputy.IFolderView'), limit=1)[0].getObject().absolute_url() except IndexError: return '#' def docdos_form_url(self): catalog = getToolByName(self.context, 'portal_catalog') try: return catalog( portal_type='Folder', object_provides=('tabellio.searchform.form.IFolderWithPfbDocuments', 'tabellio.searchform.form.IFolderWithDocuments'), limit=1)[0].getObject().absolute_url() except IndexError: return '#' def portal_url(self): return getToolByName(self.context, 'portal_url').getPortalPath() def event_form_url(self): return self.portal_url() + '/eventsearch' def deputy_results(self): catalog = getToolByName(self.context, 'portal_catalog') if not self.request.form.get('SearchableText'): return [] return catalog( portal_type=['themis.datatypes.deputy'], SearchableText=self.request.form.get('SearchableText'), sort_on="sortable_title", sort_order='ascending') def page_results(self): catalog = getToolByName(self.context, 'portal_catalog') if not self.request.form.get('SearchableText'): return [] return catalog( portal_type=['Document', 'File', 'Folder', 'Link'], SearchableText=self.request.form.get('SearchableText'), sort_on='created', sort_order='descending') def doc_results(self): catalog = getToolByName(self.context, 'portal_catalog') if not self.request.form.get('SearchableText'): return [] return catalog( portal_type=['tabellio.documents.dossier', 'tabellio.documents.document', 'tabellio.documents.question'], SearchableText=self.request.form.get('SearchableText'), sort_on='dateDoc', sort_order='descending') def event_results(self): catalog = getToolByName(self.context, 'portal_catalog') if not self.request.form.get('SearchableText'): return [] return catalog( portal_type=['tabellio.agenda.parlevent', 'tabellio.agenda.event', 'tabellio.agenda.comevent'], SearchableText=self.request.form.get('SearchableText'), sort_on='start', sort_order='descending') def get_batchlinkparams(self): d = dict() for key in self.request.form: d[key] = self.request.form[key] if type(d[key]) is str: d[key] = unicode(d[key], 'utf-8').encode('utf-8') elif type(d[key]) is unicode: d[key] = d[key].encode('utf-8') return d