Author: jtauber
Date: Sat Sep 27 05:34:56 2008
New Revision: 948
Modified:
trunk/local_apps/account/templatetags/other_service_tags.py
Log:
other_service tag now supports assignment to variable
Modified: trunk/local_apps/account/templatetags/other_service_tags.py
==============================================================================
--- trunk/local_apps/account/templatetags/other_service_tags.py (original)
+++ trunk/local_apps/account/templatetags/other_service_tags.py Sat Sep 27
05:34:56 2008
@@ -1,12 +1,45 @@
+import re
+
from django import template
from account.models import OtherServiceInfo
register = template.Library()
-def other_service(user, key):
- try:
- value = OtherServiceInfo.objects.get(user=user, key=key).value
- except OtherServiceInfo.DoesNotExist:
- value = u""
- return value
-register.simple_tag(other_service)
\ No newline at end of file
+class OtherServiceNode(template.Node):
+ def __init__(self, user, key, asvar):
+ self.user = user
+ self.key = key
+ self.asvar = asvar
+
+ def render(self, context):
+ user = self.user.resolve(context)
+ key = self.key
+ try:
+ value = OtherServiceInfo.objects.get(user=user, key=key).value
+ except OtherServiceInfo.DoesNotExist:
+ value = ''
+
+ if self.asvar:
+ context[self.asvar] = value
+ return ''
+ else:
+ return value
+
+
[EMAIL PROTECTED]
+def other_service(parser, token):
+ bits = token.contents.split(' ')
+ if len(bits) == 3: # {% other_service user key %}
+ user = parser.compile_filter(bits[1])
+ key = bits[2]
+ asvar = None
+ elif len(bits) == 5: # {% other_service user key as var %}
+ if bits[3] != "as":
+ raise template.TemplateSyntaxError("3rd argument to %s should
be 'as'" % bits[0])
+ user = parser.compile_filter(bits[1])
+ key = bits[2]
+ asvar = bits[4]
+ else:
+ raise template.TemplateSyntaxError("wrong number of arguments
to %s" % bits[0])
+
+ return OtherServiceNode(user, key, asvar)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pinax-updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/pinax-updates?hl=en
-~----------~----~----~----~------~----~------~--~---