app/soc/models/linkable.py
changeset 533 ba3309b2fd30
parent 524 774b379e058c
child 549 00a9ce3dc082
--- a/app/soc/models/linkable.py	Fri Nov 21 08:38:53 2008 +0000
+++ b/app/soc/models/linkable.py	Fri Nov 21 08:41:23 2008 +0000
@@ -44,6 +44,27 @@
 LINK_ID_PATTERN = r'^%s$' % LINK_ID_PATTERN_CORE
 LINK_ID_REGEX = re.compile(LINK_ID_PATTERN)
 
+# scope path is multiple link_id chunks,
+# each separated by a trailing /
+# (at least 1)
+SCOPE_PATH_ARG_PATTERN = (r'(?P<scope_path>%(link_id)s'
+                             '(?:/%(link_id)s)*)' % {
+                               'link_id': LINK_ID_PATTERN_CORE})
+SCOPE_PATH_PATTERN = r'^%s$' % SCOPE_PATH_ARG_PATTERN
+SCOPE_PATH_REGEX = re.compile(SCOPE_PATH_PATTERN)
+
+# path is multiple link_id chunks,
+#   each separated by a trailing /
+#     (at least 1)
+# followed by a single link_id with no trailing /
+PATH_LINK_ID_ARGS_PATTERN = (
+    r'%(scope_path)s/'
+     '(?P<link_id>%(link_id)s)' % {
+       'scope_path' : SCOPE_PATH_ARG_PATTERN,
+       'link_id': LINK_ID_PATTERN_CORE})
+PATH_LINK_ID_PATTERN = r'^%s$' % PATH_LINK_ID_ARGS_PATTERN
+PATH_LINK_ID_REGEX = re.compile(PATH_LINK_ID_PATTERN)
+
 
 class Linkable(polymodel.PolyModel):
   """A base class for Model classes that are "linkable".