Expose the Role.notes
field for view/edit
also add a simple "<pre> with sans-serif font" renderer
This commit is contained in:
parent
cd019fb05b
commit
917d5ab3fa
3 changed files with 38 additions and 1 deletions
|
@ -35,6 +35,7 @@ from rattail.db.auth import (has_permission, grant_permission, revoke_permission
|
|||
|
||||
import colander
|
||||
from deform import widget as dfwidget
|
||||
from webhelpers2.html import HTML
|
||||
|
||||
from tailbone import grids
|
||||
from tailbone.db import Session
|
||||
|
@ -51,21 +52,37 @@ class RolesView(PrincipalMasterView):
|
|||
grid_columns = [
|
||||
'name',
|
||||
'session_timeout',
|
||||
'notes',
|
||||
]
|
||||
|
||||
form_fields = [
|
||||
'name',
|
||||
'session_timeout',
|
||||
'notes',
|
||||
'permissions',
|
||||
]
|
||||
|
||||
def configure_grid(self, g):
|
||||
super(RolesView, self).configure_grid(g)
|
||||
|
||||
# name
|
||||
g.filters['name'].default_active = True
|
||||
g.filters['name'].default_verb = 'contains'
|
||||
g.set_sort_defaults('name')
|
||||
g.set_link('name')
|
||||
|
||||
# notes
|
||||
g.set_renderer('notes', self.render_short_notes)
|
||||
|
||||
def render_short_notes(self, role, field):
|
||||
value = getattr(role, field)
|
||||
if value is None:
|
||||
return ""
|
||||
if len(value) < 100:
|
||||
return value
|
||||
return HTML.tag('span', title=value,
|
||||
c="{}...".format(value[:100]))
|
||||
|
||||
def editable_instance(self, role):
|
||||
"""
|
||||
We must prevent edit for certain built-in roles etc., depending on
|
||||
|
@ -124,6 +141,9 @@ class RolesView(PrincipalMasterView):
|
|||
# name
|
||||
f.set_validator('name', self.unique_name)
|
||||
|
||||
# notes
|
||||
f.set_type('notes', 'text')
|
||||
|
||||
# permissions
|
||||
self.tailbone_permissions = self.get_available_permissions()
|
||||
f.set_renderer('permissions', PermissionsRenderer(permissions=self.tailbone_permissions))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue