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())