translate most modules to using print() as imported from __future__
[myslice.git] / plugins / form / __init__.py
1 from unfold.composite import Composite
2 from unfold.plugin    import Plugin
3
4 class CreateForm (Plugin):
5
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"
10
11         if 'object' in settings:
12             self.object = settings['object']
13
14         if 'fields' in settings:
15             self.fields = []
16             for field in settings['fields']:
17                 c = {
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', ''),
24                     'old_value'     : 'POST',
25                 }
26                 self.fields.append(c)
27         else:
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']
32     
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'] 
38                  }
39     def export_json_settings(self):
40         # We need initialization, even though we are not associated with a query
41         return True
42
43     def template_env (self, request):
44         env={}
45         env.update(self.__dict__)
46         return env
47
48     def template_file (self):
49         return "form.html"
50
51     def json_settings_list (self): return ['plugin_uuid', 'object', 'fields']