X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fform%2F__init__.py;h=ff569d5fdce3ef0a3d543d582f9e29a3d4a678ad;hb=f44c5a4320e96117a4f463114e8adb10372cfb9e;hp=cbbac201b419ef99c802f9785c2b1d73d16cb217;hpb=02b4adc22f4be31f0f846aea95a7e7ac4a806ae8;p=unfold.git diff --git a/plugins/form/__init__.py b/plugins/form/__init__.py index cbbac201..ff569d5f 100644 --- a/plugins/form/__init__.py +++ b/plugins/form/__init__.py @@ -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']