# HG changeset patch # User Sverre Rabbelier # Date 1228573466 0 # Node ID 7f047b2a2d3a53e79c44657a768e49324d71c733 # Parent 77a286ff6667f07e7fedd5ab6aea9c11852543eb Added a new create regexp in urls for just scope_path Now that scope_path is properly defined we can add a url matching just the scope path. This allows some other custom create regexps to be removed/rewritten. Note: It needs to be -after- the full key_name regexp, since for arbitrarily nested scopes it would always match as just scope_path, even if there are other fields needed after the scope. Patch by: Sverre Rabbelier diff -r 77a286ff6667 -r 7f047b2a2d3a app/soc/views/helper/params.py --- a/app/soc/views/helper/params.py Sat Dec 06 14:23:53 2008 +0000 +++ b/app/soc/views/helper/params.py Sat Dec 06 14:24:26 2008 +0000 @@ -101,6 +101,7 @@ new_params['key_fields_prefix'] = [] new_params['link_id_arg_pattern'] = linkable.LINK_ID_ARG_PATTERN new_params['link_id_pattern_core'] = linkable.LINK_ID_PATTERN_CORE + new_params['scope_path_pattern'] = getScopePattern(params) new_params['django_patterns'] = None new_params['extra_django_patterns'] = [] @@ -111,6 +112,8 @@ 'soc.views.models.%(module_name)s.create', 'Create %(name_short)s'), (r'^%(url_name)s/create/%(key_fields)s$', 'soc.views.models.%(module_name)s.create', 'Create %(name_short)s'), + (r'^%(url_name)s/create/%(scope)s$', + 'soc.views.models.%(module_name)s.create', 'Create %(name_short)s'), (r'^%(url_name)s/delete/%(key_fields)s$', 'soc.views.models.%(module_name)s.delete', 'Delete %(name_short)s'), (r'^%(url_name)s/edit/%(key_fields)s$', @@ -246,7 +249,7 @@ for name in names: if name == 'scope_path': - pattern = getScopePattern(params) + pattern = params['scope_path_pattern'] else: pattern = r'(?P<%s>%s)' % (name, linkable.LINK_ID_PATTERN_CORE) patterns.append(pattern) diff -r 77a286ff6667 -r 7f047b2a2d3a app/soc/views/models/program.py --- a/app/soc/views/models/program.py Sat Dec 06 14:23:53 2008 +0000 +++ b/app/soc/views/models/program.py Sat Dec 06 14:24:26 2008 +0000 @@ -69,10 +69,6 @@ 'clean_link_id': cleaning.clean_link_id, } - new_params['extra_django_patterns'] = [ - (r'^%(url_name)s/create/(?P%(ulnp)s)$', - 'soc.views.models.%(module_name)s.create', 'Create %(name_short)s')] - new_params['scope_redirect'] = redirects.getCreateRedirect params = dicts.merge(params, new_params) diff -r 77a286ff6667 -r 7f047b2a2d3a app/soc/views/sitemap/sitemap.py --- a/app/soc/views/sitemap/sitemap.py Sat Dec 06 14:23:53 2008 +0000 +++ b/app/soc/views/sitemap/sitemap.py Sat Dec 06 14:24:26 2008 +0000 @@ -60,7 +60,6 @@ # Construct defaults manualy default_patterns = params['django_patterns_defaults'] default_patterns += params['extra_django_patterns'] - key_fields_pattern = params['key_fields_pattern'] patterns = [] @@ -72,7 +71,8 @@ 'url_name': params['url_name'], 'lnp': params['link_id_arg_pattern'], 'ulnp': params['link_id_pattern_core'], - 'key_fields': key_fields_pattern, + 'key_fields': params['key_fields_pattern'], + 'scope': params['scope_path_pattern'], } kwargs = {'page_name': name}