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 import ckan.lib.base as base
from ckan.controllers.home import HomeController from ckan.controllers.home import HomeController
from ckan.controllers.user import UserController 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.package import PackageController
from ckan.controllers.feed import FeedController, ITEMS_LIMIT, _package_search, _create_atom_id from ckan.controllers.feed import FeedController, ITEMS_LIMIT, _package_search, _create_atom_id
import ckan.lib.helpers as h import ckan.lib.helpers as h
import ckan.authz as authz 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 from ckan.common import c, request, config
import hashlib
abort = base.abort abort = base.abort
log = logging.getLogger(__name__)
class OdshRouteController(HomeController): class OdshRouteController(HomeController):
def info_page(self): def info_page(self):
...@@ -17,7 +25,6 @@ class OdshRouteController(HomeController): ...@@ -17,7 +25,6 @@ class OdshRouteController(HomeController):
def not_found(self): def not_found(self):
abort(404) abort(404)
class OdshUserController(UserController): class OdshUserController(UserController):
def me(self, locale=None): def me(self, locale=None):
if not c.user: if not c.user:
...@@ -57,8 +64,34 @@ class OdshUserController(UserController): ...@@ -57,8 +64,34 @@ class OdshUserController(UserController):
class OdshPackageController(PackageController): class OdshPackageController(PackageController):
pass 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): class OdshFeedController(FeedController):
def custom(self): def custom(self):
matomo.create_matomo_request()
extra_fields=['ext_startdate', 'ext_enddate', 'ext_bbox', 'ext_prev_extent'] extra_fields=['ext_startdate', 'ext_enddate', 'ext_bbox', 'ext_prev_extent']
q = request.params.get('q', u'') q = request.params.get('q', u'')
fq = '' fq = ''
......
...@@ -139,6 +139,11 @@ def odsh_upload_known_formats(): ...@@ -139,6 +139,11 @@ def odsh_upload_known_formats():
value = toolkit.aslist(value) value = toolkit.aslist(value)
return 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): def odsh_encodeurl(url):
return urllib.quote(url, safe='') 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 ...@@ -112,7 +112,9 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
'odsh_extract_error_new': odsh_helpers.odsh_extract_error_new, 'odsh_extract_error_new': odsh_helpers.odsh_extract_error_new,
'odsh_extract_value_from_extras': odsh_helpers.odsh_extract_value_from_extras, 'odsh_extract_value_from_extras': odsh_helpers.odsh_extract_value_from_extras,
'odsh_create_checksum': odsh_helpers.odsh_create_checksum, '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): def after_map(self, map):
...@@ -129,7 +131,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm ...@@ -129,7 +131,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
# /api ver 3 or none with matomo # /api ver 3 or none with matomo
GET_POST = dict(method=['GET', 'POST']) GET_POST = dict(method=['GET', 'POST'])
with SubMapper(map, controller='ckanext.odsh.controller:MamotoApiController', path_prefix='/api{ver:/3|}', ver='/3') as m: 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: with SubMapper(map, controller='ckanext.odsh.controller:OdshFeedController') as m:
m.connect('/feeds/custom.atom', action='custom') m.connect('/feeds/custom.atom', action='custom')
......
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
{% block head_extras %} {% block head_extras %}
{{ super() }} {{ super() }}
{% set matomo_url = 'https://phpefi.schleswig-holstein.de/gsb_analytics/'%} {% set matomo_url = h.odsh_tracking_url()%}
{% set matomo_id = 3%} {% set matomo_id = h.odsh_tracking_id()%}
<!-- Matomo --> <!-- Matomo -->
<script type="text/javascript"> <script type="text/javascript">
var _paq = _paq || []; var _paq = _paq || [];
...@@ -19,11 +19,10 @@ ...@@ -19,11 +19,10 @@
_paq.push(['trackPageView']); _paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']); _paq.push(['enableLinkTracking']);
(function() { (function() {
var u="{{matomo_url}}"; _paq.push(['setTrackerUrl', '{{matomo_url}}']);
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '{{matomo_id}}']); _paq.push(['setSiteId', '{{matomo_id}}']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 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> </script>
<!-- End Matomo Code --> <!-- End Matomo Code -->
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
{%- block content %} {%- block content %}
{% block maintag %}<div role="main">{% endblock %} {% block maintag %}<div role="main">{% endblock %}
{% set matomo_url = 'https://phpefi.schleswig-holstein.de/gsb_analytics/'%} {% set matomo_url = h.odsh_tracking_url()%}
{% set matomo_id = 3%} {% set matomo_id = h.odsh_tracking_id()%}
<noscript><p><img src="{{matomo_url}}/piwik.php?idsite={{matomo_id}}&rec=1" style="border:0;" alt="" /></p></noscript> <noscript><p><img src="{{matomo_url}}?idsite={{matomo_id}}&rec=1" style="border:0;" alt="" /></p></noscript>
<div id="content" class="container"> <div id="content" class="container">
<div id="testsystem"> <div id="testsystem">
<p>TESTSYSTEM</p> <p>TESTSYSTEM</p>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment