diff -r 3a50bdfb75a9 -r ba3309b2fd30 app/soc/models/linkable.py --- 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%(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)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".