%!
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'
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")
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'))
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"]
# Get parent (report object) if result is a report-section
report_objects = items
items = []
_debug=[]
# Remove potential duplicates and None
for obj in report_objects:
if obj and obj not in items:
items.append(obj)
if _is_test:
_debug.append({"id": obj.sql_id, "obj.val('in-english')": obj.val('in-english'), "obj.translated('en')": obj.translated('en')})
debug_log(len(report_objects))
# 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 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
%>
% if _is_test:
debug translated: ${_debug}
lang: ${object.language()}
len_report_objs: ${len(report_objects)}
len_list: ${lenlist}
querystring: ${querystring}
count: ${len(items)}
url: ${object.absolute_url(True)}
fallback: ${object.fallback('de')}
% endif
${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