Skip to content
Snippets Groups Projects
Commit 4fdce6b2 authored by anonymous's avatar anonymous
Browse files

Merge branch 'ODPSH-118'

parents ba4d2f30 fdd9f59b
No related branches found
No related tags found
No related merge requests found
import ckan.lib.base as base
from ckan.controllers.home import HomeController
from ckan.controllers.user import UserController
from ckan.controllers.api import ApiController
from ckan.controllers.feed import FeedController
from ckan.controllers.package import PackageController
from ckan.controllers.feed import FeedController, ITEMS_LIMIT, _package_search, _create_atom_id
import ckan.lib.helpers as h
import ckan.authz as authz
from ckan.common import c
import logging
import matomo
import ckan.logic as logic
from ckan.common import c, request, config
import hashlib
abort = base.abort
log = logging.getLogger(__name__)
class OdshRouteController(HomeController):
def info_page(self):
......@@ -17,7 +25,6 @@ class OdshRouteController(HomeController):
def not_found(self):
abort(404)
class OdshUserController(UserController):
def me(self, locale=None):
if not c.user:
......@@ -57,8 +64,34 @@ class OdshUserController(UserController):
class OdshPackageController(PackageController):
pass
class MamotoApiController(ApiController):
def action(self, logic_function, ver=None):
try:
function = logic.get_action(logic_function)
side_effect_free = getattr(function, 'side_effect_free', False)
request_data = self._get_request_data(
try_url_params=side_effect_free)
if isinstance(request_data, dict):
id = request_data.get('id', '')
if 'q' in request_data:
id = request_data['q']
if 'query' in request_data:
id = request_data['query']
userid=None
if c.user:
userid=hashlib.md5(c.user).hexdigest()[:16]
matomo.create_matomo_request(userid)
else:
matomo.create_matomo_request()
except Exception, e:
log.error(e)
return ApiController.action(self, logic_function, ver)
class OdshFeedController(FeedController):
def custom(self):
matomo.create_matomo_request()
extra_fields=['ext_startdate', 'ext_enddate', 'ext_bbox', 'ext_prev_extent']
q = request.params.get('q', u'')
fq = ''
......
......@@ -139,6 +139,11 @@ def odsh_upload_known_formats():
value = toolkit.aslist(value)
return value
def odsh_tracking_id():
return config.get('ckanext.odsh.matomo_id')
def odsh_tracking_url():
return config.get('ckanext.odsh.matomo_url')
def odsh_encodeurl(url):
return urllib.quote(url, safe='')
......
from piwikapi.tracking import PiwikTracker
from piwikapi.tests.request import FakeRequest
from ckan.common import c, request
from pylons import config
import logging
from ckan.plugins.toolkit import enqueue_job
def create_matomo_request(userId=None):
headers = {
'HTTP_USER_AGENT': request.headers.get('User-Agent'),
'REMOTE_ADDR': request.headers.get('Host'),
# 'HTTP_REFERER': 'http://referer.com/somewhere/',
'HTTP_ACCEPT_LANGUAGE': request.headers.get('Accept-Language'),
'SERVER_NAME': config.get('ckan.site_url'),
'PATH_INFO': c.environ['PATH_INFO'],
# 'QUERY_STRING': 'something=bar',
'HTTPS': False,
}
fakerequest = FakeRequest(headers)
piwiktracker =PiwikTracker(config.get('ckanext.odsh.matomo_id'), fakerequest)
piwiktracker.set_api_url(config.get('ckanext.odsh.matomo_url'))
if userId:
piwiktracker.set_visitor_id(userId)
enqueue_job(piwiktracker.do_track_page_view,[request.path_qs], queue='tracking')
......@@ -112,7 +112,9 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
'odsh_extract_error_new': odsh_helpers.odsh_extract_error_new,
'odsh_extract_value_from_extras': odsh_helpers.odsh_extract_value_from_extras,
'odsh_create_checksum': odsh_helpers.odsh_create_checksum,
'presorted_license_options': odsh_helpers.presorted_license_options
'presorted_license_options': odsh_helpers.presorted_license_options,
'odsh_tracking_id': odsh_helpers.odsh_tracking_id,
'odsh_tracking_url': odsh_helpers.odsh_tracking_url
}
def after_map(self, map):
......@@ -129,7 +131,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
# /api ver 3 or none with matomo
GET_POST = dict(method=['GET', 'POST'])
with SubMapper(map, controller='ckanext.odsh.controller:MamotoApiController', path_prefix='/api{ver:/3|}', ver='/3') as m:
m.connect('/action2/{logic_function}', action='action', conditions=GET_POST)
m.connect('/action/{logic_function}', action='action', conditions=GET_POST)
with SubMapper(map, controller='ckanext.odsh.controller:OdshFeedController') as m:
m.connect('/feeds/custom.atom', action='custom')
......
......@@ -10,8 +10,8 @@
{% block head_extras %}
{{ super() }}
{% set matomo_url = 'https://phpefi.schleswig-holstein.de/gsb_analytics/'%}
{% set matomo_id = 3%}
{% set matomo_url = h.odsh_tracking_url()%}
{% set matomo_id = h.odsh_tracking_id()%}
<!-- Matomo -->
<script type="text/javascript">
var _paq = _paq || [];
......@@ -19,11 +19,10 @@
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="{{matomo_url}}";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setTrackerUrl', '{{matomo_url}}']);
_paq.push(['setSiteId', '{{matomo_id}}']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
g.type='text/javascript'; g.async=true; g.defer=true; g.src='{{matomo_url|replace('piwik.php','piwik.js')}}'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
......
......@@ -3,9 +3,9 @@
{%- block content %}
{% block maintag %}<div role="main">{% endblock %}
{% set matomo_url = 'https://phpefi.schleswig-holstein.de/gsb_analytics/'%}
{% set matomo_id = 3%}
<noscript><p><img src="{{matomo_url}}/piwik.php?idsite={{matomo_id}}&rec=1" style="border:0;" alt="" /></p></noscript>
{% set matomo_url = h.odsh_tracking_url()%}
{% set matomo_id = h.odsh_tracking_id()%}
<noscript><p><img src="{{matomo_url}}?idsite={{matomo_id}}&rec=1" style="border:0;" alt="" /></p></noscript>
<div id="content" class="container">
<div id="testsystem">
<p>TESTSYSTEM</p>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment