Use custom pager instead of Suq-Pagination. Don't request the first GeoJSON items...
[infos-pratiques:etalage.git] / poiscasse / templates / index.mako
1 ## -*- coding: utf-8 -*-
2
3
4 ## PoisCasse -- Open Data POIs portal
5 ## By: Emmanuel Raviart <eraviart@easter-eggs.com>
6 ##     Romain Soufflet <rsoufflet@easter-eggs.com>
7 ##
8 ## Copyright (C) 2011 Easter-eggs
9 ## http://gitorious.org/infos-pratiques/poiscasse
10 ##
11 ## This file is part of PoisCasse.
12 ##
13 ## PoisCasse is free software; you can redistribute it and/or modify
14 ## it under the terms of the GNU Affero General Public License as
15 ## published by the Free Software Foundation, either version 3 of the
16 ## License, or (at your option) any later version.
17 ##
18 ## PoisCasse is distributed in the hope that it will be useful,
19 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 ## GNU Affero General Public License for more details.
22 ##
23 ## You should have received a copy of the GNU Affero General Public License
24 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
25
26
27 <%!
28 import urllib
29 import urlparse
30
31 from poiscasse import conf
32 %>
33
34
35 <%inherit file="/site.mako"/>
36
37
38 <%def name="scripts()" filter="trim">
39     <%parent:scripts/>
40     <script src="/js/categories.js"></script>
41     <script src="/js/territories.js"></script>
42     <script>
43 var etalage = etalage || {};
44 etalage.categories.tags = ${ctx.category_tags_slug | n, js};
45 etalage.territories.autocompleterUrl = ${urlparse.urljoin(conf['territoria_url'],
46     '/api/v1/autocomplete-territory') | n, js};
47 etalage.pager = ${dict(
48     # Name of items follow Google JSON Style Guide http://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml
49     currentItemCount = pager.page_size,
50     itemsPerPage = pager.page_max_size,
51     pageIndex = pager.page_number,
52     startIndex = pager.first_item_number,
53     totalItems = pager.item_count,
54     totalPages = pager.page_count,
55     ) if pager is not None else None | n, js};
56 etalage.params = ${params | n, js};
57
58 $(function () {
59     etalage.categories.createAutocompleter($('#category'));
60     etalage.territories.createAutocompleter($('#territory'));
61
62     % if ctx.container_base_url is not None and ctx.gadget_id is not None:
63     $('#search-form').submit(function () {
64         return false;
65     });
66     % endif
67 });
68     </script>
69 </%def>
70
71
72 <%def name="body_content()" filter="trim">
73     <fieldset>
74         <form action="${'/carte' if mode == 'map' else '/'}" id="search-form" method="get">
75     % for name, value in params.iteritems():
76 <%
77         if name in ('category', 'page', 'term', 'territory'):
78             continue
79 %>\
80             <input name="${name}" type="hidden" value="${value or ''}">
81     % endfor
82             <label for="category">Catégorie</label>
83             <input id="category" name="category" type="text" value="${params['category'] or ''}">
84
85             <br>
86
87             <label for="term">Intitulé</label>
88             <input id="term" name="term" type="text" value="${params['term'] or ''}">
89
90             <br>
91
92             <label for="territory">Territoire</label>
93             <input id="territory" name="territory" type="text" value="${params['territory'] or ''}">
94
95             <br>
96
97             <input id="submit" name="submit" type="submit" value="Rechercher">
98         </form>
99     </fieldset>
100 <%
101     url_params = urllib.urlencode(dict(
102         (name, value)
103         for name, value in params.iteritems()
104         if name != 'page' and value is not None
105         ))
106 %>\
107     % if pager is None or pager.item_count == 0:
108     <div>
109         <em>Aucun organisme trouvé.</em>
110     </div>
111     % else:
112     <div>
113         Organismes ${pager.first_item_number} à ${pager.last_item_number} sur ${pager.item_count}<br>
114         Nombre d'organismes par page : ${pager.page_size}
115         % if pager.page_number > 1:
116         <a href='/?page=${pager.page_number - 1}&${url_params}'>Précédent</a>
117         % endif
118         % if pager.page_number < pager.item_count / pager.page_size:
119         <a href='/?page=${pager.page_number + 1}&${url_params}'>Suivant</a>
120         % endif
121         <a href='/carte?page=${pager.page_number}&${url_params}'>Voir sur une carte</a>
122     </div>
123     <%self:results/>
124     % endif
125 </%def>
126