%!
import DateTime
import time
sx1=time.time()
%>
<%namespace file="/functions/partials" name="partials" import="*"/>
<%def name="idx_relperson(obj=None)">
<%
import json
import urllib
usr = []
if obj:
if obj.val('authors-internal'):
owda = json.loads( urllib.unquote_plus(urllib.unquote_plus( obj.val('authors-internal') )))
for ow in owda:
if ow.get('id'):
usr.append( ow.get('id') )
if obj.val('editor-internal'):
owda = json.loads( urllib.unquote_plus(urllib.unquote_plus( obj.val('editor-internal') )))
for ow in owda:
if ow.get('id'):
usr.append( ow.get('id') )
print usr
%>
${','.join(usr)}
<%inherit file="site" />
<%def name="main_content()">
<%
_is_test = site.param('test') == '1'
# Cleanup function when new search is tested enough
USE_SEARCH_V2 = True
now = DateTime.DateTime()
#site.REQUEST.set('_viewMode', 1)
request = object.REQUEST
filterquery = site.REQUEST['QUERY_STRING']
query = site.param('query', default='', type="js")
test = ''
count=0
num_per_page = 20
items = []
ll = []
year = site.param('y', default=0, type="js")
#fromyear = 2016
fromyear = 2001-1
if filterquery:
hasrequest = 1
else:
hasrequest = 0
try:
year = int(year)
except:
year = 0
path_reports = '/customer/www/imr'
basepath_reports = '/customer/www'
objpath_reports = '/hi/nettrapporter'
path_reports = basepath_reports + objpath_reports
objpath_old_toktreports = "/hi/publikasjoner/toktrapporter"
path_old_toktreports = basepath_reports + objpath_old_toktreports
cat = ''
_serie = site.param('serie', default='', type="js")
_fast_serie = site.param('fast_serie', default='', type="js")
_tema = site.param('tema', default='', type="js")
_faggruppe = site.param('faggruppe', default='', type="js")
if not _is_test:
templates = ['report-article', 'report-file']
templates_filter = ""
for t in templates:
templates_filter += '"%s"|' % t
templates_filter = templates_filter[:-1]
querystring = {'path':[path_reports, path_old_toktreports],'template':templates, 'sort_on':'inx_publishDate',
'sort_order':'descending', 'count':6000 }
extra_filter = ""
if _serie:
querystring['serie'] = _serie
extra_filter += '@data "serie %s"~2' % _serie
if _fast_serie:
extra_filter += '@data "serie-report-type %s"~2' % _fast_serie
querystring['serie-report-type'] = _fast_serie
if _tema:
querystring['rel-tema'] = partials.get_rel_tema_query_by_tema(int(_tema))
#if _faggruppe:
#querystring['rel-faggruppe'] = _faggruppe
if query:
import re
query = re.sub(u'[^0-9a-zæøå -]', '', query, flags=re.IGNORECASE)
_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'] = {'query': _query, 'ranking_maxhits' : 5000}
datestart = None
dateend = None
if year and isinstance(year, int):
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())
num_per_page = 20
start = int(site.param('start','0'))
if datestart and dateend:
querystring['inx_publishDate'] = {'query':[datestart, dateend], 'range':'min:max'}
except:
pass
# context.write(object.why())
# pagination
limit = 30
start = int(site.param('start','0'))
lenlist = 0
items = []
test_reports = []
test_qd = None
if USE_SEARCH_V2:
result = partials.fetchReportsSphinx(
query=site.param('query', default='', type="js"),
path='("%s" | "%s")' % (path_reports, path_old_toktreports),
serie=_serie,
serie_report_type=_fast_serie,
year=year,
in_english=object.language() == 'en',
offset=start,
limit=limit,
order_by='publish_date desc'
)
items = result["data"]
lenlist = result["total"]
test_qd = result["qd"]
else:
result = partials.fetchFromSphinx('@path=("%s" | "%s") @template %s %s' % (path_reports, path_old_toktreports, templates_filter, extra_filter),\
search_term = site.param('query', default='', type="js"),\
start_lime_loopup=start,
end_lime_loopup=start+limit,
limit=5000,\
where=("datePublished > %s and datePublished < %s" % (datestart, dateend)) if datestart and dateend else "")
items = result["result"]
lenlist = result["cnt_tot_results"]
# url extension
padd = ''
padd = '&query;=' + query
if year:
padd += '&y;=' + str(year)
if _serie:
padd += '&serie;=' + _serie
if _fast_serie:
padd += '&fast;_serie=' + _fast_serie
if _tema:
padd += '&tema;=' + _tema
if not USE_SEARCH_V2:
# Remove potential duplicates and None
# Get parent (report object) if result is a report-section
report_objects = items
items = []
for obj in report_objects:
if obj and obj not in items:
items.append(obj)
debug_log(len(report_objects))
if object.language() == 'en':
_reports = []
for obj in items:
if obj.val('in-english') == '1' or obj.translated('en'):
_reports.append(obj)
items = _reports
list = items
%>
${object.val('longtitle') or object.val('title')}
${object.val('abstract') or object.val('teaser')}
<%
serier = site.lists.report_serie( None )
%>
%for serie in serier:
%if serie[0] != '':
%endif
%endfor
<%
faste_rapporter = site.lists.report_fastrapport( None )
%>
%for fast in faste_rapporter:
%if fast[0] != '':
%endif
%endfor
% for y in xrange(now.year(),fromyear, -1):
% endfor
%if hasrequest:
%if _tema:
<%
temaobj = None
try:
temaid = int(_tema)
except:
temaid = 0
if temaid:
temaobj = site.get(sql_id=temaid)
%>
%if temaobj:
Tema: ${temaobj.val('title')}
%endif
%endif
${site.i18n("site-filter-clear-all")}
%endif
${site.i18n('site-result')}: ${query} (${lenlist})
%if lenlist > limit:
${site.i18n('site-showing')} ${start+1} -
%if (start+limit) > lenlist:
${lenlist}
%else:
${start+limit}
%endif
%endif
% if list:
%for item in list:
${partials.renderListItemReport(item)}
%endfor
% endif
%if lenlist > limit:
${partials.renderPagination(object, lenlist, limit, padd=padd)}
%endif