1 from unfold.composite import Composite
2 from unfold.plugin import Plugin
4 class CreateForm (Plugin):
6 def __init__ (self, **settings):
7 Plugin.__init__(self, **settings)
8 assert 'page' in settings, "You should specify page"
9 assert 'object' in settings, "You should specify object"
11 if 'object' in settings:
12 self.object = settings['object']
14 if 'fields' in settings:
16 for field in settings['fields']:
18 'name' : field.get('name', ''),
19 'field' : field.get('field', ''),
20 'type' : field.get('type', 'input'),
21 'description' : field.get('description', ''),
22 'validate_rx' : field.get('validate_rx', ''),
23 'validate_err' : field.get('validate_err', ''),
28 # Attempt to retrieve object fields from metadata
29 metadata = settings['page'].get_metadata()
30 md_o = metadata.details_by_object(settings['object'])
31 self.fields = md_o['column']
33 def requirements (self):
34 # Some should be included by default by manifold
35 return { 'js_files' : ['js/manifold.js', 'js/spin-presets.js', 'js/spin.min.js', 'js/jquery.spin.js',
36 'js/form.js', 'js/jquery.validate.js', ],
37 'css_files' : ['css/form.css']
39 def export_json_settings(self):
40 # We need initialization, even though we are not associated with a query
43 def template_env (self, request):
45 env.update(self.__dict__)
48 def template_file (self):
51 def json_settings_list (self): return ['plugin_uuid', 'object', 'fields']