Commit 65dc5a1e by aa.gusti

detable custom url

1 parent d7d9dc9a
......@@ -2,18 +2,19 @@
Feature yang digunakan untuk memudahkan merender datatable dalam html
```python
import colander
from opensipkd.detable import DeTable
from opensipkd.tools.buttons import btn_view, btn_add, btn_edit, btn_delete, btn_close
from datatables import ColumnDT
class ListSchema(colander.Schema):
id = colander.SchemaNode(colander.Integer(), searchable=False,
id = colander.SchemaNode(colander.Integer(), searchable=False,
orderable=False, visible=False)
kode = colander.SchemaNode(colander.String(), width='100pt')
nama = colander.SchemaNode(colander.String())
@view_config(route_name='provinsi',
renderer='templates/list.pt',
permission='provinsi')
......@@ -23,6 +24,7 @@ def view_list(self):
buttons=(btn_view, btn_add, btn_edit, btn_delete, btn_close))
return dict(table=table.render(), scripts="")
# /provinsi/add
@view_config(route_name='provinsi-add',
renderer='templates/form_input.pt',
......@@ -30,6 +32,7 @@ def view_list(self):
def view_add(request):
pass
# /provinsi/{id}/edit
@view_config(route_name='provinsi-edit',
renderer='templates/form_input.pt',
......@@ -37,6 +40,7 @@ def view_add(request):
def view_edit(request):
pass
# /provinsi/{id}/delete
@view_config(route_name='provinsi-delete',
renderer='templates/form_input.pt',
......@@ -51,19 +55,30 @@ def view_delete(request):
permission='provinsi')
def view_view(request):
pass
# /provinsi/{act}/act
@view_config(route_name='provinsi-act',
renderer='json',
permission='provinsi')
def view_act(request):
pass
url_dict = request.matchdict
if url_dict['act'] == 'grid':
columns = [ColumnDT(ResProvinsi.id, mData='id'),
ColumnDT(ResProvinsi.kode, mData='kode'),
ColumnDT(ResProvinsi.nama, mData='nama'),
ColumnDT(ResProvinsi.status, mData='status'), ]
query = DBSession.query().select_from(ResProvinsi)
row_table = DataTables(request.GET, query, columns)
return row_table.output_result()
```
## Contoh HTML
```html
<html metal:use-macro="load: ./base3.1.pt"
tal:define="
tal:define="
home request.route_url('home');">
<div metal:fill-slot="content">
<div class="jarviswidget jarviswidget-color-blueLight"> <!-- jarviswidget -->
......@@ -78,6 +93,7 @@ def view_act(request):
Lihat di deklarasi `class DeTable(field.Field):`
## SchemaNode Items
```python
colander.SchemaNode(
NodeType, -> colander.Integer(), colander.String()
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!