app/soc/views/helper/templatetags/forms_helpers.py
changeset 1371 2d97dbbb4d99
parent 1360 f62c462037b6
child 1531 db5d40d9dc43
--- a/app/soc/views/helper/templatetags/forms_helpers.py	Tue Feb 17 14:25:40 2009 +0000
+++ b/app/soc/views/helper/templatetags/forms_helpers.py	Tue Feb 17 16:36:49 2009 +0000
@@ -24,6 +24,9 @@
   ]
 
 
+import operator
+import re
+
 from google.appengine.ext import db
 
 from django import template
@@ -31,6 +34,7 @@
 from django.utils.encoding import force_unicode
 from django.utils.html import escape
 
+from soc.logic import dicts
 from soc.views.helper import widgets
 
 
@@ -174,8 +178,8 @@
     # If the field is hidden we display it elsewhere
     if not bf.is_hidden:
       example_text = ''
-      group = 'main'
-      
+      group = '0. '
+
       if hasattr(field, 'group'):
         group = field.group
 
@@ -198,10 +202,14 @@
         item = (name, force_unicode(e))
         hidden_fields_errors.append(item)
 
+  grouped = dicts.groupby(fields, 'group')
+  rexp = re.compile(r"\d+. ")
+  fields = [(rexp.sub('',key), grouped[key]) for key in sorted(grouped)]
+
   context.update({
       'top_errors': form.non_field_errors() or '',
       'hidden_field_errors': hidden_fields_errors or '',
-      'fields':  sorted(fields, key=lambda x: x.get('group')) or '',
+      'groups': fields if fields else '',
       'hidden_fields': hidden_fields or '',
       })