app/soc/views/helper/forms.py
changeset 612 3cca81b1e5a1
parent 472 519c298a4f87
child 639 1f92bd41b914
--- a/app/soc/views/helper/forms.py	Sat Nov 29 18:30:58 2008 +0000
+++ b/app/soc/views/helper/forms.py	Sat Nov 29 19:00:03 2008 +0000
@@ -312,3 +312,28 @@
   field_name = field_name_fmt % {'arg_name': arg_name}
   return SelectQueryArgForm(request.path, arg_name, choices, field_name,
                             initial={field_name: initial_value})
+
+
+def collectCleanedFields(form):
+  """Collects all cleaned fields and returns them with the key_name.
+
+  Args:
+    form: The form from which the cleaned fields should be collected
+
+  Returns: All the fields that are in the form's cleaned_data
+  property are returned. If there is a key_name field, it is not
+  included in the returend fields, instead, it is returned as the
+  first element in the returned tuple. If no key_name field is
+  present, None is returned as first value instead.
+  """
+
+  fields = {}
+
+  key_name = None
+  if 'key_name' in form.cleaned_data:
+    key_name = form.cleaned_data.pop('key_name')
+
+  for field, value in form.cleaned_data.iteritems():
+    fields[field] = value
+
+  return key_name, fields