app/soc/views/models/base.py
changeset 663 c2dcae606699
parent 662 0e89b027b140
child 668 77f9a6ea6e67
--- a/app/soc/views/models/base.py	Wed Dec 03 23:49:10 2008 +0000
+++ b/app/soc/views/models/base.py	Thu Dec 04 10:09:38 2008 +0000
@@ -55,6 +55,9 @@
       ' <a href="%(create)s">Create '
       'a New %(entity_type)s</a> page.')
 
+  DEF_CREATE_INSTRUCTION_MSG_FMT = ugettext_lazy(
+      'Please select a %s for the new %s.')
+
   def __init__(self, params=None):
     """
 
@@ -137,7 +140,15 @@
       kwargs: not used for create()
     """
 
-    params = dicts.merge(params, self._params)
+    new_params = dicts.merge(params, self._params)
+
+    if ('scope_view' in new_params) and ('scope_path' not in kwargs):
+      view = new_params['scope_view'].view
+      redirect = new_params['scope_redirect']
+      return self.select(request, view, redirect,
+                         params=params, page_name=page_name, **kwargs)
+
+    params = new_params
 
     # Create page is an edit page with no key fields
     empty_kwargs = {}
@@ -479,6 +490,8 @@
     params = dicts.merge(params, view.getParams())
     params = dicts.merge(params, self._params)
     params['list_action'] = (redirect, self._params)
+    params['list_description'] = self.DEF_CREATE_INSTRUCTION_MSG_FMT % (
+        params['name'], self._params['name'])
 
     content = helper.lists.getListContent(request, params)
     contents = [content]