--- 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".