updated portal
[unfold.git] / plugins / form / __init__.py
index cbbac20..ff569d5 100644 (file)
@@ -7,16 +7,13 @@ class CreateForm (Plugin):
         Plugin.__init__(self, **settings)
         print "SETTINGS", settings
         assert 'page'   in settings, "You should specify page"
-        assert 'object' in settings or 'fields' in settings, "You should specify object or field list"
+        assert 'object' in settings, "You should specify object"
 
         if 'object' in settings:
-            # Retrieve object fields from metadata
-            metadata = settings['page'].get_metadata()
-            md_o = metadata.details_by_object(settings['object'])
-            self.columns = md_o['column']
+            self.object = settings['object']
 
-        elif 'fields' in settings:
-            self.columns = []
+        if 'fields' in settings:
+            self.fields = []
             for field in settings['fields']:
                 c = {
                     'name'          : field.get('name', ''),
@@ -27,7 +24,12 @@ class CreateForm (Plugin):
                     'validate_err'  : field.get('validate_err', ''),
                     'old_value'     : 'POST',
                 }
-                self.columns.append(c)
+                self.fields.append(c)
+        else:
+            # Attempt to retrieve object fields from metadata
+            metadata = settings['page'].get_metadata()
+            md_o = metadata.details_by_object(settings['object'])
+            self.fields = md_o['column']
     
     def requirements (self):
         # Some should be included by default by manifold
@@ -42,32 +44,9 @@ class CreateForm (Plugin):
     def template_env (self, request):
         env={}
         env.update(self.__dict__)
-        #env['columns']=self.columns
         return env
 
     def template_file (self):
         return "form.html"
 
-    def json_settings_list (self): return ['plugin_uuid', 'columns']
-
-    def get_validation_js(self):
-        # XXX We need to avoid sending the same query twice !"
-        # somehow store something into the dom, to perform an update afterwards
-        # XXX This should be moved to a template
-        # XXX We also need some storage into the wizard to be displayed later
-        return """
-            // Useless since this is now a parameter
-            //frm = document.forms['form_%(domid)s'];
-
-            // Loop on the fields and test regexp if present
-            err = false;
-            $.each(options.columns, function(column) {
-                if (!frm.elements[column['field']].match(column['validate_rx'])) {
-                    $('err_%(domid)s_' + column['field']).html(column['validation_err']);
-                    err = true;
-                }
-            });
-            if (!err) {
-                // Issue json query
-            }
-        """ % self.__dict__
+    def json_settings_list (self): return ['plugin_uuid', 'object', 'fields']