X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fquery_editor%2F__init__.py;h=2d73053ab9ac0d68c6434e96c8deb0ab7034c6db;hb=d384e4b10bf9ba67f610bef72cf0e5b2dd747baf;hp=f5a334e083ad9176783bc310ba70e58a9d12fffe;hpb=d4e1a95cb427ce0960874b040532edbf0ee6b629;p=unfold.git diff --git a/plugins/query_editor/__init__.py b/plugins/query_editor/__init__.py index f5a334e0..2d73053a 100644 --- a/plugins/query_editor/__init__.py +++ b/plugins/query_editor/__init__.py @@ -2,7 +2,15 @@ from unfold.plugin import Plugin from django.template.loader import render_to_string +# XXX We need naming helpers in the python Plugin class also, used in template + class QueryEditor(Plugin): + def __init__ (self, query, query_all = None, **settings): + Plugin.__init__ (self, **settings) + self.query=query + self.query_uuid = query.query_uuid + self.query_all = query_all + self.query_all_uuid = query_all.query_uuid if query_all else None def template_file(self): return "query_editor.html" @@ -10,31 +18,27 @@ class QueryEditor(Plugin): def requirements (self): reqs = { 'js_files' : [ + # XXX datatables 'js/query_editor.js', ] , 'css_files': [ 'css/query_editor.css', - 'css/demo_page.css', - 'css/demo_table.css', + 'css/jquery-ui.css', ] } return reqs - def json_settings_list (self): - return ['plugin_uuid', 'domid', 'query_uuid'] - def export_json_settings (self): return True def template_env(self, request): fields = [] + #hidden_columns = self.hidden_columns metadata = self.page.get_metadata() md_fields = metadata.details_by_object('resource') - print "METADATA FIELDS", md_fields # XXX use django templating system here for md_field in md_fields['column']: - if md_field['type'] == 'string': if 'allowed_values' in md_field: allowed_values = md_field['allowed_values'].split(',') @@ -44,18 +48,32 @@ class QueryEditor(Plugin): v_desc = v.split('-') options.append(v_desc[0]) - env = {'options': options} + env = { + 'domid': self.domid, + 'options': options + } filter_input = render_to_string('filter_input_string_values.html', env) else: - env = {'filter_id': "%s-filter-%s" % (self.domid, md_field['name'])} + env = { + 'domid': self.domid, + 'field': md_field['name'] + } filter_input = render_to_string('filter_input_string.html', env) elif md_field['type'] == 'int': allowed_values = md_field.get('allowed_values', '0,0').split(',') - env = {'min': allowed_values[0], 'max': allowed_values[1]} + env = { + 'domid': self.domid, + 'field': md_field['name'], + 'min' : allowed_values[0], + 'max' : allowed_values[1] + } filter_input = render_to_string('filter_input_integer.html', env) else: - env = {'filter_id': "%s-filter-%s" % (self.domid, md_field['name'])} + env = { + 'domid': self.domid, + 'field': md_field['name'] + } filter_input = render_to_string('filter_input_others.html', env) fields.append({ @@ -64,5 +82,10 @@ class QueryEditor(Plugin): 'resource_type': 'N/A', 'filter_input': filter_input, 'header': None, + 'checked': md_field['name'] in self.query.get_select() }) + #return { 'fields': fields, 'hidden_columns': hidden_columns } + #return { 'fields': fields , 'query_uuid': self.query_uuid, 'query_all_uuid': self.query_all_uuid } return { 'fields': fields } + + def json_settings_list (self): return ['plugin_uuid', 'domid', 'query_uuid', 'query_all_uuid', ]