From 1eab45d6b231467a38fe67969034f1851272ea9f Mon Sep 17 00:00:00 2001 From: Uros Trebec Date: Sat, 1 Oct 2011 22:14:56 +0200 Subject: [PATCH 1/6] Added a 'GOOGLE_ANALYTICS_PAGE_LOAD_TIME' option to insert '_trackPageLoadTime' in google_analytics.py templatetag --- analytical/templatetags/google_analytics.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/analytical/templatetags/google_analytics.py b/analytical/templatetags/google_analytics.py index 0aad6f3..3ed6f52 100644 --- a/analytical/templatetags/google_analytics.py +++ b/analytical/templatetags/google_analytics.py @@ -49,6 +49,7 @@ NO_ALLOW_HASH_CODE = "_gaq.push(['_setAllowHash', false]);" ALLOW_LINKER_CODE = "_gaq.push(['_setAllowLinker', true]);" CUSTOM_VAR_CODE = "_gaq.push(['_setCustomVar', %(index)s, '%(name)s', " \ "'%(value)s', %(scope)s]);" +PAGE_LOAD_TIME_CODE = "_gaq.push(['_trackPageLoadTime']);" register = Library() @@ -76,6 +77,7 @@ class GoogleAnalyticsNode(Node): def render(self, context): commands = self._get_domain_commands(context) commands.extend(self._get_custom_var_commands(context)) + commands.extend(self._get_other_commands(context)) html = SETUP_CODE % {'property_id': self.property_id, 'commands': " ".join(commands)} if is_internal_ip(context, 'GOOGLE_ANALYTICS'): @@ -114,6 +116,12 @@ class GoogleAnalyticsNode(Node): commands.append(CUSTOM_VAR_CODE % locals()) return commands + def _get_other_commands(self, context): + commands = [] + page_load_time = getattr(settings, 'GOOGLE_ANALYTICS_PAGE_LOAD_TIME', False) + if page_load_time: + commands.append(PAGE_LOAD_TIME_CODE) + return commands def contribute_to_analytical(add_node): GoogleAnalyticsNode() # ensure properly configured From a4b076f9e803501b8c1b6b3b810319173553f842 Mon Sep 17 00:00:00 2001 From: Uros Trebec Date: Mon, 3 Oct 2011 19:57:17 +0200 Subject: [PATCH 2/6] Added a 'test_track_page_load_time' to test '_trackPageLoadTime' enabled by GOOGLE_ANALYTICS_PAGE_LOAD_TIME --- analytical/tests/test_tag_google_analytics.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/analytical/tests/test_tag_google_analytics.py b/analytical/tests/test_tag_google_analytics.py index 3885337..1dd795b 100644 --- a/analytical/tests/test_tag_google_analytics.py +++ b/analytical/tests/test_tag_google_analytics.py @@ -62,6 +62,11 @@ class GoogleAnalyticsTagTestCase(TagTestCase): self.assertTrue("_gaq.push(['_setCustomVar', 5, 'test2', 'bar', 1]);" in r, r) + @override_settings(GOOGLE_ANALYTICS_PAGE_LOAD_TIME=True) + def test_track_page_load_time(self): + r = GoogleAnalyticsNode().render(Context()) + self.assertTrue("_gaq.push(['_trackPageLoadTime']);" in r, r) + @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): req = HttpRequest() From fa0e578fdd666950d9b60b52b50c8a56eb4d7161 Mon Sep 17 00:00:00 2001 From: Uros Trebec Date: Mon, 3 Oct 2011 20:01:29 +0200 Subject: [PATCH 3/6] Added a default setting "PAGE_LOAD_TIME = False" in google_analytics.py templatetags --- analytical/templatetags/google_analytics.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/analytical/templatetags/google_analytics.py b/analytical/templatetags/google_analytics.py index 3ed6f52..4e4f530 100644 --- a/analytical/templatetags/google_analytics.py +++ b/analytical/templatetags/google_analytics.py @@ -28,6 +28,8 @@ SCOPE_VISITOR = 1 SCOPE_SESSION = 2 SCOPE_PAGE = 3 +PAGE_LOAD_TIME = False + PROPERTY_ID_RE = re.compile(r'^UA-\d+-\d+$') SETUP_CODE = """