app/soc/views/models/base.py
changeset 410 2af7f84f4fc7
parent 409 9d24850db88f
child 418 e035f31d131e
--- a/app/soc/views/models/base.py	Thu Oct 23 05:21:26 2008 +0000
+++ b/app/soc/views/models/base.py	Thu Oct 23 05:21:41 2008 +0000
@@ -133,7 +133,11 @@
     """
 
     # Create page is an edit page with no key fields
-    kwargs = self._logic.getEmptyKeyFields()
+    kwargs = {}
+    fields = self._logic.getKeyFieldNames()
+    for field in fields:
+      kwargs[field] = None
+
     return self.edit(request, page=page, **kwargs)
 
   def edit(self, request, page=None, **kwargs):
@@ -187,14 +191,16 @@
 
     self._editPost(request, entity, fields)
 
-    keys = self._logic.extractKeyFields(fields)
-    entity = self._logic.updateOrCreateFromFields(fields, **keys)
+    keys = self._logic.getKeyFieldNames()
+    values = self._logic.getKeyValuesFromFields(fields)
+    kwargs = dicts.zip(keys, values)
+    entity = self._logic.updateOrCreateFromFields(fields, **kwargs)
 
     if not entity:
       return http.HttpResponseRedirect('/')
 
     params = self._params['edit_params']
-    suffix = self._logic.constructKeyNameSuffix(entity)
+    suffix = self._logic.getKeySuffix(entity)
 
     # redirect to (possibly new) location of the entity
     # (causes 'Profile saved' message to be displayed)
@@ -206,7 +212,7 @@
     """Same as edit, but on GET
     """
 
-    suffix = self._logic.constructKeyNameSuffix(entity)
+    suffix = self._logic.getKeySuffix(entity)
 
     # Remove the params from the request, this is relevant only if
     # someone bookmarked a POST page.
@@ -353,7 +359,7 @@
       form: the form that will be used
     """
 
-    suffix = self._logic.constructKeyNameSuffix(entity)
+    suffix = self._logic.getKeySuffix(entity)
 
     context['form'] = form
     context['entity'] = entity