from unfold.plugin import Plugin
+from myslice.settings import logger
+
class QueryTable (Plugin):
"""A plugin for displaying a query as a list
as we use 'aoColumnDefs' instead.
"""
- MAP = {
- 'facility_name' : 'Facility',
- 'testbed_name' : 'Testbed',
- 'hostname' : 'Resource name',
- 'type' : 'Type',
- }
def __init__ (self, query=None, query_all=None,
checkboxes=False, columns=None,
_columns = columns
_hidden_columns = []
elif self.query:
- _columns = [field for field in self.query.fields if not field == 'urn']
+ logger.debug("self.query.fields = {}".format(self.query_all.fields))
+ # Columns displayed by default
+ if self.default_fields is not None:
+ _columns = [field for field in self.default_fields if not field == 'urn']
+ else:
+ _columns = [field for field in self.query.fields if not field == 'urn']
if query_all:
# We need a list because sets are not JSON-serializable
- _hidden_columns = list(self.query_all.fields - self.query.fields)
+ if self.default_fields is not None:
+ logger.debug(self.query_all.fields)
+ _hidden_columns = list(self.query_all.fields - set(self.default_fields))
+ else:
+ _hidden_columns = list(self.query_all.fields - self.query.fields)
_hidden_columns.append('urn')
else:
_hidden_columns = []
_columns = []
_hidden_columns = []
- print "_columns=", _columns
- self.columns = { self.MAP.get(c, c) : c for c in _columns }
- self.hidden_columns = { self.MAP.get(c, c) : c for c in _hidden_columns }
- print "self.columns", self.columns
+ logger.debug("_columns={}".format(_columns))
+ self.columns = { self.mapping.get(c, c) : c for c in _columns }
+ self.hidden_columns = { self.mapping.get(c, c) : c for c in _hidden_columns }
+ logger.debug("self.columns {}".format(self.columns))
+ logger.debug("self.hidden_columns {}".format(self.hidden_columns))
self.init_key=init_key
self.datatables_options=datatables_options
if self.checkboxes:
# we use aoColumnDefs rather than aoColumns -- ignore user-provided aoColumns
if 'aoColumns' in self.datatables_options:
- print 'WARNING: querytable uses aoColumnDefs, your aoColumns spec. is discarded'
+ logger.warning('WARNING: querytable uses aoColumnDefs, your aoColumns spec. is discarded')
del self.datatables_options['aoColumns']
# set aoColumnDefs in datatables_options - might already have stuff in there
aoColumnDefs = self.datatables_options.setdefault ('aoColumnDefs',[])