<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -64,6 +64,30 @@ class ContentObjectsNode(template.Node):
         return &quot;&quot;
 
 
+class ObjectGroupUrlNode(template.Node):
+    def __init__(self, obj, group, asvar):
+        self.obj_var = template.Variable(obj)
+        self.group = group
+        self.asvar = asvar
+    
+    def render(self, context):
+        url = &quot;&quot;
+        obj = self.obj_var.resolve(context)
+        group = self.group.resolve(context)
+        
+        try:
+            url = obj.get_absolute_url(group)
+        except NoReverseMatch:
+            if self.asvar is None:
+                raise
+        
+        if self.asvar:
+            context[self.asvar] = url
+            return &quot;&quot;
+        else:
+            return url
+
+
 @register.tag
 def groupurl(parser, token):
     bits = token.contents.split()
@@ -105,3 +129,33 @@ def content_objects(parser, token):
     if len(bits) != 5:
         raise template.TemplateSyntaxError(&quot;'%s' requires five arguments.&quot; % bits[0])
     return ContentObjectsNode(bits[1], bits[2], bits[4])
+
+
+@register.tag
+def object_group_url(parer, token):
+    &quot;&quot;&quot;
+    given an object and an optional group, call get_absolute_url passing the
+    group variable::
+    
+        {% object_group_url task group %}
+    &quot;&quot;&quot;
+    bits = token.contents.split()
+    tag_name = bits[0]
+    if len(bits) &lt; 3:
+        raise template.TemplateSyntaxError(&quot;'%s' takes at least two arguments&quot;
+            &quot; (object and a group)&quot; % tag_name)
+    
+    obj = bits[1]
+    group = parser.compile_filter(bits[2])
+    
+    if len(bits) &gt; 3:
+        if bits[3] != &quot;as&quot;:
+            raise template.TemplateSyntaxError(&quot;'%s' requires the forth&quot;
+                &quot; argument to be 'as'&quot; % tag_name)
+        try:
+            asvar = bits[4]
+        except IndexError:
+            raise template.TemplateSyntaxError(&quot;'%s' requires an argument&quot;
+                &quot; after 'as'&quot; % tag_name)
+    
+    return ObjectGroupUrlNode(obj, group, asvar)</diff>
      <filename>pinax/apps/groups/templatetags/group_tags.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>33bc006b7a02d3433b585d1c544b382c804a9b92</id>
    </parent>
  </parents>
  <author>
    <name>Brian Rosner</name>
    <email>brosner@gmail.com</email>
  </author>
  <url>http://github.com/pinax/pinax/commit/61c43047939cb8185dbb4368408a3eb8e2ae3d44</url>
  <id>61c43047939cb8185dbb4368408a3eb8e2ae3d44</id>
  <committed-date>2009-11-07T12:29:17-08:00</committed-date>
  <authored-date>2009-11-07T12:29:17-08:00</authored-date>
  <message>Added {% object_group_url obj group [as var] %} to groups app for calling get_absolute_url with a group argument</message>
  <tree>4e59fe081930bc9cfc8f5ca543bd4d2c65df5008</tree>
  <committer>
    <name>Brian Rosner</name>
    <email>brosner@gmail.com</email>
  </committer>
</commit>
