X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fquery_editor%2F__init__.py;h=2d73053ab9ac0d68c6434e96c8deb0ab7034c6db;hb=f0f76a08ca9dc5d208e1521a73ba1ba60a3c0065;hp=e46a03349c5d01174a6cdc4597f46791c8ff52c9;hpb=69651f9a5760ec0995dbe592cd5c01e174408808;p=unfold.git diff --git a/plugins/query_editor/__init__.py b/plugins/query_editor/__init__.py index e46a0334..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,30 +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') # 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(',') @@ -43,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({ @@ -65,4 +84,8 @@ class QueryEditor(Plugin): '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', ]