fix: some fixes for wutta people view
This commit is contained in:
parent
4c3e3aeb6a
commit
29531c83c4
3 changed files with 41 additions and 12 deletions
|
@ -24,9 +24,10 @@
|
|||
Core Grid Classes
|
||||
"""
|
||||
|
||||
from urllib.parse import urlencode
|
||||
import warnings
|
||||
import inspect
|
||||
import logging
|
||||
import warnings
|
||||
from urllib.parse import urlencode
|
||||
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import orm
|
||||
|
@ -858,9 +859,13 @@ class Grid(WuttaGrid):
|
|||
settings['page'] = self.page
|
||||
if self.filterable:
|
||||
for filtr in self.iter_filters():
|
||||
settings['filter.{}.active'.format(filtr.key)] = filtr.default_active
|
||||
settings['filter.{}.verb'.format(filtr.key)] = filtr.default_verb
|
||||
settings['filter.{}.value'.format(filtr.key)] = filtr.default_value
|
||||
defaults = self.filter_defaults.get(filtr.key, {})
|
||||
settings[f'filter.{filtr.key}.active'] = defaults.get('active',
|
||||
filtr.default_active)
|
||||
settings[f'filter.{filtr.key}.verb'] = defaults.get('verb',
|
||||
filtr.default_verb)
|
||||
settings[f'filter.{filtr.key}.value'] = defaults.get('value',
|
||||
filtr.default_value)
|
||||
|
||||
# If user has default settings on file, apply those first.
|
||||
if self.user_has_defaults():
|
||||
|
@ -1239,7 +1244,7 @@ class Grid(WuttaGrid):
|
|||
view = None
|
||||
for action in self.actions:
|
||||
if action.key == 'view':
|
||||
return action.click_handler
|
||||
return getattr(action, 'click_handler', None)
|
||||
|
||||
def set_filters_sequence(self, filters, only=False):
|
||||
"""
|
||||
|
@ -1475,10 +1480,22 @@ class Grid(WuttaGrid):
|
|||
|
||||
# leverage configured rendering logic where applicable;
|
||||
# otherwise use "raw" data value as string
|
||||
value = self.obtain_value(rowobj, name)
|
||||
if self.renderers and name in self.renderers:
|
||||
value = self.renderers[name](rowobj, name)
|
||||
else:
|
||||
value = self.obtain_value(rowobj, name)
|
||||
renderer = self.renderers[name]
|
||||
|
||||
# TODO: legacy renderer callables require 2 args,
|
||||
# but wuttaweb callables require 3 args
|
||||
sig = inspect.signature(renderer)
|
||||
required = [param for param in sig.parameters.values()
|
||||
if param.default == param.empty]
|
||||
|
||||
if len(required) == 2:
|
||||
# TODO: legacy renderer
|
||||
value = renderer(rowobj, name)
|
||||
else: # the future
|
||||
value = renderer(rowobj, name, value)
|
||||
|
||||
if value is None:
|
||||
value = ""
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue