add searching by session

This commit is contained in:
Frédéric Péters 2011-11-06 16:13:56 +01:00
parent 43f1767df7
commit 21dbad9943
1 changed files with 26 additions and 6 deletions

View File

@ -17,6 +17,8 @@ from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from zope.schema.interfaces import IContextSourceBinder
from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
import tabellio.config.utils
class IFolderWithDocuments(interface.Interface):
pass
@ -60,6 +62,15 @@ def possible_question_types(context):
terms.append(SimpleVocabulary.createTerm(questype_id, questype_id, questype))
return SimpleVocabulary(terms)
@grok.provider(IContextSourceBinder)
def possible_sessions(context):
terms = []
for term in tabellio.config.utils.get_legisl_and_sessions():
term_id = term.encode('ascii', 'replace')
terms.append(SimpleVocabulary.createTerm(term_id, term_id, term))
return SimpleVocabulary(terms)
class IDocumentSearch(interface.Interface):
search_type_is_document = schema.TextLine(title=u'Search Type', default=u'1', required=False)
nodoc = schema.TextLine(title=_(u'Document Number'), required=False)
@ -74,7 +85,8 @@ class IDocumentSearch(interface.Interface):
source=ObjPathSourceBinder(
portal_type=['themis.datatypes.deputy'])))
# polgroups
# session
session = schema.Choice(title=_(u'Legislature / Session'), required=False,
source=possible_sessions)
start = schema.Date(title=_(u'Start'), required=False)
end = schema.Date(title=_(u'End'), required=False)
@ -112,7 +124,8 @@ class IDossierSearch(interface.Interface):
source=ObjPathSourceBinder(
portal_type=['themis.datatypes.deputy'])))
# polgroups
# session
session = schema.Choice(title=_(u'Legislature / Session'), required=False,
source=possible_sessions)
start = schema.Date(title=_(u'Start'), required=False)
end = schema.Date(title=_(u'End'), required=False)
@ -149,7 +162,8 @@ class IQuestionSearch(interface.Interface):
source=ObjPathSourceBinder(
portal_type=['themis.datatypes.deputy'])))
# polgroups
# session
session = schema.Choice(title=_(u'Legislature / Session'), required=False,
source=possible_sessions)
start = schema.Date(title=_(u'Start'), required=False)
end = schema.Date(title=_(u'End'), required=False)
@ -187,7 +201,8 @@ class IDocumentPfbSearch(interface.Interface):
source=ObjPathSourceBinder(
portal_type=['themis.datatypes.deputy'])))
# polgroups
# session
session = schema.Choice(title=_(u'Legislature / Session'), required=False,
source=possible_sessions)
start = schema.Date(title=_(u'Start'), required=False)
end = schema.Date(title=_(u'End'), required=False)
@ -240,7 +255,8 @@ class IGlobalSearchForm(interface.Interface):
source=ObjPathSourceBinder(
portal_type=['themis.datatypes.deputy'])))
# polgroups
# session
session = schema.Choice(title=_(u'Legislature / Session'), required=False,
source=possible_sessions)
start = schema.Date(title=_(u'Start'), required=False)
end = schema.Date(title=_(u'End'), required=False)
@ -257,7 +273,7 @@ class SearchView(BrowserView):
kw = {}
print data
print 'data:', data
if not data.get('search_type_is_%s' % search_type):
print 'not the right pane'
@ -294,6 +310,9 @@ class SearchView(BrowserView):
elif data.get('end'):
kw['dateDoc'] = {'query': data.get('end'), 'range': 'max'}
if data.get('session'):
kw['session'] = tabellio.config.utils.get_list_of_sessions(data.get('session'))
if data.get('polgroups'):
pass # XXX : kw['polgroupsDoc'] = {'query': ['ps', 'ecolo'], 'operator': 'and'}
@ -312,6 +331,7 @@ class SearchView(BrowserView):
kw['sort_order'] = 'descending'
print 'kw:', kw
print '--'
catalog = getToolByName(self.context, 'portal_catalog')
return catalog(**kw)