parameter.py
3.87 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
from colander import Length
import colander
from deform import (widget, )
from pyramid.view import (view_config, )
from . import BaseView, button_import
from opensipkd.models import (
DBSession,
Parameter)
from . import BaseView
class AddSchema(colander.Schema):
kode = colander.SchemaNode(
colander.String(),
oid="kode",
validator=colander.Length(max=32),
title="Kode") # Validasi panjang maksimal 32 karakter
nama = colander.SchemaNode(
colander.String(),
oid="nama",
validator=colander.Length(max=128),
title="Nama")
value = colander.SchemaNode(
colander.String(),
widget=widget.TextAreaWidget(rows=5),
oid="value",
title="Nilai")
status = colander.SchemaNode(
colander.Integer(),
widget=widget.CheckboxWidget(true_val='1', false_val='0'),
default=1,
oid="status")
class EditSchema(AddSchema):
id = colander.SchemaNode(colander.String(),
missing=colander.drop,
widget=widget.HiddenWidget(readonly=True),
title="Action")
class ListSchema(colander.Schema):
id = colander.SchemaNode(colander.Integer(),
title="Action")
kode = colander.SchemaNode(
colander.String(),
oid="kode",
title="Kode")
nama = colander.SchemaNode(
colander.String(),
oid="nama",
title="Nama")
value = colander.SchemaNode(
colander.String(),
widget=widget.TextAreaWidget(rows=5),
oid="value",
title="Nilai")
status = colander.SchemaNode(
colander.Integer(),
widget=widget.CheckboxWidget())
class Views(BaseView):
def __init__(self, request):
super(Views, self).__init__(request)
self.form_params = dict(scripts="")
self.list_url = 'parameter'
self.list_route = 'parameter'
self.add_schema = AddSchema
self.edit_schema = EditSchema
self.table = Parameter
self.list_schema = ListSchema
self.list_buttons = self.list_buttons + (button_import,)
@view_config(route_name='parameter', renderer='templates/table.pt',
permission='user-edit')
def view_list(self):
return super().view_list()
@view_config(route_name='parameter-act', renderer='json',
permission='user-edit')
def view_act(self):
return super().view_act()
def next_act(self):
url_dict = self.req.matchdict
params = self.params
if url_dict['act'] == 'hon':
term = 'term' in params and params['term'] or ''
rows = DBSession.query(Parameter.id, Parameter.nama). \
filter(Parameter.nama.ilike('%{term}%'.format(term=term))). \
order_by(Parameter.nama).all()
r = [dict(id=k[0], value=k[1]) for k in rows]
return r
@view_config(route_name='parameter-add', renderer='templates/form.pt',
permission='user-edit')
def view_add(self):
return super().view_add()
@view_config(route_name='parameter-edit', renderer='templates/form.pt',
permission='user-edit')
def view_edit(self):
return super().view_edit()
@view_config(route_name='parameter-view', renderer='templates/form.pt',
permission='user-view')
def view_view(self):
return super().view_view()
@view_config(route_name='parameter-delete', renderer='templates/form.pt',
permission='user-edit')
def view_delete(self):
return super().view_delete()
@view_config(route_name='parameter-upload',
renderer='templates/form.pt', permission='user-upload')
def view_upload(self):
self.upload_keys = ["value"]
return super(Views, self).view_upload(exts=(".csv", ".tsv"))