1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.participatorybudget.service;
35
36 import java.util.List;
37 import java.util.Map;
38
39 import javax.servlet.http.HttpServletRequest;
40
41 import fr.paris.lutece.plugins.search.solr.business.SolrFacetedResult;
42 import fr.paris.lutece.plugins.search.solr.business.SolrSearchEngine;
43 import fr.paris.lutece.plugins.search.solr.business.SolrSearchResult;
44 import fr.paris.lutece.plugins.search.solr.service.ISolrSearchAppAddOn;
45 import fr.paris.lutece.portal.service.util.AppPropertiesService;
46
47 public class ProjectLaureatAddOn implements ISolrSearchAppAddOn
48 {
49
50
51 private static final String PARAMETER_SORT_NAME = "sort_name";
52 private static final String PARAMETER_SORT_ORDER = "sort_order";
53 private static final String SOLRSEARCHAPP_PARAMETER_CONF = "conf";
54 private static final String MARK_PROJECTS_TOUT_PARIS = "projectLaureatToutParis";
55 private static final String PARAMETER_CONF_ELECTED_PROJECT = "projects_win";
56 private static final String PROPERTY_PROJECTS_FQ = "participatorybudget.projects.laureat.fq";
57 private static final String [ ] SOLR_FQ_PROJECTS_TOUT_PARIS = {
58 AppPropertiesService.getProperty( PROPERTY_PROJECTS_FQ, "(statut_project_text:GAGNANT') AND location_text:'whole_city' AND type:'PB Project" )
59 };
60
61 private static final String PROPERTY_SOLR_RESPONSE_MAX = "solr.reponse.max";
62 private static final int SOLR_RESPONSE_MAX = Integer.parseInt( AppPropertiesService.getProperty( PROPERTY_SOLR_RESPONSE_MAX, "100" ) );
63
64 @Override
65 public void buildPageAddOn( Map<String, Object> model, HttpServletRequest request )
66 {
67
68 if ( PARAMETER_CONF_ELECTED_PROJECT.equals( request.getParameter( SOLRSEARCHAPP_PARAMETER_CONF ) ) )
69 {
70 SolrSearchEngine engine = SolrSearchEngine.getInstance( );
71 SolrFacetedResult facetedResult = engine.getFacetedSearchResults( "*:*", SOLR_FQ_PROJECTS_TOUT_PARIS, request.getParameter( PARAMETER_SORT_NAME ),
72 request.getParameter( PARAMETER_SORT_ORDER ), SOLR_RESPONSE_MAX, 1, SOLR_RESPONSE_MAX );
73 List<SolrSearchResult> listResults = facetedResult.getSolrSearchResults( );
74
75 model.put( MARK_PROJECTS_TOUT_PARIS, listResults );
76 }
77
78 }
79
80 }