app/soc/views/helper/params.py
changeset 679 77a286ff6667
parent 673 2433d5c1d7e6
child 680 7f047b2a2d3a
--- a/app/soc/views/helper/params.py	Sat Dec 06 14:23:25 2008 +0000
+++ b/app/soc/views/helper/params.py	Sat Dec 06 14:23:53 2008 +0000
@@ -245,8 +245,24 @@
   patterns = params['key_fields_prefix']
 
   for name in names:
-    pattern = r'(?P<%s>%s)' % (name, linkable.LINK_ID_PATTERN_CORE)
+    if name == 'scope_path':
+      pattern = getScopePattern(params)
+    else:
+      pattern = r'(?P<%s>%s)' % (name, linkable.LINK_ID_PATTERN_CORE)
     patterns.append(pattern)
 
   result = '/'.join(patterns)
   return result
+
+def getScopePattern(params):
+  """Returns the Scope pattern for this entity
+  """
+
+  logic = params['logic']
+  depth = logic.getScopeDepth()
+  if depth is None:
+    return linkable.SCOPE_PATH_ARG_PATTERN
+
+  regexps = [linkable.LINK_ID_PATTERN_CORE for i in range(depth)]
+  regexp = '/'.join(regexps)
+  return r'(?P<scope_path>%s)' % regexp