95 lines
3.7 KiB
Python
95 lines
3.7 KiB
Python
from zope import interface, schema
|
|
from z3c.form import form, 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
|
|
|
|
class SimpleSearchView(BrowserView):
|
|
batch_macros = ViewPageTemplateFile('batch_macros.pt')
|
|
|
|
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'))
|
|
|
|
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
|