From 9680e7ed2f7cb8d25ae5b76976233d50aedda862 Mon Sep 17 00:00:00 2001 From: Simon Caminada Date: Tue, 3 Apr 2018 07:17:01 +0000 Subject: [PATCH] install aldryn-google-analytics 1.0.1 --- addons/aldryn-google-analytics/addon.json | 4 ++ .../aldryn-google-analytics/aldryn_config.py | 37 +++++++++++++++++++ addons/aldryn-google-analytics/settings.json | 5 +++ requirements.in | 1 + settings.py | 1 + 5 files changed, 48 insertions(+) create mode 100644 addons/aldryn-google-analytics/addon.json create mode 100644 addons/aldryn-google-analytics/aldryn_config.py create mode 100644 addons/aldryn-google-analytics/settings.json diff --git a/addons/aldryn-google-analytics/addon.json b/addons/aldryn-google-analytics/addon.json new file mode 100644 index 0000000..fb014a5 --- /dev/null +++ b/addons/aldryn-google-analytics/addon.json @@ -0,0 +1,4 @@ +{ + "installed-apps": [], + "package-name": "aldryn-google-analytics" +} \ No newline at end of file diff --git a/addons/aldryn-google-analytics/aldryn_config.py b/addons/aldryn-google-analytics/aldryn_config.py new file mode 100644 index 0000000..ad24d91 --- /dev/null +++ b/addons/aldryn-google-analytics/aldryn_config.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +from aldryn_client import forms +import re + + +class GoogleAnalyticsIDField(forms.CharField): + + GOOGLE_ANALYTICS_ID_FORMAT = re.compile(r'^UA-\d+(-\d+)?$') + + def clean(self, value): + value = super(GoogleAnalyticsIDField, self).clean(value.strip()) + if not self.GOOGLE_ANALYTICS_ID_FORMAT.match(value): + raise forms.ValidationError('Invalid format. Google Analytics site tracking ID format is: UA-XXXXXX-YY.') + return value + + +class Form(forms.BaseForm): + google_analytics_id = GoogleAnalyticsIDField('Tracking ID', max_length=50) + # TODO: add description (not supported by forms yet): + # https://developers.google.com/analytics/devguides/collection/upgrade/guide#transfer + use_universal_analytics = forms.CheckboxField('Use Universal Analytics', required=False) + # https://developers.google.com/analytics/devguides/collection/analyticsjs/user-id?hl=en + track_individuals = forms.CheckboxField('Track individual logged in users (universal only)', required=False) + + def clean(self): + super(Form, self).clean() + if self.cleaned_data['track_individuals'] and not self.cleaned_data['use_universal_analytics']: + self.errors['track_individuals'] = "Individual user tracking only works in with Universal Analytics." + + def to_settings(self, data, settings): + settings['GOOGLE_ANALYTICS_ID'] = data['google_analytics_id'] + settings['GOOGLE_ANALYTICS_USE_UNIVERSAL'] = data['use_universal_analytics'] + settings['GOOGLE_ANALYTICS_TRACK_INDIVIDUALS'] = data['track_individuals'] + settings['INSTALLED_APPS'].append('aldryn_google_analytics') + + # aldryn-snake is configured by aldryn-django-cms + return settings diff --git a/addons/aldryn-google-analytics/settings.json b/addons/aldryn-google-analytics/settings.json new file mode 100644 index 0000000..0362db6 --- /dev/null +++ b/addons/aldryn-google-analytics/settings.json @@ -0,0 +1,5 @@ +{ + "google_analytics_id": "UA-116863155-1", + "track_individuals": false, + "use_universal_analytics": true +} \ No newline at end of file diff --git a/requirements.in b/requirements.in index e0c0d5c..482b9c3 100644 --- a/requirements.in +++ b/requirements.in @@ -4,6 +4,7 @@ https://control.divio.com/api/v1/apps/serve/aldryn-django/1.10.8.4/2e6f0c94-2f00 https://control.divio.com/api/v1/apps/serve/aldryn-sso/1.1.16/dbe0c45a-c981-4beb-8624-b0d2c4196aa0/aldryn-sso-1.1.16.tar.gz#egg=aldryn-sso==1.1.16 https://control.divio.com/api/v1/apps/serve/aldryn-django-cms/3.5.1.3/2dd6f80a-825c-4aaf-b37f-519a6c46108e/aldryn-django-cms-3.5.1.3.tar.gz#egg=aldryn-django-cms==3.5.1.3 https://control.divio.com/api/v1/apps/serve/aldryn-forms/2.2.8/fbefab76-74bf-445a-8288-7937b5750aa4/aldryn-forms-2.2.8.tar.gz#egg=aldryn-forms==2.2.8 +https://control.divio.com/api/v1/apps/serve/aldryn-google-analytics/1.0.1/9fa37058-cd43-418c-9e06-b81c17b6bdfb/aldryn-google-analytics-1.0.1.tar.gz#egg=aldryn-google-analytics==1.0.1 https://control.divio.com/api/v1/apps/serve/djangocms-history/0.5.3/05803675-6e8d-4637-b14b-1bb8d18b24b3/djangocms-history-0.5.3.tar.gz#egg=djangocms-history==0.5.3 https://control.divio.com/api/v1/apps/serve/djangocms-link/2.1.2/35b986c1-fafb-46ee-b665-aa36603f233a/djangocms-link-2.1.2.tar.gz#egg=djangocms-link==2.1.2 https://control.divio.com/api/v1/apps/serve/djangocms-picture/2.0.6/005e8663-d1cc-4667-936c-30709edad076/djangocms-picture-2.0.6.tar.gz#egg=djangocms-picture==2.0.6 diff --git a/settings.py b/settings.py index 7e7f4b6..24936a1 100644 --- a/settings.py +++ b/settings.py @@ -9,6 +9,7 @@ INSTALLED_ADDONS = [ 'aldryn-sso', 'aldryn-django-cms', 'aldryn-forms', + 'aldryn-google-analytics', 'djangocms-history', 'djangocms-link', 'djangocms-picture',