Commit 65dc5a1e by aa.gusti

detable custom url

1 parent d7d9dc9a
...@@ -2,18 +2,19 @@ ...@@ -2,18 +2,19 @@
Feature yang digunakan untuk memudahkan merender datatable dalam html Feature yang digunakan untuk memudahkan merender datatable dalam html
```python ```python
import colander import colander
from opensipkd.detable import DeTable from opensipkd.detable import DeTable
from opensipkd.tools.buttons import btn_view, btn_add, btn_edit, btn_delete, btn_close from opensipkd.tools.buttons import btn_view, btn_add, btn_edit, btn_delete, btn_close
from datatables import ColumnDT
class ListSchema(colander.Schema): class ListSchema(colander.Schema):
id = colander.SchemaNode(colander.Integer(), searchable=False, id = colander.SchemaNode(colander.Integer(), searchable=False,
orderable=False, visible=False) orderable=False, visible=False)
kode = colander.SchemaNode(colander.String(), width='100pt') kode = colander.SchemaNode(colander.String(), width='100pt')
nama = colander.SchemaNode(colander.String()) nama = colander.SchemaNode(colander.String())
@view_config(route_name='provinsi', @view_config(route_name='provinsi',
renderer='templates/list.pt', renderer='templates/list.pt',
permission='provinsi') permission='provinsi')
...@@ -23,6 +24,7 @@ def view_list(self): ...@@ -23,6 +24,7 @@ def view_list(self):
buttons=(btn_view, btn_add, btn_edit, btn_delete, btn_close)) buttons=(btn_view, btn_add, btn_edit, btn_delete, btn_close))
return dict(table=table.render(), scripts="") return dict(table=table.render(), scripts="")
# /provinsi/add # /provinsi/add
@view_config(route_name='provinsi-add', @view_config(route_name='provinsi-add',
renderer='templates/form_input.pt', renderer='templates/form_input.pt',
...@@ -30,6 +32,7 @@ def view_list(self): ...@@ -30,6 +32,7 @@ def view_list(self):
def view_add(request): def view_add(request):
pass pass
# /provinsi/{id}/edit # /provinsi/{id}/edit
@view_config(route_name='provinsi-edit', @view_config(route_name='provinsi-edit',
renderer='templates/form_input.pt', renderer='templates/form_input.pt',
...@@ -37,6 +40,7 @@ def view_add(request): ...@@ -37,6 +40,7 @@ def view_add(request):
def view_edit(request): def view_edit(request):
pass pass
# /provinsi/{id}/delete # /provinsi/{id}/delete
@view_config(route_name='provinsi-delete', @view_config(route_name='provinsi-delete',
renderer='templates/form_input.pt', renderer='templates/form_input.pt',
...@@ -51,19 +55,30 @@ def view_delete(request): ...@@ -51,19 +55,30 @@ def view_delete(request):
permission='provinsi') permission='provinsi')
def view_view(request): def view_view(request):
pass pass
# /provinsi/{act}/act # /provinsi/{act}/act
@view_config(route_name='provinsi-act', @view_config(route_name='provinsi-act',
renderer='json', renderer='json',
permission='provinsi') permission='provinsi')
def view_act(request): 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 ## Contoh HTML
```html ```html
<html metal:use-macro="load: ./base3.1.pt" <html metal:use-macro="load: ./base3.1.pt"
tal:define=" tal:define="
home request.route_url('home');"> home request.route_url('home');">
<div metal:fill-slot="content"> <div metal:fill-slot="content">
<div class="jarviswidget jarviswidget-color-blueLight"> <!-- jarviswidget --> <div class="jarviswidget jarviswidget-color-blueLight"> <!-- jarviswidget -->
...@@ -78,6 +93,7 @@ def view_act(request): ...@@ -78,6 +93,7 @@ def view_act(request):
Lihat di deklarasi `class DeTable(field.Field):` Lihat di deklarasi `class DeTable(field.Field):`
## SchemaNode Items ## SchemaNode Items
```python ```python
colander.SchemaNode( colander.SchemaNode(
NodeType, -> colander.Integer(), colander.String() 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!