user_ext.py
2.57 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
63
64
65
66
67
68
69
70
71
72
import colander
from datatables import (ColumnDT, DataTables, )
from deform import (widget, )
from opensipkd.tools.buttons import btn_close, btn_delete, btn_view
from pyramid.i18n import TranslationStringFactory
from pyramid.view import view_config
from . import BaseView
from ..models import (DBSession, User, ExternalIdentity)
_ = TranslationStringFactory('user')
class AddSchema(colander.Schema):
external_user_name = colander.SchemaNode(
colander.String(), title=_('User Name'))
provider_name = (colander.SchemaNode(colander.String(), title=_('Provider')))
local_user_id = (colander.SchemaNode(colander.String(), title=_('User ID')))
class EditSchema(AddSchema):
external_id = colander.SchemaNode(colander.String(),
widget=widget.TextInputWidget(readonly=True),
missing=colander.drop)
class ListSchema(colander.Schema):
id = colander.SchemaNode(colander.String(), field="external_id")
external_user_name = colander.SchemaNode(
colander.String(), title=_('User Name'))
provider_name = (colander.SchemaNode(colander.String(), title=_('Provider')))
local_user_id = (colander.SchemaNode(colander.String(), title=_('User ID')))
class UserExt(BaseView):
def __init__(self, request):
super(UserExt, self).__init__(request)
self.edit_schema = EditSchema
self.list_schema = ListSchema
self.list_route = "user-ext"
self.list_buttons = (btn_view, btn_delete, btn_close)
self.table = ExternalIdentity
@view_config(
route_name='user-ext', renderer='templates/table.pt',
permission='user-view')
def view_list(self):
form = super(UserExt, self).view_list()
return form
@view_config(
route_name='user-ext-view', renderer='templates/form_input.pt',
permission='user-view')
def view_view(self):
return super(UserExt, self).view_view()
@view_config(
route_name='user-ext-delete', renderer='templates/form_input.pt',
permission='user-edit')
def view_delete(self):
return super(UserExt, self).view_delete()
@view_config(
route_name='user-ext-act', renderer='json', permission='user-view')
def view_act(self):
return super(UserExt, self).view_act()
def delete_msg(self, row):
return f'Data ID {row.external_id} sudah dihapus.'
def query_id(self):
return DBSession.query(ExternalIdentity).filter_by(external_id=self.req.matchdict["id"])