app/soc/models/linkable.py
changeset 533 ba3309b2fd30
parent 524 774b379e058c
child 549 00a9ce3dc082
equal deleted inserted replaced
532:3a50bdfb75a9 533:ba3309b2fd30
    41 #
    41 #
    42 LINK_ID_PATTERN_CORE = r'[0-9a-z](?:[0-9a-z]|_[0-9a-z])*'
    42 LINK_ID_PATTERN_CORE = r'[0-9a-z](?:[0-9a-z]|_[0-9a-z])*'
    43 LINK_ID_ARG_PATTERN = r'(?P<link_id>%s)' % LINK_ID_PATTERN_CORE
    43 LINK_ID_ARG_PATTERN = r'(?P<link_id>%s)' % LINK_ID_PATTERN_CORE
    44 LINK_ID_PATTERN = r'^%s$' % LINK_ID_PATTERN_CORE
    44 LINK_ID_PATTERN = r'^%s$' % LINK_ID_PATTERN_CORE
    45 LINK_ID_REGEX = re.compile(LINK_ID_PATTERN)
    45 LINK_ID_REGEX = re.compile(LINK_ID_PATTERN)
       
    46 
       
    47 # scope path is multiple link_id chunks,
       
    48 # each separated by a trailing /
       
    49 # (at least 1)
       
    50 SCOPE_PATH_ARG_PATTERN = (r'(?P<scope_path>%(link_id)s'
       
    51                              '(?:/%(link_id)s)*)' % {
       
    52                                'link_id': LINK_ID_PATTERN_CORE})
       
    53 SCOPE_PATH_PATTERN = r'^%s$' % SCOPE_PATH_ARG_PATTERN
       
    54 SCOPE_PATH_REGEX = re.compile(SCOPE_PATH_PATTERN)
       
    55 
       
    56 # path is multiple link_id chunks,
       
    57 #   each separated by a trailing /
       
    58 #     (at least 1)
       
    59 # followed by a single link_id with no trailing /
       
    60 PATH_LINK_ID_ARGS_PATTERN = (
       
    61     r'%(scope_path)s/'
       
    62      '(?P<link_id>%(link_id)s)' % {
       
    63        'scope_path' : SCOPE_PATH_ARG_PATTERN,
       
    64        'link_id': LINK_ID_PATTERN_CORE})
       
    65 PATH_LINK_ID_PATTERN = r'^%s$' % PATH_LINK_ID_ARGS_PATTERN
       
    66 PATH_LINK_ID_REGEX = re.compile(PATH_LINK_ID_PATTERN)
    46 
    67 
    47 
    68 
    48 class Linkable(polymodel.PolyModel):
    69 class Linkable(polymodel.PolyModel):
    49   """A base class for Model classes that are "linkable".
    70   """A base class for Model classes that are "linkable".
    50   
    71