Add new parameters to views: url_name which is name used in urls (instead of using lower entity names) and module_name which is used for constructing django urls. Append changes to all affected files. Fix some title names. Change urls that included underscores like "site_settings" into urls with slash "site/settings". Plus some other minor fixes.
authorPawel Solyga <Pawel.Solyga@gmail.com>
Mon, 17 Nov 2008 22:21:02 +0000
changeset 502 e1e24c0a4e82
parent 501 be89bf307478
child 503 65e4d3ed3fc3
Add new parameters to views: url_name which is name used in urls (instead of using lower entity names) and module_name which is used for constructing django urls. Append changes to all affected files. Fix some title names. Change urls that included underscores like "site_settings" into urls with slash "site/settings". Plus some other minor fixes. Patch by: Pawel Solyga
app/soc/templates/soc/home_settings/error.html
app/soc/templates/soc/home_settings/list/home_row.html
app/soc/templates/soc/home_settings/public.html
app/soc/templates/soc/models/edit.html
app/soc/templates/soc/site_settings/list/site_row.html
app/soc/templates/soc/user/list/user_row.html
app/soc/views/models/base.py
app/soc/views/models/document.py
app/soc/views/models/home_settings.py
app/soc/views/models/host.py
app/soc/views/models/request.py
app/soc/views/models/role.py
app/soc/views/models/site_settings.py
app/soc/views/models/sponsor.py
app/soc/views/models/user.py
--- a/app/soc/templates/soc/home_settings/error.html	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/templates/soc/home_settings/error.html	Mon Nov 17 22:21:02 2008 +0000
@@ -22,5 +22,5 @@
 {% endblock %}
 
 {% block body %}
-This is the default home page, which can be edited via the <a href="/home/create">Home Settings</a>.<br />
+This is the default home page, which can be edited via the <a href="/home/settings/create">Home Settings</a>.<br />
 {% endblock %}
--- a/app/soc/templates/soc/home_settings/list/home_row.html	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/templates/soc/home_settings/list/home_row.html	Mon Nov 17 22:21:02 2008 +0000
@@ -1,9 +1,9 @@
 <tr class="off" onmouseover="this.className='on'" onmouseout="this.className='off'" 
-onclick="document.location.href='/home_settings/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}'" name="name">
+onclick="document.location.href='/home/settings/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}'" name="name">
   <td align="right">
    <div class="title">
     <a class="noul"
-     href="/home_settings/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}">{{ data_element.partial_path}}/{{ data_element.link_name }}</a>
+     href="/home/settings/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}">{{ data_element.partial_path}}/{{ data_element.link_name }}</a>
    </div>
   </td>
   <td><div class="link_name">{{ data_element.home.title }}</div></td>
--- a/app/soc/templates/soc/home_settings/public.html	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/templates/soc/home_settings/public.html	Mon Nov 17 22:21:02 2008 +0000
@@ -18,10 +18,10 @@
 <a href="/document/edit">creating a new Document</a> or
 <a href="/document/list">editing an existing Document</a> and then selecting
 that Document in the
-<a href="/settings/edit">Site Settings</a> interface.
+<a href="/site/settings/edit">Site Settings</a> interface.
 Other elements of this page, such as a feed to be displayed below this
 content, can also be set using the
-<a href="/settings/edit">Site Settings</a> interface.
+<a href="/site/settings/edit">Site Settings</a> interface.
 You need to sign in as site Developer in order to change
-<a href="/settings/edit">Site Settings</a>.
+<a href="/site/settings/edit">Site Settings</a>.
 {% endblock %}
--- a/app/soc/templates/soc/models/edit.html	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/templates/soc/models/edit.html	Mon Nov 17 22:21:02 2008 +0000
@@ -20,7 +20,7 @@
 {{ page_name }}
  {% if entity %}
    <!-- TODO(srabbelier) use a generic entity name as link -->
