app/soc/views/models/base.py
changeset 495 87afae6e4c51
parent 494 5e9c656a1b68
child 497 73666a7cd718
--- a/app/soc/views/models/base.py	Sun Nov 16 23:03:37 2008 +0000
+++ b/app/soc/views/models/base.py	Sun Nov 16 23:04:48 2008 +0000
@@ -105,6 +105,8 @@
             'soc.views.models.%s.public', 'Show %(name)s'),
         (r'^%(name_lower)s/create$',
             'soc.views.models.%s.create', 'Create %(name)s'),
+        (r'^%(name_lower)s/create/%(key_fields)s$',
+            'soc.views.models.%s.create', 'Create %(name)s'),
         (r'^%(name_lower)s/delete/%(key_fields)s$',
             'soc.views.models.%s.delete', 'Delete %(name)s'),
         (r'^%(name_lower)s/edit/%(key_fields)s$',
@@ -113,6 +115,8 @@
             'soc.views.models.%s.list', 'List %(name_plural)s'),
         ]
 
+    new_params['list_redirect_action'] = params['name_short'] + '/edit'
+
     self._rights = dicts.merge(rights, new_rights)
     self._params = dicts.merge(params, new_params)
 
@@ -186,7 +190,7 @@
     if not kwargs:
       return self.edit(request, page_name=page_name, params=params, **empty_kwargs)
     else:
-      return self.edit(request, page_name=page_name, params=params, seed=kwargs)
+      return self.edit(request, page_name=page_name, params=params, seed=kwargs, **empty_kwargs)
 
   def edit(self, request, page_name=None, params=None, seed=None, **kwargs):
     """Displays the edit page for the entity specified by **kwargs
@@ -295,6 +299,7 @@
       self._editGet(request, entity, form)
     else:
       if seed:
+        self._editSeed(request, seed)
         form = params['create_form'](initial=seed)
       else:
         form = params['create_form']()
@@ -336,6 +341,7 @@
 
     context['entity_type'] = params['name']
     context['entity_type_plural'] = params['name_plural']
+    context['redirect_action'] = params['list_redirect_action']
 
     template = params['list_template']