user.py
1.58 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import os
from sqlalchemy import (
cast,
Text,
)
from pyramid.view import view_config
from datatables import (
ColumnDT,
DataTables,
)
from yaform import Form
from ...models import DBSession
from ...models.ziggurat import User
from ..user import BaseView
columns = [
ColumnDT(User.id),
ColumnDT(User.user_name),
ColumnDT(User.email),
ColumnDT(User.status),
ColumnDT(cast(User.last_login_date, Text))]
here = os.path.abspath(os.path.dirname(__file__))
my_templates = os.path.join(here, 'templates', 'user')
# Ini untuk memberitahu di mana file *.yml berada
Form.default_renderer.loader.search_path.insert(0, my_templates)
@view_config(
route_name='theme1-user', renderer='templates/user/list.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':
q = DBSession.query().select_from(User)
dt = DataTables(request.GET, q, columns)
return dt.output_result()
class View(BaseView):
form_class = Form
def render(self, form): # Override
return form.render(yml_template='edit')
@view_config(
route_name='theme1-user-add', renderer='templates/user/add.pt',
permission='user-edit')
def add(self):
return super().add()
@view_config(
route_name='theme1-user-edit', renderer='templates/user/edit.pt',
permission='user-edit')
def edit(self):
return super().edit()