-   <a href="/{{ entity_type_short|lower }}/show/{{ entity_suffix }}">(Public page)</a>
+   <a href="/{{ entity_type_url|lower }}/show/{{ entity_suffix }}">(Public page)</a>
  {% endif %}
 {% endblock %}
 
@@ -49,7 +49,7 @@
    </td>
    {% if entity %}
    <td>
-    <input type="button" onclick="location.href='/{{ entity_type_short|lower }}/delete/{{ entity_suffix }}'" value="Delete"/>
+    <input type="button" onclick="location.href='/{{ entity_type_url|lower }}/delete/{{ entity_suffix }}'" value="Delete"/>
    </td>
    {% endif %}
    {% endblock %}
--- a/app/soc/templates/soc/site_settings/list/site_row.html	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/templates/soc/site_settings/list/site_row.html	Mon Nov 17 22:21:02 2008 +0000
@@ -1,9 +1,9 @@
 <tr class="off" onmouseover="this.className='on'" onmouseout="this.className='off'" 
-onclick="document.location.href='/site_settings/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}'" name="name">
+onclick="document.location.href='/site/settings/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}'" name="name">
   <td align="right">
    <div class="title">
     <a class="noul"
-     href="/site_settings/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}">{{ data_element.partial_path}}/{{ data_element.link_name }}</a>
+     href="/site/settings/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}">{{ data_element.partial_path}}/{{ data_element.link_name }}</a>
    </div>
   </td>
   <td><div class="link_name">{{ data_element.home.title }}</div></td>
--- a/app/soc/templates/soc/user/list/user_row.html	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/templates/soc/user/list/user_row.html	Mon Nov 17 22:21:02 2008 +0000
@@ -1,7 +1,7 @@
 <tr class="off" onmouseover="this.className='on'" onmouseout="this.className='off'" 
-onclick="document.location.href='/{{redirect_action|lower}}/{{ data_element.link_name }}'" name="name">
+onclick="document.location.href='{{redirect_action|lower}}/{{ data_element.link_name }}'" name="name">
   <td align="right"><div class="account"><a class="noul"
-         href="/{{redirect_action|lower}}/{{ data_element.link_name }}">{{ data_element.account }}</a>
+         href="{{redirect_action|lower}}/{{ data_element.link_name }}">{{ data_element.account }}</a>
      </div>
   </td>
   <td><div class="email">{{ data_element.account.email }}</a></div></td>
--- 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,
--- a/app/soc/views/models/document.py	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/views/models/document.py	Mon Nov 17 22:21:02 2008 +0000
@@ -99,6 +99,8 @@
     params['name'] = "Document"
     params['name_short'] = "Document"
     params['name_plural'] = "Documents"
+    params['url_name'] = "document"
+    params['module_name'] = "document"
 
     params['edit_form'] = EditForm
     params['create_form'] = CreateForm
@@ -115,7 +117,7 @@
       'list_heading': 'soc/document/list/docs_heading.html',
     }
 
-    params['delete_redirect'] = '/document/list'
+    params['delete_redirect'] = '/' + params['url_name'] + '/list'
 
     params['save_message'] = [ugettext_lazy('Profile saved.')]
 
--- a/app/soc/views/models/home_settings.py	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/views/models/home_settings.py	Mon Nov 17 22:21:02 2008 +0000
@@ -51,14 +51,14 @@
     # TODO(tlarsen): partial_path will be a hard-coded read-only
     #   field for some (most?) User Roles
   doc_partial_path = forms.CharField(required=False,
-      label=soc.models.work.Work.partial_path.verbose_name,
+      label=ugettext_lazy('Document partial path'),
       help_text=soc.models.work.Work.partial_path.help_text)
 
   # TODO(tlarsen): actually, using these two text fields to specify
   #   the Document is pretty cheesy; this needs to be some much better
   #   Role-scoped Document selector that we don't have yet
   doc_link_name = forms.CharField(required=False,
-      label=soc.models.work.Work.link_name.verbose_name,
+      label=ugettext_lazy('Document link name'),
       help_text=soc.models.work.Work.link_name.help_text)
 
   def clean_feed_url(self):
