merge stable
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Thu, 19 Nov 2009 12:58:57 +0100
branchstable
changeset 3878 3af225f0faa0
parent 3874 7d0d4a6be046 (diff)
parent 3876 1169d3154be6 (current diff)
child 3879 7bb87da97026
child 3881 a192bc3c13b7
merge
--- a/server/migractions.py	Wed Nov 18 09:16:38 2009 +0100
+++ b/server/migractions.py	Thu Nov 19 12:58:57 2009 +0100
@@ -104,9 +104,14 @@
             if migrscript.endswith('.sql'):
                 if self.execscript_confirm(migrscript):
                     sqlexec(open(migrscript).read(), self.session.system_sql)
-            else:
+            elif migrscript.endswith('.py'):
                 return super(ServerMigrationHelper, self).cmd_process_script(
                     migrscript, funcname, *args, **kwargs)
+            else:
+                print
+                print ('-> ignoring %s, only .py and .sql scripts are considered' %
+                       migrscript)
+                print
             self.commit()
         except:
             self.rollback()
--- a/web/formfields.py	Wed Nov 18 09:16:38 2009 +0100
+++ b/web/formfields.py	Thu Nov 19 12:58:57 2009 +0100
@@ -81,6 +81,8 @@
        role of the entity in the relation (eg 'subject' or 'object')
     :fieldset:
        optional fieldset to which this field belongs to
+    :order:
+       key used by automatic forms to sort fields
 
     """
     # default widget associated to this class of fields. May be overriden per
@@ -94,7 +96,7 @@
     def __init__(self, name=None, id=None, label=None, help=None,
                  widget=None, required=False, initial=None,
                  choices=None, sort=True, internationalizable=False,
-                 eidparam=False, role='subject', fieldset=None):
+                 eidparam=False, role='subject', fieldset=None, order=None):
         self.name = name
         self.id = id or name
         self.label = label or name
@@ -108,6 +110,7 @@
         self.role = role
         self.fieldset = fieldset
         self.init_widget(widget)
+        self.order = order
         # ordering number for this field instance
         self.creation_rank = Field.__creation_rank
         Field.__creation_rank += 1
@@ -178,12 +181,7 @@
         renderer
         """
         widget = self.get_widget(form)
-        try:
-            return widget.render(form, self, renderer)
-        except TypeError:
-            warn('[3.3] %s: widget.render now take the renderer as third argument, '
-                 'please update implementation' % widget, DeprecationWarning)
-            return widget.render(form, self)
+        return widget.render(form, self, renderer)
 
     def vocabulary(self, form):
         """return vocabulary for this field. This method will be called by
--- a/web/views/autoform.py	Wed Nov 18 09:16:38 2009 +0100
+++ b/web/views/autoform.py	Thu Nov 19 12:58:57 2009 +0100
@@ -180,6 +180,8 @@
                 except form.FieldNotFound:
                     # meta attribute such as <attr>_format
                     continue
+        fnum = len(self.fields)
+        self.fields.sort(key=lambda f: f.order is None and fnum or f.order)
         self.maxrelitems = self.req.property_value('navigation.related-limit')
         self.force_display = bool(self.req.form.get('__force_display'))