From: Clint Ecker Date: Mon, 7 Jul 2008 19:55:49 +0000 (+0000) Subject: Initial commit of the project. X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=10c2795494e8b791c3b87295a71d95adedd07365;p=django-google-tools.git Initial commit of the project. --- 10c2795494e8b791c3b87295a71d95adedd07365 diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/models.py b/models.py new file mode 100644 index 0000000..f120687 --- /dev/null +++ b/models.py @@ -0,0 +1,9 @@ +from django.db import models +from django.contrib.sites.models import Site + +class Analytics(models.Model): + site = models.ForeignKey(Site, edit_inline=models.TABULAR, max_num_in_admin=1, min_num_in_admin=1) + analytics_code = models.CharField(blank=True, max_length=100, core=True) + + def __unicode__(self): + return u"%s" % (self.analytics_code) diff --git a/templates/google_analytics/analytics_template.html b/templates/google_analytics/analytics_template.html new file mode 100644 index 0000000..5fb5df1 --- /dev/null +++ b/templates/google_analytics/analytics_template.html @@ -0,0 +1,9 @@ + + \ No newline at end of file diff --git a/templatetags/__init__.py b/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/templatetags/analytics.py b/templatetags/analytics.py new file mode 100644 index 0000000..7ea2b49 --- /dev/null +++ b/templatetags/analytics.py @@ -0,0 +1,48 @@ +from django import template +from django.db import models +from django.contrib.sites.models import Site + +from django.template import Context, loader + + +register = template.Library() +Analytics = models.get_model('googleanalytics', 'analytics') + +def do_get_analytics(parser, token): + try: + # split_contents() knows not to split quoted strings. + tag_name, code = token.split_contents() + except ValueError: + code = None + + if not code: + print "No code, grabbing from sites" + current_site = Site.objects.get_current() + else: + if not (code[0] == code[-1] and code[0] in ('"', "'")): + raise template.TemplateSyntaxError, "%r tag's argument should be in quotes" % tag_name + code = code[1:-1] + current_site = None + return AnalyticsNode(current_site, code) + +class AnalyticsNode(template.Node): + def __init__(self, site=None, code=None): + self.site = site + self.code = code + + def render(self, context): + content = '' + if self.site: + code = self.site.analytics_set.all()[0].analytics_code + elif self.code: + code = self.code + else: + return '' + + t = loader.get_template('google_analytics/analytics_template.html') + c = Context({ + 'analytics_code': code, + }) + return t.render(c) + +register.tag('analytics', do_get_analytics)