@@ -112,8 +112,10 @@
     rights = {}
 
     params['name'] = "Home Settings"
-    params['name_short'] = "home_settings"
+    params['name_short'] = "Home Settings"
     params['name_plural'] = "Home Settings"
+    params['url_name'] = "home/settings"
+    params['module_name'] = "home_settings"
 
     params['edit_form'] = EditForm
     params['create_form'] = CreateForm
@@ -130,7 +132,7 @@
       'list_heading': 'soc/home_settings/list/home_heading.html',
     }
 
-    params['delete_redirect'] = '/home/list'
+    params['delete_redirect'] = '/' + params['url_name'] + '/list'
 
     params['save_message'] = [ugettext_lazy('Profile saved.')]
 
--- a/app/soc/views/models/host.py	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/views/models/host.py	Mon Nov 17 22:21:02 2008 +0000
@@ -97,6 +97,8 @@
     params['name'] = "Host"
     params['name_short'] = "Host"
     params['name_plural'] = "Hosts"
+    params['url_name'] = "host"
+    params['module_name'] = "host"
 
     params['edit_form'] = EditForm
     params['create_form'] = CreateForm
@@ -114,7 +116,7 @@
       'list_heading': 'soc/host/list/host_heading.html',
     }
 
-    params['delete_redirect'] = '/host/list'
+    params['delete_redirect'] = '/' + params['url_name'] + '/list'
     params['invite_redirect'] = '/request/list'
 
     params['save_message'] = [ugettext_lazy('Profile saved.')]
--- a/app/soc/views/models/request.py	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/views/models/request.py	Mon Nov 17 22:21:02 2008 +0000
@@ -105,6 +105,8 @@
     params['name'] = "Request"
     params['name_short'] = "Request"
     params['name_plural'] = "Requests"
+    params['url_name'] = "request"
+    params['module_name'] = "request"
 
     params['edit_form'] = EditForm
     params['create_form'] = CreateForm
@@ -123,8 +125,8 @@
 
     params['sidebar_defaults'] = [('/%s/list', 'List %(plural)s')]
 
-    params['delete_redirect'] = '/request/list'
-    params['create_redirect'] = '/request'
+    params['delete_redirect'] = '/' + params['url_name'] + '/list'
+    params['create_redirect'] = '/'.join(params['url_name'])
 
     params['save_message'] = [ugettext_lazy('Request saved.')]
 
--- a/app/soc/views/models/role.py	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/views/models/role.py	Mon Nov 17 22:21:02 2008 +0000
@@ -91,9 +91,8 @@
     new_params = {}
 
     new_params['list_template'] = 'soc/models/create_invite.html'
-    new_params['list_redirect_action'] = 'request/create/%s/%s' % (
-        self._params['name_short'].lower(),
-        kwargs['link_name'])
+    new_params['list_redirect_action'] = '/request/create/%s/%s' % (
+        self._params['url_name'], kwargs['link_name'])
     new_params['list_redirect_entity'] = self._params['name']
     new_params['name'] = self._params['name']
     new_params['name_short'] = self._params['name_short']
@@ -189,7 +188,7 @@
     params = {}
     default_patterns = self._params['django_patterns_defaults']
     default_patterns += [
-        (r'^%(name_lower)s/invite/%(lnp)s$',
+        (r'^%(url_name)s/invite/%(lnp)s$',
             'soc.views.models.%s.invite', 'Invite %(name)s')]
 
     params['django_patterns_defaults'] = default_patterns
--- a/app/soc/views/models/site_settings.py	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/views/models/site_settings.py	Mon Nov 17 22:21:02 2008 +0000
@@ -82,9 +82,14 @@
     params = {}
     rights = {}
 
+    # add ugettext_lazy ?
     params['name'] = "Site Settings"
-    params['name_short'] = "site_settings"
+    params['name_short'] = "Site Settings"
     params['name_plural'] = "Site Settings"
+    # lower name and replace " " with "/"
+    # for module name lower name and replace " " with "_"
+    params['url_name'] = "site/settings"
+    params['module_name'] = "site_settings"
 
     params['edit_form'] = EditForm
     params['create_form'] = CreateForm
@@ -96,9 +101,9 @@
       'list_heading': 'soc/site_settings/list/site_heading.html',
     }
 
