From dd1f24efb5988b19a374ca0db4573a7b43cef78a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com>
Date: Thu, 14 May 2020 20:34:56 +0200
Subject: [PATCH] senat campaign: Matomo tracking code

---
 ...0002_senatcampaignwebsettings_matomo_id.py | 22 +++++++++++++++++++
 senat_campaign/models.py                      |  4 ++++
 .../templates/senat_campaign/base.html        | 17 ++++++++++++++
 3 files changed, 43 insertions(+)
 create mode 100644 senat_campaign/migrations/0002_senatcampaignwebsettings_matomo_id.py

diff --git a/senat_campaign/migrations/0002_senatcampaignwebsettings_matomo_id.py b/senat_campaign/migrations/0002_senatcampaignwebsettings_matomo_id.py
new file mode 100644
index 00000000..8e554c85
--- /dev/null
+++ b/senat_campaign/migrations/0002_senatcampaignwebsettings_matomo_id.py
@@ -0,0 +1,22 @@
+# Generated by Django 3.0.6 on 2020-05-14 18:29
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("senat_campaign", "0001_initial"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="senatcampaignwebsettings",
+            name="matomo_id",
+            field=models.IntegerField(
+                blank=True,
+                null=True,
+                verbose_name="Matomo ID pro sledování návštěvnosti",
+            ),
+        ),
+    ]
diff --git a/senat_campaign/models.py b/senat_campaign/models.py
index f8a02f55..f36fee3c 100644
--- a/senat_campaign/models.py
+++ b/senat_campaign/models.py
@@ -251,6 +251,9 @@ class SenatCampaignWebSettings(BaseSetting):
     contacts = StreamField(
         [("item", ContactBlock())], verbose_name="kontaktní osoby", blank=True
     )
+    matomo_id = models.IntegerField(
+        "Matomo ID pro sledování návštěvnosti", blank=True, null=True
+    )
 
     # TODO Matomo
     # TODO donations
@@ -258,6 +261,7 @@ class SenatCampaignWebSettings(BaseSetting):
     first_tab_panels = [
         FieldPanel("first_name"),
         FieldPanel("last_name"),
+        FieldPanel("matomo_id"),
     ]
 
     second_tab_panels = [
diff --git a/senat_campaign/templates/senat_campaign/base.html b/senat_campaign/templates/senat_campaign/base.html
index 9323e99c..0fa291eb 100644
--- a/senat_campaign/templates/senat_campaign/base.html
+++ b/senat_campaign/templates/senat_campaign/base.html
@@ -53,6 +53,23 @@
 
   <!-- Styles -->
   <link href="{% static "senat_campaign/css/style.css" %}" rel="stylesheet">
+
+  {% if not request.is_preview and web_settings.matomo_id %}
+  <!-- Matomo -->
+  <script type="text/javascript">
+    var _paq = window._paq || [];
+    _paq.push(['trackPageView']);
+    _paq.push(['enableLinkTracking']);
+    (function() {
+      var u="//matomo.pirati.cz/";
+      _paq.push(['setTrackerUrl', u+'matomo.php']);
+      _paq.push(['setSiteId', '{{ web_settings.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+'matomo.js'; s.parentNode.insertBefore(g,s);
+    })();
+  </script>
+  <!-- End Matomo Code -->
+  {% endif %}
 </head>
 
 <body id="top" data-spy="scroll" data-offset="120" data-target="#mainNavigation">
-- 
GitLab