def search_aux(query, services=None, add_to_history=True): '''give a list of services, and a query, executes the search on those services. If the list is None, search on all services. add_to_history is a boolean that indicates if this search should be added to the user search history''' if services==None: services= Service.query.all() if add_to_history: add_search_to_history(query, services) search_methods= [m.global_search() for m in services] matches = match_search_to_methods_keywords(query, search_methods) method_parameters = [] for squery, method in matches: if method.parameters[0].parameter == rest_method_parameters.NOME: method_parameters.append((method, {rest_method_parameters.NOME: squery})) else: method_parameters.append((method, {rest_method_parameters.QUERY: query})) results= filter(lambda x:x is not None, ResourceMethod.execute_several(method_parameters, locale=get_locale())) xml = ElementTree.Element("entity", type='list') for result in results: result_xml = ElementTree.fromstring(result) if result_xml.tag == 'data': result_xml = result_xml.getchildren()[0] for e in result_xml: xml.append(e) html= xml_to_html.render(xml) return render_template('search.html', html=html)
def browse_resource_paginated(url, service, method, args): args= complete_method_args(service, url, method, args, add_start_end=True) xml= method.execute(args) html= xml_to_html.render(ElementTree.fromstring(xml)) n= RESULTS_PER_PAGINATED_PAGE if args["end"]==n: #first page html+= ''' <script> var doing_request= false; $(document).bind('scrollstop',function() { var x= $('body').height() +$(document).scrollTop() ; var y= $(document).height(); if ((x>=y) && (!doing_request)) { var url = $('div.ui-page-active').attr('data-url'); var start = $('div.ui-page-active ul.list').children().length doing_request= true; $.mobile.pageLoading(); $.ajax({url: url+"?start="+start+"&end="+(start+%i), success: function (data) { start+=%i; $("div.ui-page-active ul.list").append(data); $("ul.list").listview("refresh"); $.mobile.pageLoading(true); doing_request= false; } }); } }); </script>'''%(n, n ) return render_template('service_browse_resource.html', service=service, html=html, url=url) else: #not first page, don't return all the page, only li elements html_tree= ElementTree.fromstring(html.encode('utf-8')) assert html_tree.tag=="ul" html= "".join(map(ElementTree.tostring, html_tree.getchildren() )) return html
def browse_resource_unpaginated(url, service, method, args): args= complete_method_args(service, url, method, args) xml= method.execute(args, url_override=service.url+url) element = ElementTree.fromstring(xml) html= xml_to_html.render(element) return render_template('service_browse_resource.html', c="page-map" if element.get('type') == "map" else "", service=service, html=html, url=url)