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
from pyramid.view import view_config
from pyramid.exceptions import HTTPNotFound
from deform import (
Form,
Button,
)
import colander
class Modem(colander.Schema):
id = colander.SchemaNode(colander.String(), title='IMSI')
msisdn = colander.SchemaNode(colander.String(), title='Nomor HP')
keterangan = colander.SchemaNode(colander.String())
class Mailer(colander.Schema):
id = colander.SchemaNode(colander.String(), title='Email')
keterangan = colander.SchemaNode(colander.String())
SCHEMAS = {
1: Modem,
6: Mailer,
}
@view_config(route_name='agent-add', renderer='templates/agent/add.pt')
def view_agent_add(request):
jalur_id = request.matchdict['jalur']
jalur_id = int(jalur_id)
if jalur_id not in SCHEMAS:
return HTTPNotFound()
schema_cls = SCHEMAS[jalur_id]
schema = schema_cls()
btn_save = Button('save', 'Simpan')
btn_cancel = Button('cancel', 'Batalkan')
buttons = (btn_save, btn_cancel)
form = Form(schema, buttons=buttons)
return dict(title='Tambah Agent', form=form.render())