diff --git a/google_analytics/templatetags/analytics.py b/google_analytics/templatetags/analytics.py index 1e34196..e5f79eb 100644 --- a/google_analytics/templatetags/analytics.py +++ b/google_analytics/templatetags/analytics.py @@ -4,6 +4,7 @@ from django.contrib.sites.models import Site from django.template import Context, loader +import re register = template.Library() @@ -20,23 +21,24 @@ def do_get_analytics(parser, token): code = None else: raise template.TemplateSyntaxError, "%r cannot take more than one argument" % tag_name - + + if not code and settings.GOOGLE_ANALYTICS_KEY: + code = settings.GOOGLE_ANALYTICS_KEY + if not code: 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] + code = re.sub(r'^["\']|["\']$', '', code) current_site = None return AnalyticsNode(current_site, code, template_name) - + class AnalyticsNode(template.Node): def __init__(self, site=None, code=None, template_name='google_analytics/analytics_template.html'): self.site = site self.code = code self.template_name = template_name - + def render(self, context): content = '' if self.site: @@ -49,7 +51,7 @@ def render(self, context): code = self.code else: return '' - + if code.strip() != '': t = loader.get_template(self.template_name) c = Context({ @@ -61,6 +63,6 @@ def render(self, context): return t.render(c) else: return '' - + register.tag('analytics', do_get_analytics) register.tag('analytics_async', do_get_analytics)