add searching by session
This commit is contained in:
parent
43f1767df7
commit
21dbad9943
|
@ -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)
|
||||
|
|
Reference in New Issue