app/soc/views/models/base.py
changeset 502 e1e24c0a4e82
parent 500 44ea4620c5c0
child 507 3603fdafabf7
--- a/app/soc/views/models/base.py	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/views/models/base.py	Mon Nov 17 22:21:02 2008 +0000
@@ -54,7 +54,7 @@
   DEF_SUBMIT_MSG_PROFILE_SAVED = 0
 
   DEF_CREATE_NEW_ENTITY_MSG = ugettext_lazy(
-      ' You can create a new %(entity_type_lower)s by visiting'
+      ' You can create a new %(entity_type)s by visiting'
       ' <a href="%(create)s">Create '
       'a New %(entity_type)s</a> page.')
 
@@ -69,6 +69,7 @@
         name: the name of the entity (names should have sentence-style caps) 
         name_short: the short form name of the name ('org' vs 'organization')
         name_plural: the plural form of the name
+        url_name: the name of the entity used in urls
         edit_form: the class of the Django form to be used when editing
         create_form: the class of the Django form to be used when creating
         edit_template: the Django template to be used for editing
@@ -87,9 +88,9 @@
     new_rights['any_access'] = [access.checkIsUser]
 
     new_params = {}
-    new_params['create_redirect'] = '/%s' % params['name_short'].lower()
-    new_params['missing_redirect'] = '/%s/create' % params['name_short'].lower()
-
+    new_params['create_redirect'] = '/%s' % params['url_name']
+    new_params['missing_redirect'] = '/%s/create' % params['url_name']
+    
     new_params['sidebar'] = None
     new_params['sidebar_defaults'] = [
      ('/%s/create', 'New %(name)s'),
@@ -101,21 +102,21 @@
 
     new_params['django_patterns'] = None
     new_params['django_patterns_defaults'] = [
-        (r'^%(name_lower)s/show/%(key_fields)s$', 
+        (r'^%(url_name)s/show/%(key_fields)s$', 
             'soc.views.models.%s.public', 'Show %(name)s'),
-        (r'^%(name_lower)s/create$',
+        (r'^%(url_name)s/create$',
             'soc.views.models.%s.create', 'Create %(name)s'),
-        (r'^%(name_lower)s/create/%(key_fields)s$',
+        (r'^%(url_name)s/create/%(key_fields)s$',
             'soc.views.models.%s.create', 'Create %(name)s'),
-        (r'^%(name_lower)s/delete/%(key_fields)s$',
+        (r'^%(url_name)s/delete/%(key_fields)s$',
             'soc.views.models.%s.delete', 'Delete %(name)s'),
-        (r'^%(name_lower)s/edit/%(key_fields)s$',
+        (r'^%(url_name)s/edit/%(key_fields)s$',
             'soc.views.models.%s.edit', 'Edit %(name)s'),
-        (r'^%(name_lower)s/list$',
+        (r'^%(url_name)s/list$',
             'soc.views.models.%s.list', 'List %(name_plural)s'),
         ]
 
-    new_params['list_redirect_action'] = params['name_short'] + '/edit'
+    new_params['list_redirect_action'] = '/' + params['url_name'] + '/edit'
 
     self._rights = dicts.merge(rights, new_rights)
     self._params = dicts.merge(params, new_params)
@@ -463,6 +464,7 @@
     context['entity_type'] = params['name']
     context['entity_type_plural'] = params['name_plural']
     context['entity_type_short'] = params['name_short']
+    context['entity_type_url'] = params['url_name']
 
     template = params['edit_template']
 
@@ -541,7 +543,7 @@
     result = []
 
     for url, title in defaults:
-      url = url % params['name_short'].lower()
+      url = url % params['url_name'].lower()
 
       title = title % {
           'name': params['name'],
@@ -595,18 +597,18 @@
     patterns = []
 
     for url, module, name in default_patterns:
-      name_short_lower = params['name_short'].lower()
-      name_plural_lower = params['name_plural'].lower() 
+      name_short = params['name_short']
+      name_plural = params['name_plural']
 
       name = name % {
-          'name': name_short_lower, 
-          'name_plural': name_plural_lower,
+          'name': name_short, 
+          'name_plural': name_plural,
           }
 
-      module = module % name_short_lower
+      module = module % params['module_name']
 
       url = url % {
-          'name_lower': name_short_lower,
+          'url_name': params['url_name'],
           'lnp': path_link_name.LINKNAME_ARG_PATTERN,
           'ulnp': path_link_name.LINKNAME_PATTERN_CORE,
           'key_fields': key_fields_pattern,