document search returning results
This commit is contained in:
parent
f9c9e8b903
commit
ed124088ad
|
@ -18,6 +18,44 @@
|
|||
<dt id="fieldsetlegend-documents">Documents parlementaires</dt>
|
||||
<dd id="fieldset-documents">
|
||||
<div tal:replace="structure view/document_search_form"/>
|
||||
|
||||
|
||||
<div tal:define="Batch python:modules['Products.CMFPlone'].Batch;
|
||||
mq python:modules['ZTUtils'].make_query;
|
||||
url batch_base_url | request/ACTUAL_URL;
|
||||
batchformkeys batchformkeys|nothing;
|
||||
batchlinkparams python:batchformkeys and dict([(key, unicode(request.form[key]).encode('utf-8')) for key in batchformkeys if key in request]) or dict([(key, unicode(request.form[key]).encode('utf-8')) for key in request.form]);
|
||||
search_results view/search_results;
|
||||
b_size python:10; b_size request/b_size | b_size;
|
||||
b_start python:0;b_start request/b_start | b_start;
|
||||
search_batch python:Batch(search_results, b_size,
|
||||
int(b_start), orphan=1);"
|
||||
tal:condition="search_results">
|
||||
|
||||
<div id="resultsbox">
|
||||
<span>Nombre de résultats : <span tal:replace="python: len(search_results)"/></span>
|
||||
</div>
|
||||
|
||||
<div id="results">
|
||||
<ul>
|
||||
<tal:entry tal:repeat="item search_batch">
|
||||
<li tal:define="oddrow repeat/item/odd; object python: item.getObject()" tal:attributes="class python: oddrow and 'odd' or 'even'"><div>
|
||||
<h4><a href="#" tal:attributes="href item/getURL" tal:content="python: object.reftitle">Véronique Salvi</a></h4>
|
||||
<p class="intitule" tal:content="item/Title"/>
|
||||
<p class="authors" tal:condition="python: object.authors">Auteur(s) : <span tal:replace="python: object.get_authors_as_string()" tal:condition="python: object.authors" /></p>
|
||||
</div></li>
|
||||
</tal:entry>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="results-nav" tal:define="p search_batch/previous | nothing;
|
||||
n search_batch/next | nothing">
|
||||
<a tal:condition="p" id="results-nav-prev" href="#">Précédent</a>
|
||||
<a tal:condition="n" id="results-nav-next" href="#">Suivant</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</dd>
|
||||
<dt id="fieldset-legend-dossiers">Dossiers parlementaires</dt>
|
||||
<dd id="fieldset-dossiers">
|
||||
|
|
|
@ -5,6 +5,7 @@ from plone.z3cform.layout import wrap_form
|
|||
from Products.CMFCore.utils import getToolByName
|
||||
|
||||
from z3c.form.ptcompat import ViewPageTemplateFile
|
||||
import z3c.form.interfaces
|
||||
|
||||
from z3c.relationfield.schema import RelationChoice, RelationList
|
||||
from plone.formwidget.contenttree import ObjPathSourceBinder
|
||||
|
@ -33,12 +34,29 @@ def possible_document_types(context):
|
|||
terms.append(SimpleVocabulary.createTerm(doctype_id, doctype_id, doctype))
|
||||
return SimpleVocabulary(terms)
|
||||
|
||||
@grok.provider(IContextSourceBinder)
|
||||
def possible_dossier_types(context):
|
||||
catalog = getToolByName(context, 'portal_catalog')
|
||||
possible_dostypes = catalog.uniqueValuesFor('dostype')
|
||||
terms = []
|
||||
for dostype in possible_dostypes:
|
||||
dostype_id = dostype.encode('ascii', 'replace')
|
||||
terms.append(SimpleVocabulary.createTerm(dostype_id, dostype_id, dostype))
|
||||
return SimpleVocabulary(terms)
|
||||
|
||||
|
||||
def get_catalog_kwargs(context, data):
|
||||
kw = {}
|
||||
|
||||
return kw
|
||||
|
||||
|
||||
class IDocumentSearch(interface.Interface):
|
||||
search_type = schema.TextLine(title=u'Search Type', default=u'document')
|
||||
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')]))
|
||||
doctype = schema.Choice(title=_(u'Type'), required=False,
|
||||
source=possible_document_types)
|
||||
#subjects =
|
||||
ttitle = schema.TextLine(title=_(u'Title'), required=False)
|
||||
text = schema.TextLine(title=_(u'Text'), required=False)
|
||||
|
@ -53,10 +71,15 @@ class IDocumentSearch(interface.Interface):
|
|||
|
||||
|
||||
class DocumentSearchForm(form.Form):
|
||||
method = 'get'
|
||||
fields = field.Fields(IDocumentSearch)
|
||||
ignoreContext = True
|
||||
template = ViewPageTemplateFile('form_templates/view_effectivesearch.pt')
|
||||
|
||||
def updateWidgets(self):
|
||||
super(DocumentSearchForm, self).updateWidgets()
|
||||
self.widgets['search_type'].mode = z3c.form.interfaces.HIDDEN_MODE
|
||||
|
||||
@button.buttonAndHandler(_(u'Search'))
|
||||
def handleApply(self, action):
|
||||
data, errors = self.extractData()
|
||||
|
@ -69,8 +92,8 @@ class DocumentSearchForm(form.Form):
|
|||
|
||||
class IDossierSearch(interface.Interface):
|
||||
nodos = schema.TextLine(title=_(u'Dossier Number'), required=False)
|
||||
dostype = schema.Set(title=_(u'Type'), required=False,
|
||||
value_type=schema.Choice(values=[_(u'Lorem'), _(u'Ipsum')]))
|
||||
dostype = schema.Choice(title=_(u'Type'), required=False,
|
||||
source=possible_dossier_types)
|
||||
#subjects =
|
||||
ttitle = schema.TextLine(title=_(u'Title'), required=False)
|
||||
authors = RelationList(title=_(u'Authors'), default=[], required=False,
|
||||
|
@ -84,6 +107,7 @@ class IDossierSearch(interface.Interface):
|
|||
|
||||
|
||||
class DossierSearchForm(form.Form):
|
||||
method = 'get'
|
||||
fields = field.Fields(IDossierSearch)
|
||||
ignoreContext = True
|
||||
template = ViewPageTemplateFile('form_templates/view_dossier_search.pt')
|
||||
|
@ -150,6 +174,7 @@ class IDocumentPfbSearch(interface.Interface):
|
|||
|
||||
|
||||
class DocumentPfbSearchForm(form.Form):
|
||||
method = 'get'
|
||||
fields = field.Fields(IDocumentPfbSearch)
|
||||
ignoreContext = True
|
||||
template = ViewPageTemplateFile('form_templates/view_pfbdocsearch.pt')
|
||||
|
@ -164,19 +189,62 @@ class DocumentPfbSearchForm(form.Form):
|
|||
return
|
||||
|
||||
|
||||
class IGlobalSearchForm(interface.Interface):
|
||||
search_type = schema.TextLine(title=u'Search Type')
|
||||
|
||||
nodoc = schema.TextLine(title=_(u'Document Number'), required=False)
|
||||
nosuite = schema.TextLine(title=_(u'Suite Number'), required=False)
|
||||
doctype = schema.Choice(title=_(u'Type'), required=False,
|
||||
source=possible_document_types)
|
||||
|
||||
nodos = schema.TextLine(title=_(u'Dossier Number'), required=False)
|
||||
dostype = schema.Choice(title=_(u'Type'), required=False,
|
||||
source=possible_dossier_types)
|
||||
|
||||
#subjects =
|
||||
#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 GlobalSearchForm(form.Form):
|
||||
fields = field.Fields(IGlobalSearchForm)
|
||||
ignoreContext = True
|
||||
|
||||
class SearchView(BrowserView):
|
||||
def document_results(self):
|
||||
f = DocumentPfbSearchForm(self.context, self.request)
|
||||
def search_results(self):
|
||||
f = GlobalSearchForm(self.context, self.request)
|
||||
f.update()
|
||||
data, errors = f.extractData()
|
||||
catalog = getToolByName(self.context, 'portal_catalog')
|
||||
|
||||
kw = {}
|
||||
|
||||
if data.get('search_type') == 'document':
|
||||
kw['portal_type'] = 'tabellio.documents.document'
|
||||
elif data.get('search_type') == 'dossier':
|
||||
kw['portal_type'] = 'tabellio.documents.dossier'
|
||||
|
||||
if data.get('ttitle'):
|
||||
kw['Title'] = data.get('ttitle')
|
||||
|
||||
if data.get('nodoc'):
|
||||
kw['nodoc'] = data.get('nodoc')
|
||||
|
||||
if data.get('nodos'):
|
||||
kw['nodos'] = data.get('nodos')
|
||||
|
||||
if data.get('doctype'):
|
||||
kw['doctype'] = possible_document_types(self.context).getTermByToken(data.get('doctype')).title
|
||||
if data.get('dostype'):
|
||||
kw['dostype'] = possible_dossier_types(self.context).getTermByToken(data.get('doctype')).title
|
||||
if data.get('start') and data.get('end'):
|
||||
kw['dateDoc'] = {'query': [data.get('start'), data.get('end')], 'range': 'minmax'}
|
||||
elif data.get('start'):
|
||||
|
@ -184,20 +252,20 @@ class SearchView(BrowserView):
|
|||
elif data.get('end'):
|
||||
kw['dateDoc'] = {'query': data.get('end'), 'range': 'max'}
|
||||
|
||||
kw['sort_on'] = 'dateDoc'
|
||||
kw['sort_order'] = 'descending'
|
||||
if data.get('sort_on') == 'Type':
|
||||
kw['sort_on'] = 'doctype'
|
||||
kw['sort_order'] = 'ascending'
|
||||
elif data.get('sort_on') == 'Number':
|
||||
kw['sort_on'] = 'no'
|
||||
elif data.get('sort_on') == 'Session':
|
||||
kw['sort_on'] = 'session'
|
||||
kw['sort_order'] = 'descending'
|
||||
kw['sort_order'] = 'ascending'
|
||||
|
||||
if not kw:
|
||||
return []
|
||||
|
||||
return catalog(
|
||||
portal_type=['tabellio.documents.document'],
|
||||
**kw)
|
||||
catalog = getToolByName(self.context, 'portal_catalog')
|
||||
return catalog(**kw)
|
||||
|
||||
def document_pfb_search_form(self):
|
||||
f = DocumentPfbSearchForm(self.context, self.request)
|
||||
|
|
|
@ -7,57 +7,5 @@
|
|||
<metal:use use-macro="context/@@ploneform-macros/actions" />
|
||||
</form>
|
||||
|
||||
<div id="resultsbox">
|
||||
<span>De faux résultats pour le moment</span>
|
||||
</div>
|
||||
|
||||
<div id="results">
|
||||
<ul>
|
||||
<li class="odd"><div>
|
||||
<h4><a href="#">Proposition de décret - 123 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
|
||||
<li class="even"><div>
|
||||
<h4><a href="#">Proposition de décret - 124 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
|
||||
<li class="odd"><div>
|
||||
<h4><a href="#">Proposition de décret - 125 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
|
||||
<li class="even"><div>
|
||||
<h4><a href="#">Proposition de décret - 126 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="results-nav">
|
||||
<a id="results-nav-prev" href="#">Précédent</a>
|
||||
<a id="results-nav-next" href="#">Suivant</a>
|
||||
<p id="results-nav-page">
|
||||
<span class="label">Page n° :</span>
|
||||
<strong>1</strong>
|
||||
<span>2</span>
|
||||
<span>3</span>
|
||||
<span>3</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
|
||||
|
|
|
@ -6,57 +6,4 @@
|
|||
<metal:use use-macro="context/@@ploneform-macros/fields" />
|
||||
<metal:use use-macro="context/@@ploneform-macros/actions" />
|
||||
</form>
|
||||
|
||||
<div id="resultsbox">
|
||||
<span>De faux résultats pour le moment</span>
|
||||
</div>
|
||||
|
||||
<div id="results">
|
||||
<ul>
|
||||
<li class="odd"><div>
|
||||
<h4><a href="#">Proposition de décret - 123 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
|
||||
<li class="even"><div>
|
||||
<h4><a href="#">Proposition de décret - 124 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
|
||||
<li class="odd"><div>
|
||||
<h4><a href="#">Proposition de décret - 125 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
|
||||
<li class="even"><div>
|
||||
<h4><a href="#">Proposition de décret - 126 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="results-nav">
|
||||
<a id="results-nav-prev" href="#">Précédent</a>
|
||||
<a id="results-nav-next" href="#">Suivant</a>
|
||||
<p id="results-nav-page">
|
||||
<span class="label">Page n° :</span>
|
||||
<strong>1</strong>
|
||||
<span>2</span>
|
||||
<span>3</span>
|
||||
<span>3</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -7,57 +7,4 @@
|
|||
<metal:use use-macro="context/@@ploneform-macros/actions" />
|
||||
</form>
|
||||
|
||||
<div id="resultsbox">
|
||||
<span>De faux résultats pour le moment</span>
|
||||
</div>
|
||||
|
||||
<div id="results">
|
||||
<ul>
|
||||
<li class="odd"><div>
|
||||
<h4><a href="#">Proposition de décret - 123 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
|
||||
<li class="even"><div>
|
||||
<h4><a href="#">Proposition de décret - 124 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
|
||||
<li class="odd"><div>
|
||||
<h4><a href="#">Proposition de décret - 125 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
|
||||
<li class="even"><div>
|
||||
<h4><a href="#">Proposition de décret - 126 (2010-2011) n° 1</a></h4>
|
||||
<p>Proposition de décret visant à élargir la définition des primo-arrivants
|
||||
dans l'enseignement de la Communauté française.</p>
|
||||
<p><strong>Auteurs :</strong> Persoons Caroline, Bertiaux Françoise…</p>
|
||||
<p><strong>Statut :</strong> Version définitive</p>
|
||||
</div></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="results-nav">
|
||||
<a id="results-nav-prev" href="#">Précédent</a>
|
||||
<a id="results-nav-next" href="#">Suivant</a>
|
||||
<p id="results-nav-page">
|
||||
<span class="label">Page n° :</span>
|
||||
<strong>1</strong>
|
||||
<span>2</span>
|
||||
<span>3</span>
|
||||
<span>3</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
|
||||
|
|
Reference in New Issue