-    params['delete_redirect'] = '/site/list'
+    params['delete_redirect'] = '/' + params['url_name'] + '/list'
 
-    params['sidebar_additional'] = [('/site_settings/edit','Edit Main Site Settings')]
+    params['sidebar_additional'] = [ ( '/' + params['url_name'] + '/edit', 'Edit Main Site Settings')]
 
     params = dicts.merge(original_params, params)
     rights = dicts.merge(original_rights, rights)
@@ -143,7 +148,7 @@
 
     patterns = super(View, self).getDjangoURLPatterns()
     patterns += [(r'^$','soc.views.models.site_settings.main_public')]
-    patterns += [(r'^site_settings/edit$', 'soc.views.models.site_settings.main_edit')]
+    patterns += [(r'^' + self._params['url_name'] + '/edit$', 'soc.views.models.site_settings.main_edit')]
     return patterns
 
 view = View()
--- a/app/soc/views/models/sponsor.py	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/views/models/sponsor.py	Mon Nov 17 22:21:02 2008 +0000
@@ -99,11 +99,16 @@
     params['name'] = "Sponsor"
     params['name_short'] = "Sponsor"
     params['name_plural'] = "Sponsors"
+    # TODO(pawel.solyga): create url_name and module_name automatically 
+    # from name. Make that work for all other Views too. Hopefully 
+    # solution that will be implemented in base View.
+    params['url_name'] = "sponsor"
+    params['module_name'] = "sponsor"
        
     params['edit_form'] = EditForm
     params['create_form'] = CreateForm
 
-    # TODO(tlarsen) Add support for Django style template lookup
+    # TODO(tlarsen): Add support for Django style template lookup
     params['edit_template'] = 'soc/sponsor/edit.html'
     params['public_template'] = 'soc/group/public.html'
     params['list_template'] = 'soc/models/list.html'
@@ -115,7 +120,7 @@
       'list_heading': 'soc/group/list/group_heading.html',
     }
     
-    params['delete_redirect'] = '/sponsor/list'
+    params['delete_redirect'] = '/' + params['url_name'] + '/list'
     
     params['save_message'] = [ugettext_lazy('Profile saved.')]
     
--- a/app/soc/views/models/user.py	Mon Nov 17 22:12:34 2008 +0000
+++ b/app/soc/views/models/user.py	Mon Nov 17 22:21:02 2008 +0000
@@ -127,6 +127,8 @@
     params['name'] = "User"
     params['name_short'] = "User"
     params['name_plural'] = "Users"
+    params['url_name'] = "user"
+    params['module_name'] = "user"
 
     params['edit_form'] = EditForm
     params['create_form'] = CreateForm
@@ -143,7 +145,7 @@
       'list_heading': 'soc/user/list/user_heading.html',
     }
 
-    params['delete_redirect'] = '/user/list'
+    params['delete_redirect'] = '/' + params['url_name'] + '/list'
 
     params['save_message'] = [ugettext_lazy('Profile saved.')]
 
@@ -199,8 +201,8 @@
     params = {}
     params['name'] = "User (self)"
     params['sidebar'] = [
-        ('/user/edit', 'Profile'),
-        ('/roles/list', 'Roles'),
+        ('/' + self._params['url_name'] + '/edit', 'Profile'),
+        ('/' + self._params['url_name'] + '/roles', 'Roles'),
         ]
     return self.getSidebarLinks(params)
 
@@ -209,7 +211,7 @@
     """
 
     patterns = super(View, self).getDjangoURLPatterns()
-    patterns += [(r'^user/edit$','soc.views.user.profile.create')]
+    patterns += [(r'^' + self._params['url_name'] + '/edit$','soc.views.user.profile.create')]
     return patterns