X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fform%2F__init__.py;h=d4dce7567ac212fcf0312c533b4871b17c5def9b;hb=a2bdf59bb10ab56ba5b48a98537fbfb51d206dd8;hp=5081501e49bb49c037bbdd88eef2f58f76d7445d;hpb=af7c18aea18be19b7227b25a019af4d257cee7dd;p=myslice.git diff --git a/plugins/form/__init__.py b/plugins/form/__init__.py index 5081501e..d4dce756 100644 --- a/plugins/form/__init__.py +++ b/plugins/form/__init__.py @@ -9,30 +9,44 @@ class CreateForm (Plugin): assert 'page' in settings, "You should specify page" assert 'object' in settings, "You should specify object" - # Retrieve object fields from metadata - metadata = settings['page'].get_metadata() - md_o = metadata.details_by_object(settings['object']) - self.columns = md_o['column'] + if 'object' in settings: + self.object = settings['object'] + + if 'fields' in settings: + self.fields = [] + for field in settings['fields']: + c = { + 'name' : field.get('name', ''), + 'field' : field.get('field', ''), + 'type' : field.get('type', 'input'), + 'description' : field.get('description', ''), + 'validate_rx' : field.get('validate_rx', ''), + 'validate_err' : field.get('validate_err', ''), + 'old_value' : 'POST', + } + 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): - return { 'js_files' : ['js/form.js', 'js/jquery.validate.js', ], + # Some should be included by default by manifold + return { 'js_files' : ['js/manifold.js', 'js/spin-presets.js', 'js/spin.min.js', 'js/jquery.spin.js', + 'js/form.js', 'js/jquery.validate.js', ], 'css_files' : ['css/form.css'] } + def export_json_settings(self): + # We need initialization, even though we are not associated with a query + return True 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'] - - 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 "alert('validation'); return true;" + def json_settings_list (self): return ['plugin_uuid', 'object', 'fields']