Add widget support to SourceColumn

Allow passing a widget class to SourceColumn. This makes
using lambdas to render model column unnecesary and are
mostly removed too.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2018-12-22 05:35:31 -04:00
parent 360e756093
commit 64e1c6bb67
59 changed files with 450 additions and 402 deletions

View File

@@ -31,20 +31,7 @@ from .permissions import (
permission_user_view
)
from .search import * # NOQA
def get_groups():
Group = apps.get_model(app_label='auth', model_name='Group')
return ','.join([group.name for group in Group.objects.all()])
def get_users():
return ','.join(
[
user.get_full_name() or user.username
for user in get_user_model().objects.all()
]
)
from .utils import get_groups, get_users
class UserManagementApp(MayanAppConfig):
@@ -89,27 +76,27 @@ class UserManagementApp(MayanAppConfig):
permission_user_view
)
)
SourceColumn(attribute='name', is_identifier=True, source=Group)
SourceColumn(
source=Group, label=_('Users'), attribute='user_set.count'
attribute='user_set.count', label=_('Users'), source=Group
)
SourceColumn(attribute='username', is_identifier=True, source=User)
SourceColumn(
source=User, label=_('Full name'), attribute='get_full_name'
attribute='get_full_name', label=_('Full name'), source=User
)
SourceColumn(attribute='email', label=_('Email'), source=User)
SourceColumn(
attribute='is_active', label=_('Active'), source=User,
widget=TwoStateWidget
)
SourceColumn(
source=User, label=_('Email'), attribute='email'
attribute='has_usable_password', source=User, widget=TwoStateWidget
)
SourceColumn(
source=User, label=_('Active'),
func=lambda context: TwoStateWidget(
state=context['object'].is_active
).render()
)
SourceColumn(
source=User, label=_('Has usable password?'),
func=lambda context: TwoStateWidget(
state=context['object'].has_usable_password()
).render()
attribute='has_usable_password', label=_('Has usable password?'),
source=User, widget=TwoStateWidget
)
menu_list_facet.bind_links(