Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
aa.gusti
/
opensipkd-base
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit c453d871
authored
Jul 01, 2022
by
aagusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
perbaikan module login
1 parent
648628a1
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
63 additions
and
184 deletions
opensipkd/base/scripts/data/routes.csv
opensipkd/base/views/base_views.py
opensipkd/base/views/partner.py
opensipkd/base/views/user_rpc.py
opensipkd/detable/detable.py
opensipkd/detable/widget.py
opensipkd/base/scripts/data/routes.csv
View file @
c453d87
...
@@ -74,12 +74,12 @@ group-rpt,/group/{rpt}/rpt,Group Report
...
@@ -74,12 +74,12 @@ group-rpt,/group/{rpt}/rpt,Group Report
routes-rpt,/routes/{rpt}/rpt,Routes Report
routes-rpt,/routes/{rpt}/rpt,Routes Report
partner,/partner,Partner
partner,/partner,Partner
partner-add,/partner/add,Partner Add
partner-act,/partner/{act}/act,Partner Action
partner-act,/partner/{act}/act,Partner Action
partner-rpt,/partner/{rpt}/rpt,Partner Report
partner-rpt,/partner/{rpt}/rpt,Partner Report
partner-ed
t,/partner/{id}/ed
t,Partner Edt
partner-ed
it,/partner/{id}/edi
t,Partner Edt
partner-view,/partner/{id}/view,Partner view
partner-view,/partner/{id}/view,Partner view
partner-del,/partner/{id}/del,Partner Del
partner-delete,/partner/{id}/delete,Partner Del
partner-add,/partner/add,Partner Add
departemen,/departemen,Organisasi
departemen,/departemen,Organisasi
departemen-act,/departemen/{act}/act,Organisasi Act
departemen-act,/departemen/{act}/act,Organisasi Act
...
...
opensipkd/base/views/base_views.py
View file @
c453d87
...
@@ -129,6 +129,7 @@ class BaseView(object):
...
@@ -129,6 +129,7 @@ class BaseView(object):
self
.
headers
=
None
self
.
headers
=
None
self
.
bindings
=
{}
self
.
bindings
=
{}
self
.
autocomplete
=
'on'
self
.
autocomplete
=
'on'
self
.
action_suffix
=
"/grid/act"
def
delete_msg
(
self
,
row
):
def
delete_msg
(
self
,
row
):
return
f
'Data ID {row.id} sudah dihapus.'
return
f
'Data ID {row.id} sudah dihapus.'
...
@@ -291,6 +292,7 @@ class BaseView(object):
...
@@ -291,6 +292,7 @@ class BaseView(object):
def
save_request
(
self
,
values
,
row
=
None
):
def
save_request
(
self
,
values
,
row
=
None
):
params
=
self
.
req
.
params
params
=
self
.
req
.
params
for
k
,
v
in
params
.
items
():
for
k
,
v
in
params
.
items
():
if
k
not
in
values
:
if
v
:
if
v
:
values
[
k
]
=
v
values
[
k
]
=
v
return
self
.
save
(
values
,
self
.
req
.
user
,
row
)
return
self
.
save
(
values
,
self
.
req
.
user
,
row
)
...
@@ -308,7 +310,6 @@ class BaseView(object):
...
@@ -308,7 +310,6 @@ class BaseView(object):
for
f
in
d
:
for
f
in
d
:
if
type
(
d
[
f
])
is
str
:
if
type
(
d
[
f
])
is
str
:
d
[
f
]
=
d
[
f
]
.
strip
()
d
[
f
]
=
d
[
f
]
.
strip
()
return
d
return
d
def
get_item_table
(
self
,
row
=
None
):
def
get_item_table
(
self
,
row
=
None
):
...
@@ -336,8 +337,8 @@ class BaseView(object):
...
@@ -336,8 +337,8 @@ class BaseView(object):
form
.
set_appstruct
(
e
.
cstruct
)
form
.
set_appstruct
(
e
.
cstruct
)
return
dict
(
form
=
form
.
render
(),
table
=
table
and
table
.
render
()
or
None
,
return
dict
(
form
=
form
.
render
(),
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
])
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
])
c
=
dict
(
controls
)
self
.
save_request
(
dict
(
controls
)
,
row
)
self
.
save_request
(
c
,
row
)
return
self
.
route_list
()
return
self
.
route_list
()
values
=
self
.
get_values
(
row
)
values
=
self
.
get_values
(
row
)
form
.
set_appstruct
(
values
)
form
.
set_appstruct
(
values
)
...
@@ -354,6 +355,8 @@ class BaseView(object):
...
@@ -354,6 +355,8 @@ class BaseView(object):
row
=
q
.
first
()
row
=
q
.
first
()
if
not
row
:
if
not
row
:
return
self
.
id_not_found
()
return
self
.
id_not_found
()
if
not
self
.
bindings
:
self
.
bindings
=
self
.
get_bindings
(
row
)
if
request
.
POST
:
if
request
.
POST
:
if
'delete'
in
request
.
POST
:
if
'delete'
in
request
.
POST
:
msg
=
self
.
delete_msg
(
row
)
msg
=
self
.
delete_msg
(
row
)
...
...
opensipkd/base/views/partner.py
View file @
c453d87
from
datetime
import
datetime
import
colander
import
colander
from
deform
import
(
from
deform
import
(
Form
,
widget
,
widget
,
ValidationFailure
,
)
from
opensipkd.tools.buttons
import
btn_save
,
btn_cancel
,
btn_delete
from
pyramid.httpexceptions
import
(
HTTPFound
,
)
)
from
pyramid.view
import
(
from
pyramid.view
import
(
view_config
,
view_config
,
)
)
from
opensipkd.base.models
import
(
from
opensipkd.base.models
import
(
User
,
ResProvinsi
,
ResDati2
,
ResKecamatan
,
ResDesa
)
ResProvinsi
,
ResDati2
,
ResKecamatan
,
ResDesa
)
from
opensipkd.base.models.common
import
ResCompany
from
opensipkd.base.models.common
import
ResCompany
from
.company
import
company_widget
from
.company
import
company_widget
from
.partner_base
import
PartnerSchema
from
.partner_base
import
PartnerSchema
,
NamaSchema
from
..models
import
DBSession
from
..models
import
DBSession
from
..models
import
Partner
from
..models
import
Partner
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
BaseView
SESS_ADD_FAILED
=
'Tambah partner gagal'
SESS_ADD_FAILED
=
'Tambah partner gagal'
SESS_EDIT_FAILED
=
'Edit partner gagal'
SESS_EDIT_FAILED
=
'Edit partner gagal'
...
@@ -39,6 +31,7 @@ class AddSchema(PartnerSchema):
...
@@ -39,6 +31,7 @@ class AddSchema(PartnerSchema):
company_id
=
colander
.
SchemaNode
(
company_id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
colander
.
Integer
(),
widget
=
company_widget
,
widget
=
company_widget
,
missing
=
colander
.
drop
,
oid
=
"company_id"
,
oid
=
"company_id"
,
title
=
"Company"
)
title
=
"Company"
)
...
@@ -56,38 +49,45 @@ class EditSchema(AddSchema):
...
@@ -56,38 +49,45 @@ class EditSchema(AddSchema):
)
)
class
ListSchema
(
NamaSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
(),
)
status
=
colander
.
SchemaNode
(
colander
.
Boolean
(),
oid
=
"status"
)
class
ViewPartner
(
BaseView
):
class
ViewPartner
(
BaseView
):
def
__init__
(
self
,
request
):
super
()
.
__init__
(
request
)
self
.
form_params
=
dict
(
scripts
=
""
)
self
.
list_url
=
'partner'
self
.
list_route
=
'partner'
self
.
add_schema
=
AddSchema
self
.
edit_schema
=
EditSchema
self
.
table
=
Partner
self
.
list_schema
=
ListSchema
########
########
# List #
# List #
########
########
@view_config
(
route_name
=
'partner'
,
renderer
=
'templates/
partner/list
.pt'
,
@view_config
(
route_name
=
'partner'
,
renderer
=
'templates/
table
.pt'
,
permission
=
'user-view'
)
permission
=
'user-view'
)
def
view_list
(
self
):
def
view_list
(
self
):
return
dic
t
()
return
super
()
.
view_lis
t
()
@view_config
(
route_name
=
'partner-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'partner-act'
,
renderer
=
'json'
,
permission
=
'user-view'
)
permission
=
'user-view'
)
def
view_act
(
self
):
def
view_act
(
self
):
return
super
()
.
view_act
()
def
next_act
(
self
):
request
=
self
.
req
request
=
self
.
req
params
=
request
.
params
params
=
request
.
params
url_dict
=
request
.
matchdict
url_dict
=
request
.
matchdict
if
url_dict
[
'act'
]
==
'hok'
:
if
url_dict
[
'act'
]
==
'grid'
:
columns
=
[
ColumnDT
(
Partner
.
id
,
mData
=
'id'
),
ColumnDT
(
Partner
.
kode
,
mData
=
'kode'
),
ColumnDT
(
Partner
.
nama
,
mData
=
'nama'
),
ColumnDT
(
Partner
.
is_vendor
,
mData
=
'is_vendor'
),
ColumnDT
(
Partner
.
is_customer
,
mData
=
'is_customer'
),
ColumnDT
(
Partner
.
status
,
mData
=
'status'
),
]
query
=
DBSession
.
query
()
.
select_from
(
Partner
)
if
self
.
req
.
user
.
company_id
:
query
=
query
.
filter
(
Partner
.
company_id
==
self
.
req
.
user
.
company_id
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
elif
url_dict
[
'act'
]
==
'hok'
:
term
=
'term'
in
params
and
params
[
'term'
]
or
''
term
=
'term'
in
params
and
params
[
'term'
]
or
''
prefix
=
'prefix'
in
params
and
params
[
'prefix'
]
or
''
prefix
=
'prefix'
in
params
and
params
[
'prefix'
]
or
''
q
=
DBSession
.
query
(
Partner
.
id
,
Partner
.
kode
.
label
(
'value'
),
q
=
DBSession
.
query
(
Partner
.
id
,
Partner
.
kode
.
label
(
'value'
),
...
@@ -150,102 +150,29 @@ class ViewPartner(BaseView):
...
@@ -150,102 +150,29 @@ class ViewPartner(BaseView):
@view_config
(
route_name
=
'partner-add'
,
renderer
=
'templates/form_input.pt'
,
@view_config
(
route_name
=
'partner-add'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_add
(
self
):
def
view_add
(
self
):
request
=
self
.
req
return
super
()
.
view_add
()
form
=
get_form
(
request
,
AddSchema
)
if
request
.
POST
:
if
'save'
in
request
.
POST
:
controls
=
request
.
POST
.
items
()
try
:
controls
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
form
.
set_appstruct
(
e
.
cstruct
)
return
dict
(
form
=
form
.
render
(),
scripts
=
""
)
save_request
(
request
,
dict
(
controls
))
return
route_list
(
request
)
return
dict
(
form
=
form
.
render
(),
scripts
=
""
)
@view_config
(
route_name
=
'partner-edt'
,
renderer
=
'templates/form_input.pt'
,
@view_config
(
route_name
=
'partner-ed
i
t'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_edt
(
self
):
def
view_edt
(
self
):
request
=
self
.
req
return
super
()
.
view_edit
()
q
=
query_id
(
request
)
row
=
q
.
first
()
if
not
row
:
return
id_not_found
(
request
)
form
=
get_form
(
request
,
EditSchema
,
row
=
row
)
if
request
.
POST
:
if
'save'
in
request
.
POST
:
controls
=
request
.
POST
.
items
()
try
:
controls
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
form
.
render
(
appstruct
=
e
.
cstruct
)
return
dict
(
form
=
form
.
render
(),
scripts
=
""
)
save_request
(
request
,
dict
(
controls
),
row
)
return
route_list
(
request
)
values
=
row
.
to_dict
()
form
.
render
(
appstruct
=
values
)
return
dict
(
form
=
form
.
render
(),
scripts
=
""
)
@view_config
(
route_name
=
'partner-view'
,
renderer
=
'templates/form_input.pt'
,
@view_config
(
route_name
=
'partner-view'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_view
(
self
):
def
view_view
(
self
):
request
=
self
.
req
return
super
()
.
view_view
()
q
=
query_id
(
request
)
row
=
q
.
first
()
if
not
row
:
return
id_not_found
(
request
)
form
=
get_form
(
request
,
EditSchema
,
buttons
=
(
btn_cancel
,))
if
request
.
POST
:
return
route_list
(
request
)
values
=
row
.
to_dict
()
form
.
render
(
appstruct
=
values
)
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
""
)
@view_config
(
route_name
=
'partner-del'
,
renderer
=
'templates/form_input.pt'
,
@view_config
(
route_name
=
'partner-del
ete
'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_del
(
self
):
def
view_delete
(
self
):
request
=
self
.
req
return
super
()
.
view_delete
()
q
=
query_id
(
request
)
row
=
q
.
first
()
if
not
row
:
return
id_not_found
(
request
)
form
=
get_form
(
request
,
EditSchema
,
buttons
=
(
btn_delete
,
btn_cancel
,))
if
request
.
POST
:
if
'delete'
in
request
.
POST
:
user
=
User
.
query
()
.
\
filter_by
(
partner_id
=
request
.
matchdict
[
'id'
])
if
user
.
first
():
request
.
session
.
flash
(
'Partner digunakan oleh User'
)
return
route_list
(
request
)
msg
=
'Partner ID
%
d
%
s sudah dihapus.'
%
(
row
.
id
,
row
.
nama
)
q
.
delete
()
DBSession
.
flush
()
request
.
session
.
flash
(
msg
)
return
route_list
(
request
)
values
=
row
.
to_dict
()
def
form_validator
(
self
,
form
,
value
):
form
.
render
(
appstruct
=
values
)
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
""
)
def
form_validator
(
form
,
value
):
def
err_kode
():
def
err_kode
():
raise
colander
.
Invalid
(
form
,
raise
colander
.
Invalid
(
form
,
'Kode
%
s sudah digunakan oleh
%
s'
%
(
'Kode
%
s sudah digunakan oleh
%
s'
%
(
value
[
'kode'
],
found
.
nama
))
value
[
'kode'
],
found
.
nama
))
# def err_login():
# raise colander.Invalid(form,
# 'Login %s sudah digunakan oleh kode %s' % (
# value['user_nm'], found.row.nama))
if
'id'
in
form
.
request
.
matchdict
:
if
'id'
in
form
.
request
.
matchdict
:
uid
=
form
.
request
.
matchdict
[
'id'
]
uid
=
form
.
request
.
matchdict
[
'id'
]
q
=
DBSession
.
query
(
Partner
)
.
filter_by
(
id
=
uid
)
q
=
DBSession
.
query
(
Partner
)
.
filter_by
(
id
=
uid
)
...
@@ -259,79 +186,22 @@ def form_validator(form, value):
...
@@ -259,79 +186,22 @@ def form_validator(form, value):
err_kode
()
err_kode
()
elif
found
:
elif
found
:
err_kode
()
err_kode
()
value
[
'is_vendor'
]
=
'is_vendor'
in
value
and
value
[
'is_vendor'
]
and
1
or
0
value
[
'is_customer'
]
=
'is_customer'
in
value
and
value
[
'is_customer'
]
and
1
or
0
value
[
"status"
]
=
'status'
in
value
and
value
[
'status'
]
and
1
or
0
def
get_bindings
(
self
,
row
=
None
):
def
get_form
(
request
,
class_form
,
row
=
None
,
buttons
=
(
btn_save
,
btn_cancel
)):
provinsi_list
=
ResProvinsi
.
get_list
()
provinsi_list
=
ResProvinsi
.
get_list
()
dati2_list
=
row
and
row
.
provinsi_id
and
ResDati2
.
get_list
(
row
.
provinsi_id
)
or
[]
dati2_list
=
row
and
row
.
provinsi_id
and
ResDati2
.
get_list
(
row
.
provinsi_id
)
or
[]
kecamatan_list
=
row
and
row
.
dati2_id
and
ResKecamatan
.
get_list
(
row
.
dati2_id
)
or
[]
kecamatan_list
=
row
and
row
.
dati2_id
and
ResKecamatan
.
get_list
(
row
.
dati2_id
)
or
[]
desa_list
=
row
and
row
.
kecamatan_id
and
ResDesa
.
get_list
(
row
.
kecamatan_id
)
or
[]
desa_list
=
row
and
row
.
kecamatan_id
and
ResDesa
.
get_list
(
row
.
kecamatan_id
)
or
[]
schema
=
class_form
(
validator
=
form_validator
)
return
dict
(
schema
=
schema
.
bind
(
request
=
request
,
provinsi_list
=
provinsi_list
,
provinsi_list
=
provinsi_list
,
dati2_list
=
dati2_list
,
dati2_list
=
dati2_list
,
kecamatan_list
=
kecamatan_list
,
kecamatan_list
=
kecamatan_list
,
desa_list
=
desa_list
,
desa_list
=
desa_list
,
company_list
=
ResCompany
.
get_list
()
company_list
=
ResCompany
.
get_list
()
)
)
schema
.
request
=
request
return
Form
(
schema
,
buttons
=
buttons
)
def
save
(
values
,
user
,
row
=
None
):
if
not
row
:
row
=
Partner
()
row
.
created
=
datetime
.
now
()
row
.
create_uid
=
user
.
id
values
[
'is_vendor'
]
=
'is_vendor'
in
values
and
values
[
'is_vendor'
]
and
1
or
0
values
[
'is_customer'
]
=
'is_customer'
in
values
and
values
[
'is_customer'
]
and
1
or
0
row
.
from_dict
(
values
)
row
.
updated
=
datetime
.
now
()
row
.
update_uid
=
user
.
id
row
.
status
=
'status'
in
values
and
values
[
'status'
]
and
1
or
row
and
row
.
status
or
0
DBSession
.
add
(
row
)
DBSession
.
flush
()
return
row
def
save_request
(
request
,
values
,
row
=
None
):
if
'id'
in
request
.
matchdict
:
values
[
'id'
]
=
request
.
matchdict
[
'id'
]
row
=
save
(
values
,
request
.
user
,
row
)
request
.
session
.
flash
(
'Partner sudah disimpan.'
)
def
route_list
(
request
):
return
HTTPFound
(
location
=
request
.
route_url
(
'partner'
))
def
session_failed
(
request
,
session_name
):
r
=
dict
(
form
=
request
.
session
[
session_name
])
del
request
.
session
[
session_name
]
return
r
########
# Edit #
########
def
query_id
(
request
):
return
DBSession
.
query
(
Partner
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
def
id_not_found
(
request
):
msg
=
'Partner ID
%
s Tidak Ditemukan.'
%
request
.
matchdict
[
'id'
]
request
.
session
.
flash
(
msg
,
'error'
)
return
route_list
(
request
)
def
get_partner_list
():
r
=
[]
q
=
DBSession
.
query
(
Partner
)
.
order_by
(
Partner
.
nama
)
for
row
in
q
:
g
=
(
str
(
row
.
id
),
(
f
"{row.kode}/ {row.nama}"
))
r
.
append
(
g
)
return
r
@colander.deferred
@colander.deferred
...
...
opensipkd/base/views/user_rpc.py
View file @
c453d87
...
@@ -24,7 +24,8 @@ from opensipkd.tools import create_now, get_settings
...
@@ -24,7 +24,8 @@ from opensipkd.tools import create_now, get_settings
from
opensipkd.tools.api
import
custom_error
from
opensipkd.tools.api
import
custom_error
from
opensipkd.base.tools.api
import
(
from
opensipkd.base.tools.api
import
(
auth_from_rpc
,
check_token_rpc
,
update_token
)
auth_from_rpc
,
check_token_rpc
,
update_token
)
from
..views.partner
import
save
as
save_partner
#todo save_partner
# from ..views.partner import save as save_partner
def
insert_user
(
request
,
values
):
def
insert_user
(
request
,
values
):
...
...
opensipkd/detable/detable.py
View file @
c453d87
...
@@ -5,6 +5,7 @@ import re
...
@@ -5,6 +5,7 @@ import re
import
logging
import
logging
import
colander
import
colander
import
deform
from
chameleon.utils
import
Markup
from
chameleon.utils
import
Markup
from
deform
import
compat
from
deform
import
compat
from
deform
import
field
from
deform
import
field
...
@@ -167,10 +168,13 @@ class DeTable(field.Field):
...
@@ -167,10 +168,13 @@ class DeTable(field.Field):
d
[
"searchable"
]
=
f
.
searchable
d
[
"searchable"
]
=
f
.
searchable
data
.
append
(
f
"searchable: {f.searchable}"
)
data
.
append
(
f
"searchable: {f.searchable}"
)
if
hasattr
(
f
,
'visible'
):
if
hasattr
(
f
,
'visible'
)
:
d
[
"visible"
]
=
f
.
visible
d
[
"visible"
]
=
f
.
visible
data
.
append
(
f
"visible: {f.visible}"
)
data
.
append
(
f
"visible: {f.visible}"
)
if
isinstance
(
f
.
widget
,
deform
.
widget
.
HiddenWidget
):
d
[
"visible"
]
=
False
if
hasattr
(
f
,
'orderable'
):
if
hasattr
(
f
,
'orderable'
):
d
[
"orderable"
]
=
f
.
orderable
d
[
"orderable"
]
=
f
.
orderable
data
.
append
(
f
"orderable: {f.orderable}"
)
data
.
append
(
f
"orderable: {f.orderable}"
)
...
@@ -178,11 +182,10 @@ class DeTable(field.Field):
...
@@ -178,11 +182,10 @@ class DeTable(field.Field):
thousand
=
hasattr
(
f
,
'thousand'
)
and
f
.
thousand
or
None
thousand
=
hasattr
(
f
,
'thousand'
)
and
f
.
thousand
or
None
separator
=
thousand
and
"separator"
in
thousand
and
thousand
[
"separator"
]
or
','
separator
=
thousand
and
"separator"
in
thousand
and
thousand
[
"separator"
]
or
','
decimal
=
thousand
and
"decimal"
in
thousand
and
thousand
[
"decimal"
]
or
'.'
decimal
=
thousand
and
"decimal"
in
thousand
and
thousand
[
"decimal"
]
or
'.'
point
=
thousand
and
"point"
in
thousand
and
thousand
[
"point"
]
or
2
point
=
thousand
and
"point"
in
thousand
and
thousand
[
"point"
]
or
0
currency
=
thousand
and
"currency"
in
thousand
and
thousand
[
"currency"
]
or
""
currency
=
thousand
and
"currency"
in
thousand
and
thousand
[
"currency"
]
or
""
if
thousand
or
type
(
f
.
typ
)
==
colander
.
Float
()
or
type
(
f
.
typ
)
==
colander
.
Integer
():
if
thousand
or
type
(
f
.
typ
)
==
colander
.
Float
()
or
type
(
f
.
typ
)
==
colander
.
Integer
():
d
[
d
[
"render"
]
=
f
"<script>$.fn.dataTable.render.number( '{separator}', '{decimal}', {point}, '{currency}' )</script>"
"render"
]
=
f
"<script>$.fn.dataTable.render.number( '{separator}', '{decimal}', {point}, '{currency}' )</script>"
if
'className'
not
in
d
:
if
'className'
not
in
d
:
d
[
"className"
]
=
"text-right"
d
[
"className"
]
=
"text-right"
# if hasattr(f, "edit_link"):
# if hasattr(f, "edit_link"):
...
...
opensipkd/detable/widget.py
View file @
c453d87
...
@@ -36,3 +36,5 @@ class TableWidget(MappingWidget):
...
@@ -36,3 +36,5 @@ class TableWidget(MappingWidget):
template
=
"detable"
template
=
"detable"
readonly_template
=
"readonly/detable"
readonly_template
=
"readonly/detable"
requirements
=
((
"deform"
,
None
),
{
"js"
:
"opensipkd.base:static/v3/js/plugin/datatables/jquery.dataTables.min.js"
})
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment