yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #56729
[Bug 1625061] [NEW] parameters of datatable in tabletab can't store in session
Public bug reported:
When I use datatable in a tabletab, I use filter_type = "server" and filter_choices = (('hostname', _("host name"), True),). Then I can't get the data from table. However, it is just OK in datatable directly in view.
I read about source code and write my filter function as below:
def get_filters(self, filters):
filter_action = self._tables.items()[0][1]._meta._filter_action
if filter_action:
filter_field = self._tables.items()[0][1].get_filter_field()
if filter_action.is_api_filter(filter_field):
filter_string = self._tables.items()[0][1].get_filter_string()
if filter_field and filter_string:
filters[filter_field] = filter_string
return filters
I print the self._tables.items()[0][1] and it is the table instance I need. I print self._tables.items()[0][1].get_filter_field() but it is null. Then I read the source code and find the function is like this:
def get_filter_field(self):
"""Get the filter field value used for 'server' type filters. This
is the value from the filter action's list of filter choices.
"""
filter_action = self._meta._filter_action
param_name = '%s_field' % filter_action.get_param_name()
filter_field = self.request.session.get(param_name, '')
return filter_field
I print param_name and it is the field from the website. Then I know filter_field is get from the session according to the code note. I print the session(with __dict__) but it doesn't have a field called '*__q_field'(* is short for my table name), so I wonder if the parameters are stored in session as the code note said.
Can anyone give me any advice?
** Affects: horizon
Importance: Undecided
Status: New
** Tags: datatable tabletab
** Tags added: datatable tabletab
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1625061
Title:
parameters of datatable in tabletab can't store in session
Status in OpenStack Dashboard (Horizon):
New
Bug description:
When I use datatable in a tabletab, I use filter_type = "server" and filter_choices = (('hostname', _("host name"), True),). Then I can't get the data from table. However, it is just OK in datatable directly in view.
I read about source code and write my filter function as below:
def get_filters(self, filters):
filter_action = self._tables.items()[0][1]._meta._filter_action
if filter_action:
filter_field = self._tables.items()[0][1].get_filter_field()
if filter_action.is_api_filter(filter_field):
filter_string = self._tables.items()[0][1].get_filter_string()
if filter_field and filter_string:
filters[filter_field] = filter_string
return filters
I print the self._tables.items()[0][1] and it is the table instance I need. I print self._tables.items()[0][1].get_filter_field() but it is null. Then I read the source code and find the function is like this:
def get_filter_field(self):
"""Get the filter field value used for 'server' type filters. This
is the value from the filter action's list of filter choices.
"""
filter_action = self._meta._filter_action
param_name = '%s_field' % filter_action.get_param_name()
filter_field = self.request.session.get(param_name, '')
return filter_field
I print param_name and it is the field from the website. Then I know filter_field is get from the session according to the code note. I print the session(with __dict__) but it doesn't have a field called '*__q_field'(* is short for my table name), so I wonder if the parameters are stored in session as the code note said.
Can anyone give me any advice?
To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1625061/+subscriptions
Follow ups