1 from unfold.plugin import Plugin
3 from django.template.loader import render_to_string
5 class QueryEditor(Plugin):
7 def template_file(self):
8 return "query_editor.html"
10 def requirements (self):
16 'css/query_editor.css',
23 def json_settings_list (self):
24 return ['plugin_uuid', 'domid', 'query_uuid']
26 def export_json_settings (self):
29 def template_env(self, request):
31 metadata = self.page.get_metadata()
32 md_fields = metadata.details_by_object('resource')
33 print "METADATA FIELDS", md_fields
35 # XXX use django templating system here
36 for md_field in md_fields['column']:
38 if md_field['type'] == 'string':
39 if 'allowed_values' in md_field:
40 allowed_values = md_field['allowed_values'].split(',')
43 for v in allowed_values:
45 options.append(v_desc[0])
47 env = {'options': options}
48 filter_input = render_to_string('filter_input_string_values.html', env)
50 env = {'filter_id': "%s-filter-%s" % (self.domid, md_field['name'])}
51 filter_input = render_to_string('filter_input_string.html', env)
53 elif md_field['type'] == 'int':
54 allowed_values = md_field.get('allowed_values', '0,0').split(',')
55 env = {'min': allowed_values[0], 'max': allowed_values[1]}
56 filter_input = render_to_string('filter_input_integer.html', env)
58 env = {'filter_id': "%s-filter-%s" % (self.domid, md_field['name'])}
59 filter_input = render_to_string('filter_input_others.html', env)
62 'name': md_field['name'],
63 'type': md_field['type'],
64 'resource_type': 'N/A',
65 'filter_input': filter_input,
68 return { 'fields': fields }