%! import DateTime import time sx1=time.time() %> <%namespace file="/functions/partials" name="partials" import="*"/> <%inherit file="site" /> <%def name="main_content()"> <% now = DateTime.DateTime() filterquery = site.REQUEST['QUERY_STRING'] query = site.param('query', default='', type="js") count=0 num_per_page = 30 start_at = int(site.param("start") or "0") items = [] year = site.param('y', default=0, type="js") fromyear = 2016 try: year = int(year) except: year = 0 if filterquery: hasrequest = 1 else: hasrequest = 0 path = '/customer/www/imr' basepath = '/customer/www' objpath = object.url(localized=False) path = basepath + objpath templates = ['news-article','feature-article'] cat = site.param('cat', default='', type="js") tema = site.param('tema', default='', type="js") if cat: cat = cat.lstrip() cat = cat.rstrip() cat = cat.replace('"', '') cat = cat.replace('=', '') cat = cat.replace('+', '') cat = cat.replace('(', '') cat = cat.replace(')', '') cat = cat.replace(' ', '') cat = cat.replace('.', '') cat = cat.replace("'", "") querystring = {'path':path, 'lang':'en','template':templates, 'sort_on':'inx_publishDate' , 'sort_order':'descending' } has_filter = False if cat: has_filter = True querystring['articlecat'] = cat if tema: has_filter = True querystring['rel-tema'] = partials.get_rel_tema_query_by_tema(int(tema)) #query if query: has_filter = True import re query = re.sub(u'[^0-9a-zæøå -]', '', query, flags=re.IGNORECASE) query = query.lstrip() query = query.rstrip() query = query.replace('=', '') query = query.replace('+', '') query = query.replace('(', '') query = query.replace(')', '') _query = query if len(query) > 4 and query.find(' and ') == -1 and query.find(' or ') == -1 and query.find('"') == -1 and query.find('*') == -1: _query = '*' + query + '*' if query: querystring['SearchableText'] = {'ranking':True, 'ranking_maxhits' : 3000, "query": _query} datestart = None dateend = None if year and isinstance(year, int): has_filter = True datestart = 0 dateend = 0 try: start = DateTime.DateTime('%s.%s.01' % (year, 01)) last = DateTime.DateTime('%s.%s.31 23:59' % (year, 12)) datestart = int(start.timeTime()) dateend = int(last.timeTime()) start = int(site.param('start','0')) if datestart and dateend: querystring['inx_publishDate'] = {'query':[datestart, dateend], 'range':'min:max'} #items = site.find( { 'query':querystring, "count": 5000 } ) except: pass else: # if has filter, we want to get all from the query, so we can display the correct total amount/pagination if has_filter: pass #items = site.find( { 'query':querystring, "count":5000 } ) # if not any filters, we can instead only retieve what we need and use a separate query bellow to ask for the total count else: pass #items = site.find( { 'query':querystring, "count":start_at+num_per_page } ) # pagination num_per_page = 30 start = int(site.param('start','0')) debug_qd = None extra_filters = "" if cat: extra_filters = '@data "articlecat %s"~10 ' % cat if tema: extra_filters += '@data %s << abstract' % tema # where_str = ("datePublished > %s and datePublished < %s" % (datestart, dateend)) if datestart and dateend else "" where_str = 'publish_date BETWEEN %s AND %s' % (datestart, dateend) if datestart and dateend else "" result = partials.fetchFromSphinx('@path=\"%s\" @template ("news-article"|"feature-article") %s' % (path, extra_filters),\ start_lime_loopup=start,\ search_term = site.param('query', default='', type="js"),\ end_lime_loopup=start+num_per_page,\ limit=5000,\ where=where_str ) items = result["result"] cnt_total_items = result["cnt_tot_results"] debug_qd = result["qd"] #query if query: query = query.replace('"', '') query = query.replace("'", "") # url extension padd = '' padd = '&query;=' + query if year: padd += '&y;=' + str(year) if cat: padd += '&cat;=' + cat if tema: padd += '&tema;=' + tema list = [] if has_filter: lenlist = cnt_total_items else: lenlist = cnt_total_items list = items %>
<% temaobj = None try: temaid = int(tema) except: temaid = 0 if temaid: temaobj = site.get(sql_id=temaid) %> %if temaobj: Tema: ${temaobj.val('title')} Fjern filter %endif