user_grid.py
1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import logging
from sqlalchemy import (
func,
cast,
Text,
)
from pyramid.view import view_config
from pyramid.i18n import TranslationStringFactory
from datatables import (
ColumnDT,
DataTables,
)
from ..models import DBSession
from ..models.ziggurat import User
log = logging.getLogger(__name__)
_ = TranslationStringFactory('user')
columns = [
ColumnDT(User.id),
ColumnDT(User.user_name),
ColumnDT(User.email),
ColumnDT(User.status),
ColumnDT(cast(User.last_login_date, Text))]
@view_config(
route_name='user-grid', renderer='templates/user/grid.pt',
permission='user-edit')
def view_list(request):
return dict(title=_('Users'))
@view_config(route_name='user-act', renderer='json', permission='user-edit')
def view_act(request):
if request.matchdict['act'] == 'grid':
log.debug(f'{request.path}')
q = DBSession.query().select_from(User)
dt = DataTables(request.GET, q, columns)
return dt.output_result()