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 dc70cf17
authored
Jun 28, 2022
by
aagusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
penggunaan simple development
1 parent
91124f84
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
431 additions
and
1405 deletions
opensipkd/base/models/common.py
opensipkd/base/models/wilayah.py
opensipkd/base/views/base_views.py
opensipkd/base/views/company.py
opensipkd/base/views/dati2.py
opensipkd/base/views/departemen.py
opensipkd/base/views/desa.py
opensipkd/base/views/eselon.py
opensipkd/base/views/groups.py
opensipkd/base/views/jabatan.py
opensipkd/base/views/kecamatan.py
opensipkd/base/views/log_app.py
opensipkd/base/views/parameter.py
opensipkd/base/views/partner_base.py
opensipkd/base/views/permission.py
opensipkd/base/views/provinsi.py
opensipkd/base/views/routes.py
opensipkd/base/views/user.py
opensipkd/base/views/widget_os.py
opensipkd/base/views/widgets/readonly/select.pt
opensipkd/detable/detable.py
opensipkd/detable/templates/detable.pt
opensipkd/base/models/common.py
View file @
dc70cf1
from
sqlalchemy
import
Column
,
String
,
SmallInteger
,
Integer
,
DateTime
,
ForeignKey
from
sqlalchemy
import
Column
,
String
,
SmallInteger
,
Integer
,
DateTime
,
ForeignKey
from
sqlalchemy.orm
import
relationship
,
backref
from
ziggurat_foundations.tests
import
User
from
ziggurat_foundations.tests
import
User
from
.meta
import
Base
from
.meta
import
Base
...
@@ -43,3 +44,4 @@ class UserDeviceModel(Base, KodeModel):
...
@@ -43,3 +44,4 @@ class UserDeviceModel(Base, KodeModel):
class
ResCompany
(
Base
,
NamaModel
):
class
ResCompany
(
Base
,
NamaModel
):
__tablename__
=
'company'
__tablename__
=
'company'
partner_id
=
Column
(
Integer
,
ForeignKey
(
Partner
.
id
))
partner_id
=
Column
(
Integer
,
ForeignKey
(
Partner
.
id
))
partner
=
relationship
(
Partner
,
backref
=
backref
(
"company"
))
opensipkd/base/models/wilayah.py
View file @
dc70cf1
from
sqlalchemy.orm
import
relationship
,
backref
from
opensipkd.base.models
import
TABLE_ARGS
from
opensipkd.base.models
import
TABLE_ARGS
from
sqlalchemy
import
(
from
sqlalchemy
import
(
Column
,
Column
,
...
@@ -36,6 +38,7 @@ class ResDati2(Base, NamaModel):
...
@@ -36,6 +38,7 @@ class ResDati2(Base, NamaModel):
kategori
=
Column
(
String
(
32
))
kategori
=
Column
(
String
(
32
))
ibu_kota
=
Column
(
String
(
64
))
ibu_kota
=
Column
(
String
(
64
))
provinsi_id
=
Column
(
SmallInteger
,
ForeignKey
(
ResProvinsi
.
id
))
provinsi_id
=
Column
(
SmallInteger
,
ForeignKey
(
ResProvinsi
.
id
))
provinsi
=
relationship
(
ResProvinsi
,
backref
=
backref
(
"dati2"
))
@classmethod
@classmethod
def
get_list
(
cls
,
provinsi_id
):
def
get_list
(
cls
,
provinsi_id
):
...
@@ -49,8 +52,9 @@ class ResKecamatan(Base, NamaModel):
...
@@ -49,8 +52,9 @@ class ResKecamatan(Base, NamaModel):
__table_args__
=
(
TABLE_ARGS
,)
__table_args__
=
(
TABLE_ARGS
,)
ibu_kota
=
Column
(
String
(
64
))
ibu_kota
=
Column
(
String
(
64
))
dati2_id
=
Column
(
SmallInteger
,
ForeignKey
(
ResDati2
.
id
))
dati2_id
=
Column
(
SmallInteger
,
ForeignKey
(
ResDati2
.
id
))
dati2
=
relationship
(
ResDati2
,
backref
=
backref
(
"kecamatan"
))
@classmethod
@classmethod
def
get_list
(
cls
,
dati2_id
):
def
get_list
(
cls
,
dati2_id
=
None
):
qry
=
cls
.
query_list
()
qry
=
cls
.
query_list
()
if
dati2_id
:
if
dati2_id
:
qry
=
qry
.
filter
(
cls
.
dati2_id
==
dati2_id
)
qry
=
qry
.
filter
(
cls
.
dati2_id
==
dati2_id
)
...
@@ -68,7 +72,7 @@ class ResDesa(Base, NamaModel):
...
@@ -68,7 +72,7 @@ class ResDesa(Base, NamaModel):
__table_args__
=
(
TABLE_ARGS
,)
__table_args__
=
(
TABLE_ARGS
,)
kategori
=
Column
(
String
(
32
))
kategori
=
Column
(
String
(
32
))
kecamatan_id
=
Column
(
SmallInteger
,
ForeignKey
(
ResKecamatan
.
id
))
kecamatan_id
=
Column
(
SmallInteger
,
ForeignKey
(
ResKecamatan
.
id
))
kecamatan
=
relationship
(
ResKecamatan
,
backref
=
backref
(
"desa"
))
@classmethod
@classmethod
def
get_list
(
cls
,
kecamatan_id
):
def
get_list
(
cls
,
kecamatan_id
):
qry
=
cls
.
query_list
()
qry
=
cls
.
query_list
()
...
...
opensipkd/base/views/base_views.py
View file @
dc70cf1
...
@@ -149,7 +149,7 @@ class BaseView(object):
...
@@ -149,7 +149,7 @@ class BaseView(object):
def
get_form
(
self
,
class_form
,
row
=
None
,
buttons
=
(
btn_save
,
btn_cancel
),
**
bindings
):
def
get_form
(
self
,
class_form
,
row
=
None
,
buttons
=
(
btn_save
,
btn_cancel
),
**
bindings
):
buttons
=
self
.
buttons
and
self
.
buttons
or
buttons
buttons
=
self
.
buttons
and
self
.
buttons
or
buttons
bindings
=
self
.
bindings
and
self
.
bindings
or
self
.
get_bindings
()
bindings
=
self
.
bindings
and
self
.
bindings
or
bindings
schema
=
class_form
(
validator
=
self
.
form_validator
)
schema
=
class_form
(
validator
=
self
.
form_validator
)
schema
=
schema
.
bind
(
request
=
self
.
req
,
**
bindings
)
schema
=
schema
.
bind
(
request
=
self
.
req
,
**
bindings
)
schema
.
request
=
self
.
req
schema
.
request
=
self
.
req
...
@@ -168,6 +168,7 @@ class BaseView(object):
...
@@ -168,6 +168,7 @@ class BaseView(object):
action_suffix
=
"/grid/act"
,
action_suffix
=
"/grid/act"
,
buttons
=
self
.
list_buttons
)
buttons
=
self
.
list_buttons
)
resources
=
table
.
get_widget_resources
()
resources
=
table
.
get_widget_resources
()
# resources=dict(css="", js="")
return
dict
(
form
=
table
.
render
(),
scripts
=
""
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
])
return
dict
(
form
=
table
.
render
(),
scripts
=
""
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
])
arg
=
arg
and
arg
or
{}
arg
=
arg
and
arg
or
{}
...
...
opensipkd/base/views/company.py
View file @
dc70cf1
import
json
import
colander
import
colander
from
deform
import
(
widget
,
Form
,
ValidationFailure
,
)
from
deform
import
(
widget
,
)
from
opensipkd.tools.buttons
import
btn_close
,
btn_cancel
,
btn_save
from
pyramid.view
import
(
view_config
,
)
from
pyramid.view
import
(
view_config
,
)
from
opensipkd.base.models
import
ResProvinsi
,
ResDati2
,
ResDesa
from
opensipkd.base.models
import
ResProvinsi
,
ResDati2
,
ResDesa
,
User
from
.partner_base
import
PartnerSchema
from
.partner_base
import
PartnerSchema
,
NamaSchema
from
..models
import
DBSession
,
ResCompany
,
ResKecamatan
,
Partner
from
..models
import
DBSession
,
ResCompany
,
ResKecamatan
,
Partner
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
BaseView
SESS_ADD_FAILED
=
'Tambah pemda gagal'
SESS_ADD_FAILED
=
'Tambah pemda gagal'
SESS_EDIT_FAILED
=
'Edit pemda gagal'
SESS_EDIT_FAILED
=
'Edit pemda gagal'
...
@@ -29,46 +26,46 @@ class AddSchema(PartnerSchema):
...
@@ -29,46 +26,46 @@ class AddSchema(PartnerSchema):
class
EditSchema
(
AddSchema
):
class
EditSchema
(
AddSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
(
readonly
=
True
))
widget
=
widget
.
HiddenWidget
(
readonly
=
True
),
visible
=
False
,)
partner_id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
partner_id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
HiddenWidget
(),
widget
=
widget
.
HiddenWidget
(),
missing
=
colander
.
drop
,
missing
=
colander
.
drop
,
oid
=
"partner_id"
)
oid
=
"partner_id"
)
class
ListSchema
(
NamaSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
visible
=
False
)
class
ViewCompany
(
BaseView
):
class
ViewCompany
(
BaseView
):
def
__init__
(
self
,
request
):
def
__init__
(
self
,
request
):
super
(
ViewCompany
,
self
)
.
__init__
(
request
)
super
(
ViewCompany
,
self
)
.
__init__
(
request
)
self
.
form_scripts
=
""
self
.
list_col_defs
=
json
.
dumps
(
[{
"searchable"
:
False
,
"visible"
:
False
,
"targets"
:
[
0
],
},
{
"searchable"
:
True
,
"orderable"
:
True
,
"targets"
:
[
1
,
2
],
}])
self
.
list_cols
=
[{
'title'
:
"ID"
,
'data'
:
"id"
},
{
'title'
:
"Kode"
,
'data'
:
"kode"
,
'width'
:
'100pt'
},
{
'title'
:
"Nama"
,
'data'
:
"nama"
},
]
self
.
list_buttons
=
'btn_view, btn_add, btn_edit, btn_delete, '
\
'btn_close'
self
.
form_params
=
dict
(
scripts
=
""
)
# self.list_url = 'company'
self
.
list_route
=
'company'
self
.
list_route
=
'company'
self
.
add_schema
=
AddSchema
self
.
add_schema
=
AddSchema
self
.
edit_schema
=
EditSchema
self
.
edit_schema
=
EditSchema
self
.
list_schema
=
ListSchema
self
.
table
=
ResCompany
self
.
table
=
ResCompany
########
# List #
########
def
form_validator
(
self
,
form
,
value
):
def
form_validator
(
self
,
form
,
value
):
err
=
colander
.
Invalid
(
form
,
""
)
def
err_kode
():
def
err_kode
():
raise
colander
.
Invalid
(
form
,
'Kode
%
s sudah digunakan oleh
%
s'
%
(
msg
=
f
"Kode {value['kode']} sudah digunakan oleh {found.nama}"
value
[
'kode'
],
found
.
nama
))
err
[
"kode"
]
=
msg
raise
err
def
err_nama
():
def
err_nama
():
raise
colander
.
Invalid
(
form
,
err
[
"nama"
]
=
f
"Uraian {value['nama']} sudah digunakan oleh kode {found.kode}"
'Uraian
%
s sudah digunakan oleh kode
%
s'
%
(
raise
err
value
[
'nama'
],
found
.
kode
))
def
err_email
():
err
[
"email"
]
=
f
"Email {value['email']} sudah digunakan oleh kode {found.nama}"
raise
err
def
err_user
():
err
[
"email"
]
=
f
"Email {value['email']} sudah digunakan oleh kode {found.user_name}"
raise
err
if
'id'
in
form
.
request
.
matchdict
:
if
'id'
in
form
.
request
.
matchdict
:
uid
=
form
.
request
.
matchdict
[
'id'
]
uid
=
form
.
request
.
matchdict
[
'id'
]
...
@@ -77,7 +74,7 @@ class ViewCompany(BaseView):
...
@@ -77,7 +74,7 @@ class ViewCompany(BaseView):
else
:
else
:
row
=
None
row
=
None
q
=
ResCompany
.
query_kode
(
value
[
'kode'
])
q
=
self
.
table
.
query_kode
(
value
[
'kode'
])
found
=
q
.
first
()
found
=
q
.
first
()
if
row
:
if
row
:
if
found
and
found
.
id
!=
row
.
id
:
if
found
and
found
.
id
!=
row
.
id
:
...
@@ -85,44 +82,45 @@ class ViewCompany(BaseView):
...
@@ -85,44 +82,45 @@ class ViewCompany(BaseView):
elif
found
:
elif
found
:
err_kode
()
err_kode
()
found
=
ResCompany
.
query_nama
(
value
[
'nama'
])
.
first
()
found
=
self
.
table
.
query_nama
(
value
[
'nama'
])
.
first
()
if
found
:
if
found
:
if
found
and
found
.
id
!=
row
.
id
:
if
found
and
found
.
id
!=
row
.
id
:
err_nama
()
err_nama
()
elif
found
:
elif
found
:
err_nama
()
err_nama
()
def
get_form
(
self
,
class_form
,
row
=
None
,
buttons
=
(
btn_save
,
btn_cancel
)):
partner_id
=
value
.
get
(
'partner_id'
)
schema
=
class_form
(
validator
=
self
.
form_validator
)
found
=
Partner
.
query_email
(
value
.
get
(
'email'
))
.
first
()
if
found
:
if
found
and
found
.
id
!=
partner_id
:
err_email
()
elif
found
:
err_email
()
found
=
User
.
get_by_identity
(
value
.
get
(
'email'
))
if
found
:
err_user
()
def
get_bindings
(
self
,
row
=
None
):
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
[]
partner
=
row
and
row
.
partner
or
None
kecamatan_list
=
row
and
row
.
dati2_id
and
ResKecamatan
.
get_list
(
row
.
dati2_id
)
or
[]
dati2_list
=
partner
and
partner
.
provinsi_id
and
ResDati2
.
get_list
(
partner
.
provinsi_id
)
or
[]
desa_list
=
row
and
row
.
kecamatan_id
and
ResDesa
.
get_list
(
row
.
kecamatan_id
)
or
[]
kecamatan_list
=
partner
and
partner
.
dati2_id
and
ResKecamatan
.
get_list
(
partner
.
dati2_id
)
or
[]
schema
=
schema
.
bind
(
provinsi_list
=
provinsi_list
,
desa_list
=
partner
and
partner
.
kecamatan_id
and
ResDesa
.
get_list
(
partner
.
kecamatan_id
)
or
[]
return
dict
(
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
)
)
schema
.
request
=
self
.
req
return
Form
(
schema
,
buttons
=
buttons
)
@view_config
(
route_name
=
'company-view'
,
@view_config
(
route_name
=
'company-view'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'company'
)
renderer
=
'templates/form.pt'
,
permission
=
'company'
)
def
view_view
(
self
):
# row = query_id(request).first()
def
view_view
(
self
):
request
=
self
.
req
return
super
()
.
view_view
()
row
=
self
.
query_id
()
.
first
()
if
not
row
:
return
self
.
id_not_found
()
form
=
self
.
get_form
(
EditSchema
,
buttons
=
(
btn_close
,))
if
request
.
POST
:
return
self
.
route_list
()
form
.
set_appstruct
(
self
.
get_values
(
row
))
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
self
.
form_scripts
)
@view_config
(
route_name
=
'company'
,
@view_config
(
route_name
=
'company'
,
renderer
=
'templates/
list
.pt'
,
renderer
=
'templates/
table
.pt'
,
permission
=
'company'
)
permission
=
'company'
)
def
view_list
(
self
):
def
view_list
(
self
):
return
super
()
.
view_list
()
return
super
()
.
view_list
()
...
@@ -130,52 +128,26 @@ class ViewCompany(BaseView):
...
@@ -130,52 +128,26 @@ class ViewCompany(BaseView):
@view_config
(
route_name
=
'company-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'company-act'
,
renderer
=
'json'
,
permission
=
'view'
)
permission
=
'view'
)
def
view_act
(
self
):
def
view_act
(
self
):
request
=
self
.
req
return
super
()
.
view_act
()
url_dict
=
request
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
columns
=
[
ColumnDT
(
ResCompany
.
id
,
mData
=
'id'
),
ColumnDT
(
ResCompany
.
kode
,
mData
=
'kode'
),
ColumnDT
(
ResCompany
.
nama
,
mData
=
'nama'
),
]
query
=
DBSession
.
query
()
.
select_from
(
ResCompany
)
if
request
.
user
.
company_id
:
query
=
query
.
filter_by
(
id
=
request
.
user
.
company_id
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
@view_config
(
route_name
=
'company-add'
,
@view_config
(
route_name
=
'company-add'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'company'
)
renderer
=
'templates/form.pt'
,
permission
=
'company'
)
def
view_add
(
self
):
def
view_add
(
self
):
if
self
.
req
.
user
.
company_id
:
return
self
.
route_list
(
"Hak Akses Terbatas"
,
"error"
)
return
super
(
ViewCompany
,
self
)
.
view_add
()
return
super
(
ViewCompany
,
self
)
.
view_add
()
########
def
get_values
(
self
,
row
,
istime
=
False
):
# Edit #
d
=
super
()
.
get_values
(
row
,
istime
)
########
partner
=
row
.
partner
if
partner
:
p
=
partner
.
to_dict
()
del
p
[
"id"
]
d
.
update
(
p
)
return
d
@view_config
(
route_name
=
'company-edit'
,
@view_config
(
route_name
=
'company-edit'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'company'
)
renderer
=
'templates/form.pt'
,
permission
=
'company'
)
def
view_edt
(
self
):
def
view_edit
(
self
):
row
=
self
.
query_id
()
.
first
()
return
super
(
ViewCompany
,
self
)
.
view_edit
()
if
not
row
:
return
self
.
id_not_found
()
part
=
Partner
.
query_id
(
row
.
partner_id
)
.
first
()
form
=
self
.
get_form
(
self
.
edit_schema
,
row
=
part
)
if
self
.
req
.
POST
:
if
'save'
in
self
.
req
.
POST
:
controls
=
self
.
req
.
POST
.
items
()
try
:
controls
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
form
.
set_appstruct
(
e
.
cstruct
)
return
dict
(
form
=
form
.
render
(),
scripts
=
self
.
form_scripts
)
self
.
save_request
(
dict
(
controls
),
row
)
return
self
.
route_list
()
values
=
part
and
part
.
to_dict
()
or
{}
values
.
update
(
row
.
to_dict
())
form
.
set_appstruct
(
values
)
return
dict
(
form
=
form
.
render
(),
scripts
=
self
.
form_scripts
)
@view_config
(
route_name
=
'company-delete'
,
@view_config
(
route_name
=
'company-delete'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'company'
)
renderer
=
'templates/form_input.pt'
,
permission
=
'company'
)
...
@@ -192,6 +164,7 @@ class ViewCompany(BaseView):
...
@@ -192,6 +164,7 @@ class ViewCompany(BaseView):
del
values
[
"id"
]
del
values
[
"id"
]
from
.partner
import
save
as
partner_save
from
.partner
import
save
as
partner_save
part
=
partner_save
(
values
,
self
.
req
.
user
,
part
)
part
=
partner_save
(
values
,
self
.
req
.
user
,
part
)
if
part
:
if
part
:
values
[
"partner_id"
]
=
part
.
id
values
[
"partner_id"
]
=
part
.
id
if
"id"
in
self
.
req
.
matchdict
:
if
"id"
in
self
.
req
.
matchdict
:
...
@@ -200,9 +173,3 @@ class ViewCompany(BaseView):
...
@@ -200,9 +173,3 @@ class ViewCompany(BaseView):
row
=
self
.
save
(
values
,
self
.
req
.
user
,
row
)
row
=
self
.
save
(
values
,
self
.
req
.
user
,
row
)
return
row
return
row
def
query_id
(
self
):
q
=
DBSession
.
query
(
self
.
table
)
.
filter_by
(
id
=
self
.
req
.
matchdict
[
'id'
])
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter_by
(
id
=
self
.
req
.
user
.
company_id
)
return
q
\ No newline at end of file
\ No newline at end of file
opensipkd/base/views/dati2.py
View file @
dc70cf1
...
@@ -5,7 +5,7 @@ from pyramid.view import (view_config, )
...
@@ -5,7 +5,7 @@ from pyramid.view import (view_config, )
from
.
import
widget_os
from
.
import
widget_os
from
.provinsi
import
provinsi_widget
from
.provinsi
import
provinsi_widget
from
..models
import
DBSession
,
ResDati2
,
kategori_dati2
,
ResProvinsi
from
..models
import
DBSession
,
ResDati2
,
kategori_dati2
,
ResProvinsi
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
BaseView
SESS_ADD_FAILED
=
'Tambah dati2 gagal'
SESS_ADD_FAILED
=
'Tambah dati2 gagal'
SESS_EDIT_FAILED
=
'Edit dati2 gagal'
SESS_EDIT_FAILED
=
'Edit dati2 gagal'
...
@@ -46,7 +46,7 @@ class ListSchema(colander.Schema):
...
@@ -46,7 +46,7 @@ class ListSchema(colander.Schema):
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
searchable
=
False
,
orderable
=
False
,
visible
=
False
)
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
searchable
=
False
,
orderable
=
False
,
visible
=
False
)
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
width
=
'100pt'
,
title
=
"Kode"
)
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
width
=
'100pt'
,
title
=
"Kode"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama"
)
provinsi
=
colander
.
SchemaNode
(
colander
.
String
())
provinsi
=
colander
.
SchemaNode
(
colander
.
String
()
,
field
=
ResProvinsi
.
nama
)
status
=
colander
.
SchemaNode
(
colander
.
Integer
(),
width
=
"30pt"
)
status
=
colander
.
SchemaNode
(
colander
.
Integer
(),
width
=
"30pt"
)
...
@@ -62,10 +62,6 @@ class ViewDati2(BaseView):
...
@@ -62,10 +62,6 @@ class ViewDati2(BaseView):
self
.
table
=
ResDati2
self
.
table
=
ResDati2
self
.
list_schema
=
ListSchema
self
.
list_schema
=
ListSchema
########
# List #
########
def
form_validator
(
self
,
form
,
value
):
def
form_validator
(
self
,
form
,
value
):
def
err_kode
():
def
err_kode
():
raise
colander
.
Invalid
(
form
,
'Kode
%
s sudah digunakan oleh
%
s'
%
(
raise
colander
.
Invalid
(
form
,
'Kode
%
s sudah digunakan oleh
%
s'
%
(
...
@@ -101,8 +97,7 @@ class ViewDati2(BaseView):
...
@@ -101,8 +97,7 @@ class ViewDati2(BaseView):
err_nama
()
err_nama
()
def
get_bindings
(
self
,
row
=
None
):
def
get_bindings
(
self
,
row
=
None
):
return
dict
(
request
=
self
.
req
,
return
dict
(
provinsi_list
=
ResProvinsi
.
get_list
())
provinsi_list
=
ResProvinsi
.
get_list
())
@view_config
(
route_name
=
'dati2'
,
@view_config
(
route_name
=
'dati2'
,
renderer
=
'templates/table.pt'
,
renderer
=
'templates/table.pt'
,
...
@@ -115,41 +110,33 @@ class ViewDati2(BaseView):
...
@@ -115,41 +110,33 @@ class ViewDati2(BaseView):
def
view_view
(
self
):
# row = query_id(request).first()
def
view_view
(
self
):
# row = query_id(request).first()
return
super
(
ViewDati2
,
self
)
.
view_view
()
return
super
(
ViewDati2
,
self
)
.
view_view
()
def
list_join
(
self
,
query
):
return
query
.
join
(
ResProvinsi
,
ResProvinsi
.
id
==
ResDati2
.
provinsi_id
)
@view_config
(
route_name
=
'dati2-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'dati2-act'
,
renderer
=
'json'
,
permission
=
'view'
)
permission
=
'view'
)
def
view_act
(
self
):
def
view_act
(
self
):
request
=
self
.
req
return
super
()
.
view_act
()
url_dict
=
request
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
def
next_act
(
self
):
columns
=
[
ColumnDT
(
ResDati2
.
id
,
mData
=
'id'
),
url_dict
=
self
.
req
.
matchdict
ColumnDT
(
ResDati2
.
kode
,
mData
=
'kode'
),
if
url_dict
[
'act'
]
==
'select'
:
ColumnDT
(
ResDati2
.
nama
,
mData
=
'nama'
),
provinsi_id
=
self
.
req
.
params
[
"provinsi_id"
]
ColumnDT
(
ResDati2
.
status
,
mData
=
'status'
),
ColumnDT
(
ResProvinsi
.
nama
,
mData
=
'provinsi'
),
]
query
=
DBSession
.
query
()
.
select_from
(
ResDati2
)
\
.
join
(
ResProvinsi
,
ResProvinsi
.
id
==
ResDati2
.
provinsi_id
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
elif
url_dict
[
'act'
]
==
'select'
:
provinsi_id
=
request
.
params
[
"provinsi_id"
]
data
=
ResDati2
.
get_list
(
provinsi_id
)
data
=
ResDati2
.
get_list
(
provinsi_id
)
result
=
{
f
"{k[0]}"
:
k
[
1
]
for
k
in
data
}
result
=
{
f
"{k[0]}"
:
k
[
1
]
for
k
in
data
}
return
result
return
result
@view_config
(
route_name
=
'dati2-add'
,
@view_config
(
route_name
=
'dati2-add'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'dati2'
)
renderer
=
'templates/form.pt'
,
permission
=
'dati2'
)
def
view_add
(
self
):
def
view_add
(
self
):
return
super
(
ViewDati2
,
self
)
.
view_add
()
return
super
(
ViewDati2
,
self
)
.
view_add
()
########
# Edit #
########
@view_config
(
route_name
=
'dati2-edit'
,
@view_config
(
route_name
=
'dati2-edit'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'dati2'
)
renderer
=
'templates/form.pt'
,
permission
=
'dati2'
)
def
view_edt
(
self
):
def
view_edt
(
self
):
return
super
(
ViewDati2
,
self
)
.
view_edit
()
return
super
(
ViewDati2
,
self
)
.
view_edit
()
@view_config
(
route_name
=
'dati2-delete'
,
@view_config
(
route_name
=
'dati2-delete'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'dati2'
)
renderer
=
'templates/form.pt'
,
permission
=
'dati2'
)
def
view_delete
(
self
):
def
view_delete
(
self
):
return
super
(
ViewDati2
,
self
)
.
view_delete
()
return
super
(
ViewDati2
,
self
)
.
view_delete
()
opensipkd/base/views/departemen.py
View file @
dc70cf1
...
@@ -5,7 +5,6 @@ from datetime import datetime
...
@@ -5,7 +5,6 @@ from datetime import datetime
import
colander
import
colander
from
deform
import
(
widget
,
)
from
deform
import
(
widget
,
)
from
deform.widget
import
AutocompleteInputWidget
from
opensipkd.tools
import
(
get_ext
,
get_random_string
,
get_settings
)
from
opensipkd.tools
import
(
get_ext
,
get_random_string
,
get_settings
)
from
pyramid.view
import
(
view_config
,
)
from
pyramid.view
import
(
view_config
,
)
from
sqlalchemy
import
func
from
sqlalchemy
import
func
...
@@ -119,22 +118,6 @@ class ViewDepartemen(BaseView):
...
@@ -119,22 +118,6 @@ class ViewDepartemen(BaseView):
self
.
list_route
=
'departemen'
self
.
list_route
=
'departemen'
self
.
form_scripts
=
""
self
.
form_scripts
=
""
# """
# self.list_col_defs = json.dumps(
# [{"searchable": False, "visible": False, "targets": [0], }, {
# "searchable": True, "orderable": True, "targets": [1, 2],
# }])
# self.list_cols = [{'title': "ID", 'data': "id"},
# {'title': "Kode", 'data': "kode", 'width': '100pt'},
# {'title': "Nama", 'data': "nama"}, ]
# self.list_buttons = 'btn_view, btn_add, btn_edit, btn_delete, ' \
# 'btn_close'
# self.form_params = dict(scripts="")
########
# List #
########
def
form_validator
(
self
,
form
,
value
):
def
form_validator
(
self
,
form
,
value
):
def
err_kode
():
def
err_kode
():
raise
colander
.
Invalid
(
form
,
'Kode
%
s sudah digunakan oleh
%
s'
%
(
raise
colander
.
Invalid
(
form
,
'Kode
%
s sudah digunakan oleh
%
s'
%
(
...
@@ -182,89 +165,18 @@ class ViewDepartemen(BaseView):
...
@@ -182,89 +165,18 @@ class ViewDepartemen(BaseView):
if
child
.
children
:
if
child
.
children
:
self
.
update_children
(
child
.
children
)
self
.
update_children
(
child
.
children
)
def
before_
save
(
self
,
row
,
values
):
def
save_request
(
self
,
values
,
row
=
None
):
#
save(self, row, values):
for
k
,
v
in
values
.
items
():
for
k
,
v
in
values
.
items
():
if
not
v
:
if
not
v
:
setattr
(
row
,
k
,
None
)
setattr
(
row
,
k
,
None
)
row
=
super
()
.
save_request
(
values
,
row
)
return
row
return
row
# def save(self, values, user, row=None)
# if not row:
# row = Departemen()
# row.created = datetime.now()
# row.create_uid = user.id
# if 'parent_id' in values and not values['parent_id']:
# del values['parent_id']
#
# row.from_dict(values)
# row.updated = datetime.now()
# row.update_uid = user.id
# row.status = 'status' in values and values['status'] and 1 or 0
# row.level_id = 1
# DBSession.add(row)
# DBSession.flush()
# if row.parent_id:
# row.level_id = (row.parent.level_id or 0) + 1
#
# DBSession.add(row)
# if row.children:
# for child in row.children:
# child.level_id = child.parent.level_id + 1
# DBSession.add(child)
# DBSession.flush()
#
# return row
#
# def save_request(self, values, row=None):
# request = self.req
# if 'id' in request.matchdict:
# values['id'] = request.matchdict['id']
# values["company_id"] = request.user.company_id
# row = self.save(values, request.user, row)
# request.session.flash(
# "Departemen {nama} sudah disimpan.".format(nama=row.nama))
# def route_list(self, ):
# return HTTPFound(location=self.req.route_url(self.list_route))
# def get_form(self, class_form, row=None, buttons=(btn_save, btn_cancel)):
# schema = class_form(validator=self.form_validator)
# schema = schema.bind(request=self.req,
# company_list=ResCompany.get_list())
# schema.request = self.req
# if row:
# schema.deserialize(row)
# return Form(schema, buttons=buttons)
#
# def session_failed(self, session_name):
# r = dict(form=self.req.session[session_name])
# del self.req.session[session_name]
# return r
# def query_id(self):
# return DBSession.query(Departemen).filter_by(
# id=self.req.matchdict['id'])
# def id_not_found(self):
# msg = 'Departemen ID %s Tidak Ditemukan.' % self.req.matchdict['id']
# self.req.session.flash(msg, 'error')
# return self.route_list()
@view_config
(
route_name
=
'departemen-view'
,
@view_config
(
route_name
=
'departemen-view'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'departemen'
)
renderer
=
'templates/form.pt'
,
permission
=
'departemen'
)
def
view_view
(
self
):
# row = query_id(request).first()
def
view_view
(
self
):
return
super
(
ViewDepartemen
,
self
)
.
view_view
()
return
super
(
ViewDepartemen
,
self
)
.
view_view
()
# request = self.req
# row = self.query_id().first()
# if not row:
# return self.id_not_found()
#
# form = self.get_form(EditSchema, buttons=(btn_close,))
# if request.POST:
# return self.route_list()
#
# form.set_appstruct(self.get_values(row))
# return dict(form=form.render(readonly=True), scripts=self.form_scripts)
@view_config
(
route_name
=
'departemen'
,
@view_config
(
route_name
=
'departemen'
,
renderer
=
'templates/table.pt'
,
renderer
=
'templates/table.pt'
,
...
@@ -272,9 +184,6 @@ class ViewDepartemen(BaseView):
...
@@ -272,9 +184,6 @@ class ViewDepartemen(BaseView):
def
view_list
(
self
):
def
view_list
(
self
):
return
super
()
.
view_list
()
return
super
()
.
view_list
()
##########
# Action #
##########
@view_config
(
route_name
=
'departemen-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'departemen-act'
,
renderer
=
'json'
,
permission
=
'view'
)
permission
=
'view'
)
def
view_act
(
self
):
def
view_act
(
self
):
...
@@ -390,63 +299,21 @@ class ViewDepartemen(BaseView):
...
@@ -390,63 +299,21 @@ class ViewDepartemen(BaseView):
r
.
append
(
d
)
r
.
append
(
d
)
return
r
return
r
@view_config
(
route_name
=
'departemen-add'
,
renderer
=
'templates/form
_input
.pt'
,
@view_config
(
route_name
=
'departemen-add'
,
renderer
=
'templates/form.pt'
,
permission
=
'departemen'
)
permission
=
'departemen'
)
def
view_add
(
self
):
def
view_add
(
self
):
return
super
(
ViewDepartemen
,
self
)
.
view_add
()
return
super
(
ViewDepartemen
,
self
)
.
view_add
()
@view_config
(
route_name
=
'departemen-edit'
,
@view_config
(
route_name
=
'departemen-edit'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'departemen'
)
renderer
=
'templates/form.pt'
,
permission
=
'departemen'
)
def
view_edit
(
self
):
def
view_edit
(
self
):
return
super
(
ViewDepartemen
,
self
)
.
view_edit
()
return
super
(
ViewDepartemen
,
self
)
.
view_edit
()
# request = self.req
# row = self.query_id().first()
# if not row:
# return self.id_not_found()
#
# form = self.get_form(EditSchema)
# 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=self.form_scripts)
#
# self.save_request(dict(controls), row)
# return self.route_list()
# form.set_appstruct(self.get_values(row))
# return dict(form=form.render(), scripts=self.form_scripts)
##########
# Delete #
##########
@view_config
(
route_name
=
'departemen-delete'
,
@view_config
(
route_name
=
'departemen-delete'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'departemen'
)
renderer
=
'templates/form.pt'
,
permission
=
'departemen'
)
def
view_delete
(
self
):
def
view_delete
(
self
):
return
super
(
ViewDepartemen
,
self
)
.
view_delete
()
return
super
(
ViewDepartemen
,
self
)
.
view_delete
()
# request = self.req
# q = self.query_id()
# row = q.first()
# if not row:
# return self.id_not_found()
# if request.POST:
# if 'delete' in request.POST:
# msg = 'Departemen ID %d %s sudah dihapus.' % (row.id, row.nama)
# q.delete()
# DBSession.flush()
# request.session.flash(msg)
# return self.route_list()
# form = self.get_form(EditSchema,
# buttons=(btn_delete, btn_cancel))
# form.set_appstruct(self.get_values(row))
# return dict(form=form.render(readonly=True), scripts=self.form_scripts)
##########
# Upload #
##########
@view_config
(
route_name
=
'departemen-upload'
,
@view_config
(
route_name
=
'departemen-upload'
,
renderer
=
'templates/departemen/upload.pt'
,
renderer
=
'templates/departemen/upload.pt'
,
permission
=
'departemen'
)
permission
=
'departemen'
)
...
@@ -455,7 +322,6 @@ class ViewDepartemen(BaseView):
...
@@ -455,7 +322,6 @@ class ViewDepartemen(BaseView):
form
=
self
.
get_form
(
UploadSchema
)
form
=
self
.
get_form
(
UploadSchema
)
if
request
.
POST
:
if
request
.
POST
:
if
'save'
in
request
.
POST
:
if
'save'
in
request
.
POST
:
# settings = get_settings()
input_file
=
request
.
POST
[
'upload'
]
.
file
input_file
=
request
.
POST
[
'upload'
]
.
file
filename
=
request
.
POST
[
'upload'
]
.
filename
filename
=
request
.
POST
[
'upload'
]
.
filename
ext
=
get_ext
(
filename
)
ext
=
get_ext
(
filename
)
...
@@ -485,9 +351,9 @@ class ViewDepartemen(BaseView):
...
@@ -485,9 +351,9 @@ class ViewDepartemen(BaseView):
if
code
:
if
code
:
code
=
code
[:
-
1
]
code
=
code
[:
-
1
]
s
ave_upload
(
request
,
code
,
csv_row
)
s
elf
.
save_upload
(
code
,
csv_row
)
s
ave_upload
(
request
,
kode
,
csv_row
)
s
elf
.
save_upload
(
kode
,
csv_row
)
DBSession
.
flush
()
DBSession
.
flush
()
os
.
remove
(
temp_file_path
)
os
.
remove
(
temp_file_path
)
...
...
opensipkd/base/views/desa.py
View file @
dc70cf1
import
json
import
colander
import
colander
from
deform
import
(
widget
,
Form
,
)
from
deform
import
(
widget
,
)
from
opensipkd.tools.buttons
import
btn_close
,
btn_cancel
,
btn_save
,
btn_add
,
btn_edit
,
btn_delete
from
pyramid.view
import
(
view_config
,
)
from
pyramid.view
import
(
view_config
,
)
from
.dati2
import
dati2_widget
from
.kecamatan
import
kecamatan_widget
from
.kecamatan
import
kecamatan_widget
from
.
.models
import
DBSession
,
ResDesa
,
kategori_desa
,
ResKecamatan
from
.
provinsi
import
provinsi_widget
from
..
views
import
ColumnDT
,
DataTables
,
BaseView
from
..
models
import
DBSession
,
ResDesa
,
kategori_desa
,
ResKecamatan
,
ResProvinsi
,
ResDati2
from
..
.detable
import
DeTable
from
..
views
import
BaseView
SESS_ADD_FAILED
=
'Tambah desa gagal'
SESS_ADD_FAILED
=
'Tambah desa gagal'
SESS_EDIT_FAILED
=
'Edit desa gagal'
SESS_EDIT_FAILED
=
'Edit desa gagal'
...
@@ -22,6 +20,12 @@ def desa_widget(node, kw):
...
@@ -22,6 +20,12 @@ def desa_widget(node, kw):
class
AddSchema
(
colander
.
Schema
):
class
AddSchema
(
colander
.
Schema
):
provinsi_id
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
provinsi_widget
,
validator
=
colander
.
Length
(
max
=
32
),
oid
=
"kode"
)
dati2_id
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
dati2_widget
,
validator
=
colander
.
Length
(
max
=
32
),
oid
=
"kode"
)
kecamatan_id
=
colander
.
SchemaNode
(
colander
.
String
(),
kecamatan_id
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
kecamatan_widget
,
widget
=
kecamatan_widget
,
validator
=
colander
.
Length
(
max
=
32
),
oid
=
"kode"
)
validator
=
colander
.
Length
(
max
=
32
),
oid
=
"kode"
)
...
@@ -43,7 +47,7 @@ class ListSchema(colander.Schema):
...
@@ -43,7 +47,7 @@ class ListSchema(colander.Schema):
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
searchable
=
False
,
orderable
=
False
,
visible
=
False
)
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
searchable
=
False
,
orderable
=
False
,
visible
=
False
)
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
width
=
'100pt'
,
title
=
"Kode"
)
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
width
=
'100pt'
,
title
=
"Kode"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama"
)
kecamatan
=
colander
.
SchemaNode
(
colander
.
String
())
kecamatan
=
colander
.
SchemaNode
(
colander
.
String
()
,
field
=
ResKecamatan
.
nama
)
status
=
colander
.
SchemaNode
(
colander
.
Integer
(),
width
=
"30pt"
)
status
=
colander
.
SchemaNode
(
colander
.
Integer
(),
width
=
"30pt"
)
...
@@ -94,24 +98,29 @@ class ViewDesa(BaseView):
...
@@ -94,24 +98,29 @@ class ViewDesa(BaseView):
err_nama
()
err_nama
()
def
get_bindings
(
self
,
row
=
None
):
def
get_bindings
(
self
,
row
=
None
):
return
dict
(
request
=
self
.
req
,
provinsi_list
=
ResProvinsi
.
get_list
()
kecamatan_list
=
ResKecamatan
.
get_list
())
kecamatan
=
row
and
row
.
kecamatan
or
None
kecamatan_list
=
kecamatan
and
ResKecamatan
.
get_list
(
kecamatan
.
dati2_id
)
or
[]
dati2
=
kecamatan
and
kecamatan
.
dati2
or
None
dati2_list
=
dati2
and
ResDati2
.
get_list
(
dati2
.
provinsi_id
)
or
[]
return
dict
(
provinsi_list
=
provinsi_list
,
dati2_list
=
dati2_list
,
kecamatan_list
=
kecamatan_list
,
)
def
get_values
(
self
,
row
,
istime
=
False
):
d
=
super
()
.
get_values
(
row
,
istime
)
kecamatan
=
row
and
row
.
kecamatan
or
None
d
[
"dati2_id"
]
=
kecamatan
and
kecamatan
.
dati2_id
or
None
dati2
=
kecamatan
and
kecamatan
.
dati2
or
None
d
[
"provinsi_id"
]
=
dati2
and
dati2
.
provinsi_id
or
None
return
d
@view_config
(
route_name
=
'desa-view'
,
@view_config
(
route_name
=
'desa-view'
,
renderer
=
'templates/form.pt'
,
permission
=
'desa'
)
renderer
=
'templates/form.pt'
,
permission
=
'desa'
)
def
view_view
(
self
):
# row = query_id(request).first()
def
view_view
(
self
):
request
=
self
.
req
return
super
()
.
view_view
()
row
=
self
.
query_id
()
.
first
()
if
not
row
:
return
self
.
id_not_found
()
form
=
self
.
get_form
(
EditSchema
,
buttons
=
(
btn_close
,))
if
request
.
POST
:
return
self
.
route_list
()
form
.
set_appstruct
(
self
.
get_values
(
row
))
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
self
.
form_scripts
)
@view_config
(
route_name
=
'desa'
,
@view_config
(
route_name
=
'desa'
,
renderer
=
'templates/table.pt'
,
renderer
=
'templates/table.pt'
,
...
@@ -119,22 +128,18 @@ class ViewDesa(BaseView):
...
@@ -119,22 +128,18 @@ class ViewDesa(BaseView):
def
view_list
(
self
):
def
view_list
(
self
):
return
super
(
ViewDesa
,
self
)
.
view_list
()
return
super
(
ViewDesa
,
self
)
.
view_list
()
def
list_join
(
self
,
query
):
return
query
.
outerjoin
(
ResKecamatan
)
@view_config
(
route_name
=
'desa-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'desa-act'
,
renderer
=
'json'
,
permission
=
'view'
)
permission
=
'view'
)
def
view_act
(
self
):
def
view_act
(
self
):
return
super
()
.
view_act
()
def
next_act
(
self
):
request
=
self
.
req
request
=
self
.
req
url_dict
=
request
.
matchdict
url_dict
=
request
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
if
url_dict
[
'act'
]
==
'select'
:
columns
=
[
ColumnDT
(
ResDesa
.
id
,
mData
=
'id'
),
ColumnDT
(
ResDesa
.
kode
,
mData
=
'kode'
),
ColumnDT
(
ResDesa
.
nama
,
mData
=
'nama'
),
ColumnDT
(
ResDesa
.
status
,
mData
=
'status'
),
ColumnDT
(
ResKecamatan
.
nama
,
mData
=
'kecamatan'
),
]
query
=
DBSession
.
query
()
.
select_from
(
ResDesa
)
\
.
join
(
ResKecamatan
,
ResKecamatan
.
id
==
ResDesa
.
kecamatan_id
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
elif
url_dict
[
'act'
]
==
'select'
:
kecamatan_id
=
request
.
params
[
"kecamatan_id"
]
kecamatan_id
=
request
.
params
[
"kecamatan_id"
]
data
=
ResDesa
.
get_list
(
kecamatan_id
)
data
=
ResDesa
.
get_list
(
kecamatan_id
)
result
=
{
f
"{k[0]}"
:
k
[
1
]
for
k
in
data
}
result
=
{
f
"{k[0]}"
:
k
[
1
]
for
k
in
data
}
...
...
opensipkd/base/views/eselon.py
View file @
dc70cf1
from
datetime
import
datetime
import
colander
import
colander
from
deform
import
(
from
deform
import
(
Form
,
widget
,
widget
,
ValidationFailure
,
)
from
pyramid.httpexceptions
import
(
HTTPFound
,
)
)
from
pyramid.view
import
(
from
pyramid.view
import
(
view_config
,
view_config
,
)
)
from
.partner_base
import
NamaSchema
from
..models
import
(
from
..models
import
(
DBSession
,
DBSession
,
Eselon
Eselon
)
)
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
BaseView
SESS_ADD_FAILED
=
'Tambah eselon gagal'
SESS_ADD_FAILED
=
'Tambah eselon gagal'
SESS_EDIT_FAILED
=
'Edit eselon gagal'
SESS_EDIT_FAILED
=
'Edit eselon gagal'
...
@@ -41,35 +35,34 @@ class EditSchema(AddSchema):
...
@@ -41,35 +35,34 @@ class EditSchema(AddSchema):
missing
=
colander
.
drop
,
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
())
widget
=
widget
.
HiddenWidget
())
class
ListSchema
(
NamaSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
visible
=
False
)
class
Views
(
BaseView
):
class
Views
(
BaseView
):
@view_config
(
route_name
=
'eselon'
,
renderer
=
'templates/eselon/list.pt'
,
def
__init__
(
self
,
request
):
super
(
Views
,
self
)
.
__init__
(
request
)
self
.
form_params
=
dict
(
scripts
=
""
)
self
.
list_url
=
'eselon'
self
.
list_route
=
'eselon'
self
.
add_schema
=
AddSchema
self
.
edit_schema
=
EditSchema
self
.
table
=
Eselon
self
.
list_schema
=
ListSchema
@view_config
(
route_name
=
'eselon'
,
renderer
=
'templates/table.pt'
,
permission
=
'eselon'
)
permission
=
'eselon'
)
def
view_list
(
self
):
def
view_list
(
self
):
return
dict
(
a
=
{}
)
return
super
(
Views
,
self
)
.
view_list
(
)
##########
# Action #
##########
@view_config
(
route_name
=
'eselon-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'eselon-act'
,
renderer
=
'json'
,
permission
=
'read'
)
permission
=
'read'
)
def
view_act
(
self
):
def
view_act
(
self
):
request
=
self
.
req
return
super
(
Views
,
self
)
.
view_act
()
ses
=
request
.
session
params
=
request
.
params
url_dict
=
request
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
def
next_act
(
self
):
columns
=
[
params
=
self
.
params
ColumnDT
(
Eselon
.
id
,
mData
=
'id'
),
url_dict
=
self
.
req
.
matchdict
ColumnDT
(
Eselon
.
kode
,
mData
=
'kode'
),
if
url_dict
[
'act'
]
==
'hok'
:
ColumnDT
(
Eselon
.
nama
,
mData
=
'nama'
),
]
query
=
DBSession
.
query
()
.
select_from
(
Eselon
)
rowTable
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
rowTable
.
output_result
()
elif
url_dict
[
'act'
]
==
'hok'
:
term
=
'term'
in
params
and
params
[
'term'
]
or
''
term
=
'term'
in
params
and
params
[
'term'
]
or
''
qry
=
Eselon
.
query
()
.
\
qry
=
Eselon
.
query
()
.
\
filter
(
Eselon
.
kode
.
ilike
(
'
%%%
s
%%
'
%
term
))
.
\
filter
(
Eselon
.
kode
.
ilike
(
'
%%%
s
%%
'
%
term
))
.
\
...
@@ -101,103 +94,26 @@ class Views(BaseView):
...
@@ -101,103 +94,26 @@ class Views(BaseView):
r
.
append
(
d
)
r
.
append
(
d
)
return
r
return
r
@view_config
(
route_name
=
'eselon-add'
,
renderer
=
'templates/
eselon/add
.pt'
,
@view_config
(
route_name
=
'eselon-add'
,
renderer
=
'templates/
form
.pt'
,
permission
=
'eselon'
)
permission
=
'eselon'
)
def
view_add
(
self
):
def
view_add
(
self
):
request
=
self
.
req
return
super
()
.
view_add
()
form
=
get_form
(
request
,
AddSchema
)
@view_config
(
route_name
=
'eselon-edit'
,
renderer
=
'templates/form.pt'
,
if
request
.
POST
:
if
'simpan'
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
)
save_request
(
request
,
dict
(
controls
))
return
route_list
(
request
)
elif
SESS_ADD_FAILED
in
request
.
session
:
return
self
.
session_failed
(
SESS_ADD_FAILED
)
return
dict
(
form
=
form
)
# return dict(form=form.render())
########
# Edit #
########
@view_config
(
route_name
=
'eselon-edit'
,
renderer
=
'templates/eselon/edt.pt'
,
permission
=
'eselon'
)
permission
=
'eselon'
)
def
view_edt
(
self
):
def
view_edit
(
self
):
request
=
self
.
req
return
super
()
.
view_edit
()
q
=
query_id
(
request
)
row
=
q
.
first
()
if
not
row
:
return
id_not_found
(
request
)
uid
=
row
.
id
form
=
get_form
(
request
,
EditSchema
)
@view_config
(
route_name
=
'eselon-view'
,
renderer
=
'templates/form.pt'
,
if
request
.
POST
:
if
'simpan'
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
)
save_request
(
request
,
dict
(
controls
),
row
)
return
route_list
(
request
)
elif
SESS_EDIT_FAILED
in
request
.
session
:
return
self
.
session_failed
(
SESS_EDIT_FAILED
)
values
=
row
.
to_dict
()
form
.
render
(
appstruct
=
values
)
return
dict
(
form
=
form
)
@view_config
(
route_name
=
'eselon-view'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'eselon'
)
permission
=
'eselon'
)
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
)
uid
=
row
.
id
form
=
Form
(
EditSchema
(),
buttons
=
(
'tutup'
,))
if
request
.
POST
:
return
route_list
(
request
)
values
=
row
.
to_dict
()
form
=
form
.
render
(
appstruct
=
values
,
readonly
=
True
)
return
dict
(
form
=
form
,
scripts
=
""
)
##########
# Delete #
##########
@view_config
(
route_name
=
'eselon-delete'
,
renderer
=
'templates/form_input.pt'
,
@view_config
(
route_name
=
'eselon-delete'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'eselon'
)
permission
=
'eselon'
)
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
=
Form
(
EditSchema
(),
buttons
=
(
'hapus'
,
'batal'
))
def
form_validator
(
self
,
form
,
value
):
if
request
.
POST
:
if
'hapus'
in
request
.
POST
:
msg
=
'eselon ID
%
d
%
s sudah dihapus.'
%
(
row
.
id
,
row
.
nama
)
q
.
delete
()
DBSession
.
flush
()
request
.
session
.
flash
(
msg
)
return
route_list
(
request
)
form
.
set_appstruct
(
row
.
to_dict
())
return
dict
(
row
=
row
,
form
=
form
.
render
(
readonly
=
True
),
scripts
=
''
)
#######
# Add #
#######
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'
%
(
...
@@ -235,69 +151,3 @@ def form_validator(form, value):
...
@@ -235,69 +151,3 @@ def form_validator(form, value):
err_nama
()
err_nama
()
elif
found
:
elif
found
:
err_nama
()
err_nama
()
# edit
# ruang = len(value['ruang'])
# if ruang > 1:
# err_ruang()
def
get_form
(
request
,
class_form
,
row
=
None
):
schema
=
class_form
(
validator
=
form_validator
)
schema
=
schema
.
bind
()
schema
.
request
=
request
if
row
:
schema
.
deserialize
(
row
)
return
Form
(
schema
,
buttons
=
(
'simpan'
,
'batal'
))
def
save
(
values
,
user
,
row
=
None
):
if
not
row
:
row
=
Eselon
()
values
[
'created'
]
=
datetime
.
now
()
values
[
'create_uid'
]
=
user
.
id
else
:
values
[
'updated'
]
=
datetime
.
now
()
values
[
'update_uid'
]
=
user
.
id
# values['pangkat'] # TODO: pangkat
row
.
from_dict
(
values
)
# edit
row
.
updated
=
datetime
.
now
()
row
.
update_uid
=
user
.
id
row
.
status
=
'status'
in
values
and
values
[
'status'
]
and
1
or
0
row
.
level_id
=
1
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
(
'eselon sudah disimpan.'
)
def
route_list
(
request
):
return
HTTPFound
(
location
=
request
.
route_url
(
'eselon'
))
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
(
Eselon
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
def
id_not_found
(
request
):
msg
=
'eselon ID
%
s Tidak Ditemukan.'
%
request
.
matchdict
[
'id'
]
request
.
session
.
flash
(
msg
,
'error'
)
return
route_list
(
request
)
opensipkd/base/views/groups.py
View file @
dc70cf1
import
colander
import
colander
from
datatables
import
(
ColumnDT
,
DataTables
,
)
from
deform
import
widget
from
deform
import
widget
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.i18n
import
TranslationStringFactory
from
pyramid.i18n
import
TranslationStringFactory
from
pyramid.view
import
view_config
from
pyramid.view
import
view_config
...
@@ -73,18 +68,13 @@ class Views(BaseView):
...
@@ -73,18 +68,13 @@ class Views(BaseView):
@view_config
(
@view_config
(
route_name
=
'group-act'
,
renderer
=
'json'
,
permission
=
'user-view'
)
route_name
=
'group-act'
,
renderer
=
'json'
,
permission
=
'user-view'
)
def
view_act
(
self
):
def
view_act
(
self
):
params
=
self
.
params
return
super
(
Views
,
self
)
.
view_act
()
def
next_act
(
self
):
request
=
self
.
req
request
=
self
.
req
url_dict
=
request
.
matchdict
url_dict
=
request
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
params
=
self
.
params
columns
=
[
ColumnDT
(
Group
.
id
,
mData
=
"id"
),
if
url_dict
[
'act'
]
==
'hon'
:
ColumnDT
(
Group
.
group_name
,
mData
=
"group_name"
),
ColumnDT
(
Group
.
description
,
mData
=
"description"
),
ColumnDT
(
Group
.
member_count
,
mData
=
"member_count"
)]
q
=
DBSession
.
query
()
.
select_from
(
Group
)
.
order_by
(
Group
.
group_name
)
row_table
=
DataTables
(
request
.
GET
,
q
,
columns
)
return
row_table
.
output_result
()
elif
url_dict
[
'act'
]
==
'hon'
:
term
=
'term'
in
params
and
params
[
'term'
]
or
''
term
=
'term'
in
params
and
params
[
'term'
]
or
''
q
=
DBSession
.
query
(
Group
.
id
,
Group
.
description
)
.
filter
(
q
=
DBSession
.
query
(
Group
.
id
,
Group
.
description
)
.
filter
(
Group
.
description
.
ilike
(
'
%
{}
%
'
.
format
(
term
)))
.
\
Group
.
description
.
ilike
(
'
%
{}
%
'
.
format
(
term
)))
.
\
...
@@ -156,9 +146,6 @@ class Views(BaseView):
...
@@ -156,9 +146,6 @@ class Views(BaseView):
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_delete
(
self
):
def
view_delete
(
self
):
return
super
(
Views
,
self
)
.
view_delete
()
return
super
(
Views
,
self
)
.
view_delete
()
q
.
delete
()
request
.
session
.
flash
(
ts
)
return
HTTPFound
(
location
=
request
.
route_url
(
'group'
))
def
clean_name
(
s
):
def
clean_name
(
s
):
...
...
opensipkd/base/views/jabatan.py
View file @
dc70cf1
from
datetime
import
datetime
import
colander
import
colander
from
deform
import
(
from
deform
import
(
widget
,
)
Form
,
from
pyramid.view
import
(
view_config
,
)
widget
,
from
.partner_base
import
NamaSchema
ValidationFailure
,
)
from
pyramid.httpexceptions
import
(
HTTPFound
,
)
from
pyramid.view
import
(
view_config
,
)
from
opensipkd.tools.buttons
import
btn_cancel
,
btn_save
,
btn_delete
from
..models
import
(
from
..models
import
(
DBSession
,
DBSession
,
Jabatan
,
Jabatan
,
Eselon
Eselon
)
)
from
..views
import
ColumnDT
,
DataTables
,
BaseView
,
deferred_jenis
from
..views
import
BaseView
,
deferred_jenis
SESS_ADD_FAILED
=
'Tambah jabatan gagal'
SESS_ADD_FAILED
=
'Tambah jabatan gagal'
SESS_EDIT_FAILED
=
'Edit jabatan gagal'
SESS_EDIT_FAILED
=
'Edit jabatan gagal'
...
@@ -76,36 +64,37 @@ class EditSchema(AddSchema):
...
@@ -76,36 +64,37 @@ class EditSchema(AddSchema):
widget
=
widget
.
HiddenWidget
())
widget
=
widget
.
HiddenWidget
())
class
ListSchema
(
NamaSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
visible
=
False
)
class
ViewJabatan
(
BaseView
):
class
ViewJabatan
(
BaseView
):
@view_config
(
route_name
=
'jabatan'
,
renderer
=
'templates/jabatan/list.pt'
,
def
__init__
(
self
,
request
):
super
()
.
__init__
(
request
)
self
.
form_params
=
dict
(
scripts
=
""
)
self
.
list_url
=
'jabatan'
self
.
list_route
=
'jabatan'
self
.
add_schema
=
AddSchema
self
.
edit_schema
=
EditSchema
self
.
table
=
Jabatan
self
.
list_schema
=
ListSchema
@view_config
(
route_name
=
'jabatan'
,
renderer
=
'templates/table.pt'
,
permission
=
'jabatan'
)
permission
=
'jabatan'
)
def
view_list
(
self
):
def
view_list
(
self
):
return
dic
t
()
return
super
()
.
view_lis
t
()
@view_config
(
route_name
=
'jabatan-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'jabatan-act'
,
renderer
=
'json'
,
permission
=
'read'
)
permission
=
'read'
)
def
view_act
(
self
):
def
view_act
(
self
):
return
super
()
.
view_act
()
def
next_act
(
self
):
request
=
self
.
req
request
=
self
.
req
ses
=
request
.
session
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
(
Jabatan
.
id
,
mData
=
'id'
),
ColumnDT
(
Jabatan
.
kode
,
mData
=
'kode'
),
ColumnDT
(
Jabatan
.
nama
,
mData
=
'nama'
),
ColumnDT
(
Jabatan
.
nama_pendek
,
mData
=
'nama_pendek'
),
ColumnDT
(
Eselon
.
nama
,
mData
=
'eselon'
),
ColumnDT
(
Jabatan
.
jenis
,
mData
=
'jenis'
),
ColumnDT
(
Jabatan
.
status
,
mData
=
'status'
),
]
query
=
DBSession
.
query
()
.
select_from
(
Jabatan
)
.
\
outerjoin
(
Eselon
)
rowTable
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
rowTable
.
output_result
()
elif
url_dict
[
'act'
]
==
'hok'
:
term
=
'term'
in
params
and
params
[
'term'
]
or
''
term
=
'term'
in
params
and
params
[
'term'
]
or
''
qry
=
DBSession
.
query
(
Jabatan
)
.
\
qry
=
DBSession
.
query
(
Jabatan
)
.
\
filter
(
Jabatan
.
status
==
1
)
.
\
filter
(
Jabatan
.
status
==
1
)
.
\
...
@@ -171,105 +160,28 @@ class ViewJabatan(BaseView):
...
@@ -171,105 +160,28 @@ class ViewJabatan(BaseView):
return
r
return
r
@view_config
(
route_name
=
'jabatan-add'
,
@view_config
(
route_name
=
'jabatan-add'
,
renderer
=
'templates/form
_input
.pt'
,
renderer
=
'templates/form.pt'
,
permission
=
'jabatan'
)
permission
=
'jabatan'
)
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
=
""
)
# return dict(form=form.render())
@view_config
(
route_name
=
'jabatan-edit'
,
@view_config
(
route_name
=
'jabatan-edit'
,
renderer
=
'templates/form
_input
.pt'
,
renderer
=
'templates/form.pt'
,
permission
=
'jabatan'
)
permission
=
'jabatan'
)
def
view_edt
(
self
):
def
view_edit
(
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
)
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
)
vals
=
row
.
to_dict
()
values
=
{}
for
val
in
vals
:
if
vals
[
val
]:
values
[
val
]
=
vals
[
val
]
values
[
'nama_pendek'
]
=
row
.
nama_pendek
or
''
@view_config
(
route_name
=
'jabatan-view'
,
renderer
=
'templates/form.pt'
,
values
[
'nama_lain'
]
=
row
.
nama_lain
or
''
if
not
row
.
jenis
:
values
[
'jenis'
]
=
0
form
.
render
(
appstruct
=
values
)
return
dict
(
form
=
form
.
render
(),
scripts
=
""
)
@view_config
(
route_name
=
'jabatan-view'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'jabatan'
)
permission
=
'jabatan'
)
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
()
@view_config
(
route_name
=
'jabatan-delete'
,
renderer
=
'templates/form.pt'
,
if
not
row
.
jenis
:
values
[
'jenis'
]
=
0
form
.
render
(
appstruct
=
values
)
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
""
)
@view_config
(
route_name
=
'jabatan-delete'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'jabatan'
)
permission
=
'jabatan'
)
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
,))
def
form_validator
(
self
,
form
,
value
):
if
request
.
POST
:
if
'delete'
in
request
.
POST
:
msg
=
'Jabatan 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
()
if
not
row
.
jenis
:
values
[
'jenis'
]
=
0
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'
%
(
...
@@ -301,54 +213,3 @@ def form_validator(form, value):
...
@@ -301,54 +213,3 @@ def form_validator(form, value):
err_nama
()
err_nama
()
elif
found
:
elif
found
:
err_nama
()
err_nama
()
def
get_form
(
request
,
class_form
,
row
=
None
,
buttons
=
(
btn_save
,
btn_cancel
)):
schema
=
class_form
(
validator
=
form_validator
)
schema
=
schema
.
bind
(
daftar_jenis
=
JENIS
,
daftar_eselon
=
daftar_eselon
(),
)
schema
=
schema
.
bind
()
schema
.
request
=
request
if
row
:
schema
.
deserialize
(
row
)
return
Form
(
schema
,
buttons
=
buttons
)
def
save
(
values
,
user
,
row
=
None
):
if
not
row
:
row
=
Jabatan
()
values
[
'created'
]
=
datetime
.
now
()
values
[
'create_uid'
]
=
user
.
id
else
:
values
[
'updated'
]
=
datetime
.
now
()
values
[
'update_uid'
]
=
user
.
id
values
[
'status'
]
=
'status'
in
values
and
values
[
'status'
]
and
1
or
0
row
.
from_dict
(
values
)
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
(
'Jabatan sudah disimpan.'
)
def
route_list
(
request
):
return
HTTPFound
(
location
=
request
.
route_url
(
'jabatan'
))
def
query_id
(
request
):
return
DBSession
.
query
(
Jabatan
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
def
id_not_found
(
request
):
msg
=
'Jabatan ID
%
s Tidak Ditemukan.'
%
request
.
matchdict
[
'id'
]
request
.
session
.
flash
(
msg
,
'error'
)
return
route_list
(
request
)
opensipkd/base/views/kecamatan.py
View file @
dc70cf1
...
@@ -7,7 +7,7 @@ from pyramid.view import (view_config, )
...
@@ -7,7 +7,7 @@ from pyramid.view import (view_config, )
from
.
import
widget_os
from
.
import
widget_os
from
.dati2
import
dati2_widget
from
.dati2
import
dati2_widget
from
..models
import
DBSession
,
ResKecamatan
,
ResDati2
from
..models
import
DBSession
,
ResKecamatan
,
ResDati2
,
ResProvinsi
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
...detable
import
DeTable
from
...detable
import
DeTable
...
@@ -46,7 +46,7 @@ class ListSchema(colander.Schema):
...
@@ -46,7 +46,7 @@ class ListSchema(colander.Schema):
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
searchable
=
False
,
orderable
=
False
,
visible
=
False
)
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
searchable
=
False
,
orderable
=
False
,
visible
=
False
)
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
width
=
'100pt'
,
title
=
"Kode"
)
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
width
=
'100pt'
,
title
=
"Kode"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama"
)
kabupaten
=
colander
.
SchemaNode
(
colander
.
String
())
kabupaten
=
colander
.
SchemaNode
(
colander
.
String
()
,
field
=
ResDati2
.
nama
)
status
=
colander
.
SchemaNode
(
colander
.
Integer
(),
width
=
"30pt"
)
status
=
colander
.
SchemaNode
(
colander
.
Integer
(),
width
=
"30pt"
)
...
@@ -95,30 +95,10 @@ class Views(BaseView):
...
@@ -95,30 +95,10 @@ class Views(BaseView):
elif
found
:
elif
found
:
err_nama
()
err_nama
()
def
get_form
(
self
,
class_form
,
row
=
None
,
buttons
=
(
btn_save
,
btn_cancel
)):
schema
=
class_form
(
validator
=
self
.
form_validator
)
schema
=
schema
.
bind
(
request
=
self
.
req
,
dati2_list
=
ResDati2
.
get_list
())
schema
.
request
=
self
.
req
if
row
:
schema
.
deserialize
(
row
)
return
Form
(
schema
,
buttons
=
buttons
)
@view_config
(
route_name
=
'kecamatan-view'
,
@view_config
(
route_name
=
'kecamatan-view'
,
renderer
=
'templates/form.pt'
,
permission
=
'kecamatan'
)
renderer
=
'templates/form.pt'
,
permission
=
'kecamatan'
)
def
view_view
(
self
):
# row = query_id(request).first()
def
view_view
(
self
):
# row = query_id(request).first()
return
super
()
.
view_view
()
request
=
self
.
req
row
=
self
.
query_id
()
.
first
()
if
not
row
:
return
self
.
id_not_found
()
form
=
self
.
get_form
(
EditSchema
,
buttons
=
(
btn_close
,))
if
request
.
POST
:
return
self
.
route_list
()
form
.
set_appstruct
(
self
.
get_values
(
row
))
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
self
.
form_scripts
)
@view_config
(
route_name
=
'kecamatan'
,
@view_config
(
route_name
=
'kecamatan'
,
renderer
=
'templates/table.pt'
,
renderer
=
'templates/table.pt'
,
...
@@ -129,19 +109,15 @@ class Views(BaseView):
...
@@ -129,19 +109,15 @@ class Views(BaseView):
@view_config
(
route_name
=
'kecamatan-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'kecamatan-act'
,
renderer
=
'json'
,
permission
=
'view'
)
permission
=
'view'
)
def
view_act
(
self
):
def
view_act
(
self
):
return
super
()
.
view_act
()
def
list_join
(
self
,
query
):
return
query
.
join
(
ResDati2
,
ResDati2
.
id
==
ResKecamatan
.
dati2_id
)
def
next_act
(
self
):
request
=
self
.
req
request
=
self
.
req
url_dict
=
request
.
matchdict
url_dict
=
request
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
if
url_dict
[
'act'
]
==
'select'
:
columns
=
[
ColumnDT
(
ResKecamatan
.
id
,
mData
=
'id'
),
ColumnDT
(
ResKecamatan
.
kode
,
mData
=
'kode'
),
ColumnDT
(
ResKecamatan
.
nama
,
mData
=
'nama'
),
ColumnDT
(
ResKecamatan
.
status
,
mData
=
'status'
),
ColumnDT
(
ResDati2
.
nama
,
mData
=
'kabupaten'
),
]
query
=
DBSession
.
query
()
.
select_from
(
ResKecamatan
)
\
.
join
(
ResDati2
,
ResDati2
.
id
==
ResKecamatan
.
dati2_id
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
elif
url_dict
[
'act'
]
==
'select'
:
dati2_id
=
request
.
params
[
"dati2_id"
]
dati2_id
=
request
.
params
[
"dati2_id"
]
data
=
ResKecamatan
.
get_list
(
dati2_id
)
data
=
ResKecamatan
.
get_list
(
dati2_id
)
result
=
{
f
"{k[0]}"
:
k
[
1
]
for
k
in
data
}
result
=
{
f
"{k[0]}"
:
k
[
1
]
for
k
in
data
}
...
@@ -152,14 +128,28 @@ class Views(BaseView):
...
@@ -152,14 +128,28 @@ class Views(BaseView):
def
view_add
(
self
):
def
view_add
(
self
):
return
super
(
Views
,
self
)
.
view_add
()
return
super
(
Views
,
self
)
.
view_add
()
def
get_bindings
(
self
,
row
=
None
):
provinsi_list
=
ResProvinsi
.
get_list
()
kecamatan
=
row
dati2
=
kecamatan
and
kecamatan
.
dati2
or
None
dati2_list
=
dati2
and
ResDati2
.
get_list
(
dati2
.
provinsi_id
)
or
[]
return
dict
(
provinsi_list
=
provinsi_list
,
dati2_list
=
dati2_list
,
)
def
get_values
(
self
,
row
,
istime
=
False
):
d
=
super
()
.
get_values
(
row
,
istime
)
kecamatan
=
row
dati2
=
kecamatan
and
kecamatan
.
dati2
or
None
d
[
"provinsi_id"
]
=
dati2
and
dati2
.
provinsi_id
or
None
return
d
@view_config
(
route_name
=
'kecamatan-edit'
,
@view_config
(
route_name
=
'kecamatan-edit'
,
renderer
=
'templates/form.pt'
,
permission
=
'kecamatan'
)
renderer
=
'templates/form.pt'
,
permission
=
'kecamatan'
)
def
view_edt
(
self
):
def
view_edt
(
self
):
return
super
(
Views
,
self
)
.
view_edit
()
return
super
(
Views
,
self
)
.
view_edit
()
##########
# Delete
##########
@view_config
(
route_name
=
'kecamatan-delete'
,
@view_config
(
route_name
=
'kecamatan-delete'
,
renderer
=
'templates/form.pt'
,
permission
=
'kecamatan'
)
renderer
=
'templates/form.pt'
,
permission
=
'kecamatan'
)
def
view_delete
(
self
):
def
view_delete
(
self
):
...
...
opensipkd/base/views/log_app.py
View file @
dc70cf1
...
@@ -3,6 +3,7 @@ import json
...
@@ -3,6 +3,7 @@ import json
import
colander
import
colander
from
datatables
import
ColumnDT
from
datatables
import
ColumnDT
from
deform
import
Form
,
widget
from
deform
import
Form
,
widget
from
opensipkd.tools.buttons
import
btn_view
,
btn_delete
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.view
import
view_config
from
pyramid.view
import
view_config
...
@@ -23,7 +24,7 @@ class AddSchema(colander.Schema):
...
@@ -23,7 +24,7 @@ class AddSchema(colander.Schema):
missing
=
colander
.
drop
)
missing
=
colander
.
drop
)
msg
=
colander
.
SchemaNode
(
msg
=
colander
.
SchemaNode
(
colander
.
String
(),
colander
.
String
(),
widget
=
widget
.
TextAreaWidget
(
rows
=
10
,),
widget
=
widget
.
TextAreaWidget
(
rows
=
10
,
),
missing
=
colander
.
drop
)
missing
=
colander
.
drop
)
...
@@ -34,88 +35,46 @@ class EditSchema(AddSchema):
...
@@ -34,88 +35,46 @@ class EditSchema(AddSchema):
)
)
class
ListSchema
(
colander
.
Schema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
(),
visible
=
False
)
created_at
=
colander
.
SchemaNode
(
colander
.
DateTime
())
logger
=
colander
.
SchemaNode
(
colander
.
String
())
level
=
colander
.
SchemaNode
(
colander
.
String
())
msg
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
widget
.
TextAreaWidget
(
rows
=
10
,
),
missing
=
colander
.
drop
)
class
Views
(
BaseView
):
class
Views
(
BaseView
):
@view_config
(
route_name
=
'log'
,
renderer
=
'templates/list.pt'
,
def
__init__
(
self
,
request
):
super
()
.
__init__
(
request
)
self
.
form_params
=
dict
(
scripts
=
""
)
self
.
list_url
=
'log'
self
.
list_route
=
'log'
self
.
list_buttons
=
(
btn_view
,
btn_delete
)
# self.add_schema = AddSchema
self
.
edit_schema
=
EditSchema
self
.
table
=
Log
self
.
list_schema
=
ListSchema
@view_config
(
route_name
=
'log'
,
renderer
=
'templates/table.pt'
,
permission
=
'log'
)
permission
=
'log'
)
def
view_list
(
self
):
def
view_list
(
self
):
url
=
"log"
return
super
()
.
view_list
()
cols
=
[
{
'title'
:
"ID"
,
'data'
:
"id"
},
{
'title'
:
"Date/Time"
,
'data'
:
"created_at"
,
'width'
:
"150"
},
{
'title'
:
"Logger"
,
'data'
:
"logger"
,
'width'
:
"50"
},
# {'title': "Trace", 'data': "trace", 'width': "50"},
{
'title'
:
"Level"
,
'data'
:
"level"
,
'width'
:
"50"
},
{
'title'
:
"Message"
,
'data'
:
"msg"
},
]
col_defs
=
[{
"searchable"
:
False
,
"visible"
:
False
,
"targets"
:
[
0
]
}]
buttons
=
"btn_view"
return
dict
(
cols
=
cols
,
url
=
url
,
col_defs
=
json
.
dumps
(
col_defs
),
buttons
=
buttons
)
##########
# Action #
##########
@view_config
(
route_name
=
'log-act'
,
renderer
=
'json_rpc'
,
@view_config
(
route_name
=
'log-act'
,
renderer
=
'json_rpc'
,
permission
=
'log'
)
permission
=
'log'
)
def
view_act
(
self
):
def
view_act
(
self
):
request
=
self
.
req
return
super
()
.
view_act
()
url_dict
=
request
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
columns
=
[
ColumnDT
(
Log
.
id
,
mData
=
'id'
),
ColumnDT
(
Log
.
logger
,
mData
=
'logger'
),
ColumnDT
(
Log
.
level
,
mData
=
'level'
),
# ColumnDT(Log.trace, mData='trace'),
ColumnDT
(
Log
.
msg
,
mData
=
'msg'
),
ColumnDT
(
Log
.
created_at
,
mData
=
'created_at'
,
search_method
=
'date'
),
]
query
=
DBSession
.
query
()
.
select_from
(
Log
)
rowTable
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
rowTable
.
output_result
()
@view_config
(
route_name
=
'log-view'
,
renderer
=
'templates/form_input.pt'
,
@view_config
(
route_name
=
'log-view'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'log'
)
permission
=
'log'
)
def
view_view
(
self
):
def
view_view
(
self
):
request
=
self
.
req
return
super
()
.
view_view
()
q
=
self
.
query_id
()
row
=
q
.
first
()
if
not
row
:
return
self
.
id_not_found
()
form
=
self
.
get_form
(
EditSchema
,
buttons
=
(
"Tutup"
,))
if
request
.
POST
:
return
self
.
route_list
()
values
=
row
.
to_dict
()
form
.
set_appstruct
(
values
)
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
""
)
def
query_id
(
self
):
request
=
self
.
req
return
DBSession
.
query
(
Log
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
def
id_not_found
(
self
):
request
=
self
.
req
msg
=
'BillerModel ID
%
s Tidak Ditemukan.'
%
request
.
matchdict
[
'id'
]
request
.
session
.
flash
(
msg
,
'error'
)
return
self
.
route_list
()
def
route_list
(
self
):
request
=
self
.
req
return
HTTPFound
(
location
=
request
.
route_url
(
'log'
))
def
get_form
(
self
,
class_form
,
row
=
None
,
buttons
=
(
'simpan'
,
'batal'
)):
request
=
self
.
req
schema
=
class_form
(
validator
=
self
.
form_validator
)
schema
=
schema
.
bind
()
schema
.
request
=
request
if
row
:
schema
.
deserialize
(
row
)
return
Form
(
schema
,
buttons
=
buttons
)
def
form_validator
(
self
,
form
,
value
):
pass
opensipkd/base/views/parameter.py
View file @
dc70cf1
from
datetime
import
datetime
import
colander
import
colander
from
datatables
import
ColumnDT
,
DataTables
from
deform
import
(
widget
,
)
from
deform
import
(
from
pyramid.view
import
(
view_config
,
)
Form
,
widget
,
ValidationFailure
,
)
from
pyramid.httpexceptions
import
(
HTTPFound
,
)
from
pyramid.view
import
(
view_config
,
)
from
opensipkd.tools.buttons
import
btn_close
,
btn_cancel
,
btn_save
from
.
import
BaseView
from
..models
import
(
from
..models
import
(
DBSession
,
DBSession
,
Parameter
)
Parameter
)
# from okeuangan.views.base_view import BaseViews
SESS_ADD_FAILED
=
'Tambah parameter gagal'
SESS_EDIT_FAILED
=
'Edit parameter gagal'
class
AddSchema
(
colander
.
Schema
):
class
AddSchema
(
colander
.
Schema
):
kode
=
colander
.
SchemaNode
(
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
colander
.
String
(),
...
@@ -49,203 +31,58 @@ class AddSchema(colander.Schema):
...
@@ -49,203 +31,58 @@ class AddSchema(colander.Schema):
class
EditSchema
(
AddSchema
):
class
EditSchema
(
AddSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
(
readonly
=
True
))
widget
=
widget
.
HiddenWidget
(
readonly
=
True
),
# id = colander.SchemaNode(
visible
=
False
)
# colander.Integer(),
# oid="id",)
class
Views
(
BaseView
):
def
__init__
(
self
,
request
):
########
super
(
Views
,
self
)
.
__init__
(
request
)
# List #
self
.
form_params
=
dict
(
scripts
=
""
)
########
self
.
list_url
=
'parameter'
@view_config
(
route_name
=
'parameter'
,
renderer
=
'templates/parameter/list.pt'
,
self
.
list_route
=
'parameter'
self
.
add_schema
=
AddSchema
self
.
edit_schema
=
EditSchema
self
.
table
=
Parameter
self
.
list_schema
=
EditSchema
@view_config
(
route_name
=
'parameter'
,
renderer
=
'templates/table.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_list
(
request
):
def
view_list
(
self
):
return
dict
(
a
=
{}
)
return
super
()
.
view_list
(
)
@view_config
(
route_name
=
'parameter-act'
,
renderer
=
'json'
,
##########
# Action #
##########
@view_config
(
route_name
=
'parameter-act'
,
renderer
=
'json'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
parameter_act
(
request
):
def
view_act
(
self
):
ses
=
request
.
session
return
super
()
.
view_act
()
req
=
request
params
=
req
.
params
def
next_act
(
self
):
url_dict
=
req
.
matchdict
url_dict
=
self
.
req
.
matchdict
params
=
self
.
params
if
url_dict
[
'act'
]
==
'grid'
:
if
url_dict
[
'act'
]
==
'hon'
:
columns
=
[
ColumnDT
(
Parameter
.
id
,
mData
=
"id"
),
ColumnDT
(
Parameter
.
kode
,
mData
=
"kode"
),
ColumnDT
(
Parameter
.
nama
,
mData
=
"nama"
),
ColumnDT
(
Parameter
.
value
,
mData
=
"value"
),
ColumnDT
(
Parameter
.
status
,
mData
=
"status"
)]
query
=
DBSession
.
query
()
.
select_from
(
Parameter
)
row_table
=
DataTables
(
req
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
elif
url_dict
[
'act'
]
==
'hon'
:
term
=
'term'
in
params
and
params
[
'term'
]
or
''
term
=
'term'
in
params
and
params
[
'term'
]
or
''
rows
=
DBSession
.
query
(
Parameter
.
id
,
Parameter
.
nama
rows
=
DBSession
.
query
(
Parameter
.
id
,
Parameter
.
nama
)
.
\
)
.
filter
(
filter
(
Parameter
.
nama
.
ilike
(
'
%
{term}
%
'
.
format
(
term
=
term
)))
.
\
Parameter
.
nama
.
ilike
(
'
%
{term}
%
'
.
format
(
term
=
term
)))
.
\
order_by
(
Parameter
.
nama
)
.
all
()
order_by
(
Parameter
.
nama
)
.
all
()
r
=
[]
r
=
[
dict
(
id
=
k
[
0
],
value
=
k
[
1
])
for
k
in
rows
]
for
k
in
rows
:
d
=
dict
(
id
=
k
[
0
],
value
=
k
[
1
])
r
.
append
(
d
)
return
r
return
r
@view_config
(
route_name
=
'parameter-add'
,
renderer
=
'templates/form.pt'
,
#######
# Add #
#######
def
form_validator
(
form
,
value
):
pass
def
get_form
(
request
,
class_form
,
row
=
None
,
buttons
=
(
btn_save
,
btn_cancel
)):
schema
=
class_form
(
validator
=
form_validator
)
schema
=
schema
.
bind
()
# perm_choice=PERM_CHOICE)
schema
.
request
=
request
if
row
:
schema
.
deserialize
(
row
)
return
Form
(
schema
,
buttons
=
buttons
)
def
save
(
values
,
user
,
row
=
None
):
if
not
row
:
row
=
Parameter
()
row
.
created
=
datetime
.
now
()
row
.
create_uid
=
user
.
id
row
.
from_dict
(
values
)
row
.
updated
=
datetime
.
now
()
row
.
update_uid
=
user
.
id
row
.
status
=
'status'
in
values
and
values
[
'status'
]
and
1
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
(
'Parameter sudah disimpan.'
)
def
routes_list
(
request
):
return
HTTPFound
(
location
=
request
.
route_url
(
'parameter'
))
def
session_failed
(
request
,
session_name
):
r
=
dict
(
form
=
request
.
session
[
session_name
])
del
request
.
session
[
session_name
]
return
r
@view_config
(
route_name
=
'parameter-add'
,
renderer
=
'templates/parameter/add.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_add
(
request
):
def
view_add
(
self
):
req
=
request
return
super
()
.
view_add
()
ses
=
req
.
session
form
=
get_form
(
request
,
AddSchema
)
if
req
.
POST
:
if
'simpan'
in
req
.
POST
:
controls
=
list
(
req
.
POST
.
items
())
try
:
c
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
form
.
set_appstruct
(
e
.
cstruct
)
return
dict
(
form
=
form
)
save_request
(
request
,
dict
(
controls
))
return
routes_list
(
request
)
elif
SESS_ADD_FAILED
in
req
.
session
:
return
session_failed
(
request
,
SESS_ADD_FAILED
)
return
dict
(
form
=
form
)
@view_config
(
route_name
=
'parameter-edit'
,
renderer
=
'templates/form.pt'
,
########
# Edit #
########
def
query_id
(
request
):
return
DBSession
.
query
(
Parameter
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
def
id_not_found
(
request
):
msg
=
'Parameter ID
%
s Tidak Ditemukan.'
%
request
.
matchdict
[
'id'
]
request
.
session
.
flash
(
msg
,
'error'
)
return
routes_list
(
request
)
@view_config
(
route_name
=
'parameter-edit'
,
renderer
=
'templates/parameter/edit.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_edit
(
request
):
def
view_edit
(
self
):
row
=
Parameter
.
query_id
(
request
.
matchdict
[
'id'
])
.
first
()
return
super
()
.
view_edit
()
if
not
row
:
return
id_not_found
(
request
)
@view_config
(
route_name
=
'parameter-view'
,
renderer
=
'templates/form.pt'
,
form
=
get_form
(
request
,
EditSchema
)
if
request
.
POST
:
if
'save'
in
request
.
POST
:
controls
=
list
(
request
.
POST
.
items
())
try
:
c
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
form
.
set_appstruct
(
e
.
cstruct
)
return
dict
(
form
=
form
.
render
())
save_request
(
request
,
dict
(
controls
),
row
)
return
routes_list
(
request
)
elif
SESS_EDIT_FAILED
in
request
.
session
:
return
session_failed
(
request
,
SESS_EDIT_FAILED
)
values
=
row
.
to_dict
()
form
.
set_appstruct
(
values
)
return
dict
(
form
=
form
.
render
())
@view_config
(
route_name
=
'parameter-view'
,
renderer
=
'templates/parameter/edit.pt'
,
permission
=
'user-view'
)
permission
=
'user-view'
)
def
view_view
(
request
):
def
view_view
(
self
):
qry
=
query_id
(
request
)
return
super
()
.
view_view
()
row
=
qry
.
first
()
if
not
row
:
@view_config
(
route_name
=
'parameter-delete'
,
renderer
=
'templates/form.pt'
,
return
id_not_found
(
request
)
form
=
get_form
(
request
,
EditSchema
,
buttons
=
(
btn_close
,))
if
request
.
POST
:
return
routes_list
(
request
)
values
=
row
.
to_dict
()
form
.
set_appstruct
(
values
)
return
dict
(
form
=
form
.
render
(
readonly
=
True
))
##########
# Delete #
##########
@view_config
(
route_name
=
'parameter-delete'
,
renderer
=
'templates/parameter/delete.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_delete
(
request
):
def
view_delete
(
self
):
q
=
Parameter
.
query_id
(
request
.
matchdict
[
'id'
])
return
super
()
.
view_delete
()
row
=
q
.
first
()
if
not
row
:
return
id_not_found
(
request
)
form
=
Form
(
colander
.
Schema
(),
buttons
=
(
'hapus'
,
'batal'
))
if
request
.
POST
:
if
'hapus'
in
request
.
POST
:
msg
=
'Parameter ID
%
d
%
s sudah dihapus.'
%
(
row
.
id
,
row
.
nama
)
try
:
q
.
delete
()
DBSession
.
flush
()
except
:
msg
=
'Parameter ID
%
d
%
s tidak dapat dihapus.'
%
(
row
.
id
,
row
.
nama
)
request
.
session
.
flash
(
msg
)
return
routes_list
(
request
)
return
dict
(
row
=
row
,
form
=
form
.
render
())
opensipkd/base/views/partner_base.py
View file @
dc70cf1
...
@@ -6,16 +6,19 @@ from opensipkd.base.views.kecamatan import kecamatan_widget
...
@@ -6,16 +6,19 @@ from opensipkd.base.views.kecamatan import kecamatan_widget
from
opensipkd.base.views.provinsi
import
provinsi_widget
from
opensipkd.base.views.provinsi
import
provinsi_widget
class
Partner
Schema
(
colander
.
Schema
):
class
Nama
Schema
(
colander
.
Schema
):
kode
=
colander
.
SchemaNode
(
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
colander
.
String
(),
validator
=
colander
.
Length
(
max
=
32
),
validator
=
colander
.
Length
(
max
=
32
),
oid
=
"kode"
,
oid
=
"kode"
,
title
=
"Kode"
)
title
=
"Kode"
,
width
=
"100pt"
)
nama
=
colander
.
SchemaNode
(
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
colander
.
String
(),
validator
=
colander
.
Length
(
max
=
64
),
validator
=
colander
.
Length
(
max
=
64
),
oid
=
"nama"
)
oid
=
"nama"
)
class
PartnerSchema
(
NamaSchema
):
alamat_1
=
colander
.
SchemaNode
(
alamat_1
=
colander
.
SchemaNode
(
colander
.
String
(),
colander
.
String
(),
missing
=
colander
.
drop
,
missing
=
colander
.
drop
,
...
...
opensipkd/base/views/permission.py
View file @
dc70cf1
# from ..tools import row2dict, xls_reader
import
colander
import
colander
from
deform
import
(
from
deform
import
(
widget
,
)
Form
,
from
pyramid.view
import
(
view_config
,
)
widget
,
ValidationFailure
,
)
from
pyramid.httpexceptions
import
(
HTTPFound
,
)
from
pyramid.view
import
(
view_config
,
)
from
..models
import
DBSession
from
..models
import
Permission
from
..models
import
Permission
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
BaseView
SESS_ADD_FAILED
=
'Tambah permission gagal'
SESS_ADD_FAILED
=
'Tambah permission gagal'
SESS_EDIT_FAILED
=
'Edit permission gagal'
SESS_EDIT_FAILED
=
'Edit permission gagal'
...
@@ -33,194 +22,46 @@ class AddSchema(colander.Schema):
...
@@ -33,194 +22,46 @@ class AddSchema(colander.Schema):
class
EditSchema
(
AddSchema
):
class
EditSchema
(
AddSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
(),
widget
=
widget
.
HiddenWidget
(),
visible
=
False
)
)
class
ViewPermission
(
BaseView
):
class
ViewPermission
(
BaseView
):
########
def
__init__
(
self
,
request
):
# List #
super
()
.
__init__
(
request
)
########
self
.
form_params
=
dict
(
scripts
=
""
)
@view_config
(
route_name
=
'permission'
,
renderer
=
'templates/permission/list.pt'
,
self
.
list_url
=
'permission'
self
.
list_route
=
'permission'
self
.
add_schema
=
AddSchema
self
.
edit_schema
=
EditSchema
self
.
table
=
Permission
self
.
list_schema
=
EditSchema
@view_config
(
route_name
=
'permission'
,
renderer
=
'templates/table.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_list
(
self
):
def
view_list
(
self
):
return
dict
(
a
=
{}
)
return
super
()
.
view_list
(
)
##########
# Action #
##########
@view_config
(
route_name
=
'permission-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'permission-act'
,
renderer
=
'json'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_act
(
self
):
def
view_act
(
self
):
request
=
self
.
req
return
super
()
.
view_act
()
ses
=
request
.
session
params
=
request
.
params
url_dict
=
request
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
columns
=
[
ColumnDT
(
Permission
.
id
,
mData
=
'id'
),
ColumnDT
(
Permission
.
perm_name
,
mData
=
'perm_name'
),
ColumnDT
(
Permission
.
description
,
mData
=
'description'
),
]
query
=
DBSession
.
query
()
.
select_from
(
Permission
)
rowTable
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
rowTable
.
output_result
()
#######
# ADD #
#######
@view_config
(
route_name
=
'permission-add'
,
renderer
=
'templates/
permission/add
.pt'
,
@view_config
(
route_name
=
'permission-add'
,
renderer
=
'templates/
form
.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
'simpan'
in
request
.
POST
:
controls
=
request
.
POST
.
items
()
try
:
c
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
form
.
render
(
appstruct
=
e
.
cstruct
)
return
dict
(
form
=
form
)
save_request
(
request
,
dict
(
c
))
return
route_list
(
request
)
return
dict
(
form
=
form
)
@view_config
(
route_name
=
'permission-edit'
,
renderer
=
'templates/form.pt'
,
##########
# Edit #
##########
@view_config
(
route_name
=
'permission-edit'
,
renderer
=
'templates/permission/edt.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
)
uid
=
row
.
id
form
=
get_form
(
request
,
EditSchema
)
if
request
.
POST
:
if
'simpan'
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
)
save_request
(
request
,
dict
(
controls
),
row
)
return
route_list
(
request
)
val
=
row
.
to_dict
()
@view_config
(
route_name
=
'permission-delete'
,
renderer
=
'templates/form.pt'
,
values
=
{}
for
v
in
val
:
if
val
[
v
]:
values
[
v
]
=
val
[
v
]
form
.
render
(
appstruct
=
values
)
return
dict
(
form
=
form
)
##########
# Delete #
##########
@view_config
(
route_name
=
'permission-delete'
,
renderer
=
'templates/permission/del.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
=
Form
(
colander
.
Schema
(),
buttons
=
(
'hapus'
,
'batal'
))
if
request
.
POST
:
if
'hapus'
in
request
.
POST
:
msg
=
'permission ID
%
d sudah dihapus.'
%
(
row
.
id
)
q
.
delete
()
DBSession
.
flush
()
request
.
session
.
flash
(
msg
)
return
route_list
(
request
)
return
dict
(
row
=
row
,
form
=
form
.
render
())
#######
# Add #
#######
def
form_validator
(
form
,
value
):
# def err_kode():
# raise colander.Invalid(form,
# 'Kode %s sudah digunakan oleh %s' % (
# 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
:
uid
=
form
.
request
.
matchdict
[
'id'
]
q
=
DBSession
.
query
(
Permission
)
.
filter_by
(
id
=
uid
)
row
=
q
.
first
()
else
:
row
=
None
# q = Permission.query_kode(value['kode']) #DBSession.query(Permission).filter_by(kode=value['kode'])
# found = q.first()
# if row:
# if found and found.id != row.id:
# err_kode()
# elif found:
# err_kode()
def
get_form
(
request
,
class_form
,
row
=
None
):
schema
=
class_form
(
validator
=
form_validator
)
schema
=
schema
.
bind
()
schema
.
request
=
request
if
row
:
schema
.
deserialize
(
row
)
return
Form
(
schema
,
buttons
=
(
'simpan'
,
'batal'
))
def
save
(
values
,
user
,
row
=
None
):
if
not
row
:
row
=
Permission
()
values
[
'perm_name'
]
=
(
values
[
'perm_name'
])
values
[
'description'
]
=
(
values
[
'description'
])
row
.
from_dict
(
values
)
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
(
'Permission sudah disimpan.'
)
return
row
def
route_list
(
request
):
return
HTTPFound
(
location
=
request
.
route_url
(
'permission'
))
########
# Edit #
########
def
query_id
(
request
):
return
DBSession
.
query
(
Permission
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
def
id_not_found
(
request
):
msg
=
'Permission ID
%
s Tidak Ditemukan.'
%
request
.
matchdict
[
'id'
]
request
.
session
.
flash
(
msg
,
'error'
)
return
route_list
(
request
)
opensipkd/base/views/provinsi.py
View file @
dc70cf1
import
json
from
datetime
import
datetime
import
colander
import
colander
from
deform
import
(
Form
,
widget
,
)
from
deform
import
(
widget
,
)
from
opensipkd.tools.buttons
import
btn_cancel
,
btn_save
,
btn_close
,
btn_add
,
btn_edit
,
btn_delete
,
btn_view
from
pyramid.httpexceptions
import
(
HTTPFound
,
)
from
pyramid.view
import
(
view_config
,
)
from
pyramid.view
import
(
view_config
,
)
from
sqlalchemy.orm
import
aliased
from
.
import
widget_os
from
.
import
widget_os
from
..models
import
DBSession
,
ResProvinsi
,
kategori_provinsi
,
flush
from
..models
import
DBSession
,
ResProvinsi
,
kategori_provinsi
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
BaseView
SESS_ADD_FAILED
=
'Tambah provinsi gagal'
SESS_ADD_FAILED
=
'Tambah provinsi gagal'
SESS_EDIT_FAILED
=
'Edit provinsi gagal'
SESS_EDIT_FAILED
=
'Edit provinsi gagal'
...
@@ -42,7 +36,8 @@ class AddSchema(colander.Schema):
...
@@ -42,7 +36,8 @@ class AddSchema(colander.Schema):
class
EditSchema
(
AddSchema
):
class
EditSchema
(
AddSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
(
readonly
=
True
))
widget
=
widget
.
HiddenWidget
(
readonly
=
True
),
visible
=
False
)
class
ListSchema
(
colander
.
Schema
):
class
ListSchema
(
colander
.
Schema
):
...
@@ -116,16 +111,16 @@ class ViewProvinsi(BaseView):
...
@@ -116,16 +111,16 @@ class ViewProvinsi(BaseView):
return
super
(
ViewProvinsi
,
self
)
.
view_act
()
return
super
(
ViewProvinsi
,
self
)
.
view_act
()
@view_config
(
route_name
=
'provinsi-add'
,
@view_config
(
route_name
=
'provinsi-add'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'provinsi'
)
renderer
=
'templates/form.pt'
,
permission
=
'provinsi'
)
def
view_add
(
self
):
def
view_add
(
self
):
return
super
(
ViewProvinsi
,
self
)
.
view_add
()
return
super
(
ViewProvinsi
,
self
)
.
view_add
()
@view_config
(
route_name
=
'provinsi-edit'
,
@view_config
(
route_name
=
'provinsi-edit'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'provinsi'
)
renderer
=
'templates/form.pt'
,
permission
=
'provinsi'
)
def
view_edt
(
self
):
def
view_edt
(
self
):
return
super
(
ViewProvinsi
,
self
)
.
view_edit
()
return
super
(
ViewProvinsi
,
self
)
.
view_edit
()
@view_config
(
route_name
=
'provinsi-delete'
,
@view_config
(
route_name
=
'provinsi-delete'
,
renderer
=
'templates/form
_input
.pt'
,
permission
=
'provinsi'
)
renderer
=
'templates/form.pt'
,
permission
=
'provinsi'
)
def
view_delete
(
self
):
def
view_delete
(
self
):
return
super
(
ViewProvinsi
,
self
)
.
view_delete
()
return
super
(
ViewProvinsi
,
self
)
.
view_delete
()
opensipkd/base/views/routes.py
View file @
dc70cf1
from
pyramid.view
import
view_config
from
pyramid.httpexceptions
import
(
HTTPFound
,
HTTPNotFound
,
)
import
colander
import
colander
from
deform
import
(
from
deform
import
(
widget
,
)
Form
,
from
opensipkd.tools.buttons
import
btn_view
,
btn_edit
,
btn_delete
widget
,
from
pyramid.view
import
view_config
ValidationFailure
,
Button
,
from
.
import
BaseView
)
from
..models
import
(
DBSession
,
Route
,
)
from
..models
import
(
DBSession
,
Route
,
)
from
datatables
import
(
ColumnDT
,
DataTables
,
)
from
datetime
import
datetime
import
json
ReadOnlyWidget
=
widget
.
TextInputWidget
(
readonly
=
True
)
form_params
=
dict
(
scripts
=
""
)
list_params
=
dict
(
cols
=
[{
'title'
:
"ID"
,
'data'
:
"id"
},
{
'title'
:
"Kode"
,
'data'
:
"kode"
},
{
'title'
:
"Nama"
,
'data'
:
"nama"
},
{
'title'
:
"Path"
,
'data'
:
"path"
},
{
'title'
:
"Type"
,
'data'
:
"typ"
,
'class'
:
"text-center"
,
'width'
:
"50"
},
],
col_defs
=
json
.
dumps
([
{
"searchable"
:
False
,
"visible"
:
False
,
"targets"
:
[
0
],
},
{
"searchable"
:
True
,
"orderable"
:
True
,
"targets"
:
[
1
,
2
,
3
],
}
]),
buttons
=
'btn_view, btn_add, btn_edit_no_id, btn_delete, btn_close'
,
url
=
"/routes"
)
class
EditSchema
(
colander
.
Schema
):
class
EditSchema
(
colander
.
Schema
):
id
=
colander
.
SchemaNode
(
id
=
colander
.
SchemaNode
(
...
@@ -56,7 +16,38 @@ class EditSchema(colander.Schema):
...
@@ -56,7 +16,38 @@ class EditSchema(colander.Schema):
colander
.
String
(),
title
=
'Nama'
)
colander
.
String
(),
title
=
'Nama'
)
def
form_validator
(
form
,
values
):
class
ListSchema
(
colander
.
Schema
):
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
HiddenWidget
(),
visible
=
False
)
kode
=
colander
.
SchemaNode
(
colander
.
String
())
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
'Nama'
)
path
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
'Path'
)
type
=
colander
.
SchemaNode
(
colander
.
String
(),
width
=
"50pt"
)
class
Views
(
BaseView
):
def
__init__
(
self
,
request
):
super
()
.
__init__
(
request
)
self
.
form_params
=
dict
(
scripts
=
""
)
self
.
list_url
=
'routes'
self
.
list_route
=
'routes'
self
.
list_buttons
=
(
btn_view
,
btn_edit
,
btn_delete
)
# self.add_schema = AddSchema
self
.
edit_schema
=
EditSchema
self
.
table
=
Route
self
.
list_schema
=
ListSchema
@view_config
(
route_name
=
'routes'
,
renderer
=
'templates/table.pt'
,
permission
=
'edit-title'
)
def
view_list
(
self
):
return
super
()
.
view_list
()
def
form_validator
(
self
,
form
,
values
):
def
err_nama
():
def
err_nama
():
raise
colander
.
Invalid
(
raise
colander
.
Invalid
(
form
,
form
,
...
@@ -96,109 +87,13 @@ def form_validator(form, values):
...
@@ -96,109 +87,13 @@ def form_validator(form, values):
elif
found
:
elif
found
:
err_kode
()
err_kode
()
@view_config
(
########
# List #
########
@view_config
(
route_name
=
'routes'
,
renderer
=
'templates/list.pt'
,
permission
=
'edit-title'
)
def
view_list
(
request
):
return
list_params
##########
# Action #
##########
@view_config
(
route_name
=
'routes-act'
,
renderer
=
'json'
,
permission
=
'edit-title'
)
route_name
=
'routes-act'
,
renderer
=
'json'
,
permission
=
'edit-title'
)
def
routes_act
(
request
):
def
routes_act
(
self
):
ses
=
request
.
session
return
super
()
.
view_act
()
req
=
request
params
=
req
.
params
url_dict
=
req
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
columns
=
[]
columns
.
append
(
ColumnDT
(
Route
.
id
,
mData
=
"id"
))
columns
.
append
(
ColumnDT
(
Route
.
kode
,
mData
=
"kode"
))
columns
.
append
(
ColumnDT
(
Route
.
nama
,
mData
=
"nama"
))
columns
.
append
(
ColumnDT
(
Route
.
path
,
mData
=
"path"
))
columns
.
append
(
ColumnDT
(
Route
.
type
,
mData
=
"typ"
))
query
=
DBSession
.
query
()
.
select_from
(
Route
)
rowTable
=
DataTables
(
req
.
GET
,
query
,
columns
)
return
rowTable
.
output_result
()
elif
url_dict
[
'act'
]
==
'hon'
:
term
=
'term'
in
params
and
params
[
'term'
]
or
''
rows
=
DBSession
.
query
(
Route
.
id
,
Route
.
nama
)
.
filter
(
Route
.
nama
.
ilike
(
'
%
{term}
%
'
.
format
(
term
=
term
)))
.
\
order_by
(
Route
.
nama
)
.
all
()
r
=
[]
for
k
in
rows
:
d
=
dict
(
id
=
k
[
0
],
value
=
k
[
1
])
r
.
append
(
d
)
return
r
@view_config
(
def
get_form
(
request
,
class_form
,
row
=
None
):
route_name
=
'routes-edit'
,
renderer
=
'templates/form.pt'
,
schema
=
class_form
()
# validator=form_validator
schema
.
request
=
request
return
Form
(
schema
,
buttons
=
(
'simpan'
,
'tutup'
))
def
save
(
values
,
user
,
row
=
None
):
if
not
row
:
row
=
Route
()
row
.
created
=
datetime
.
now
()
row
.
create_uid
=
user
.
id
row
.
from_dict
(
values
)
row
.
updated
=
datetime
.
now
()
row
.
update_uid
=
user
.
id
row
.
status
=
'status'
in
values
and
values
[
'status'
]
and
1
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
(
'Routes sudah disimpan.'
)
def
routes_list
(
request
):
return
HTTPFound
(
location
=
request
.
route_url
(
'routes'
))
########
# Edit #
########
def
query_id
(
request
):
return
DBSession
.
query
(
Route
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
@view_config
(
route_name
=
'routes-edit'
,
renderer
=
'templates/form-simple.pt'
,
permission
=
'edit-title'
)
permission
=
'edit-title'
)
def
view_routes_edit
(
request
):
def
view_edit
(
self
):
row
=
Route
.
query_id
(
request
.
matchdict
[
'id'
])
.
first
()
return
super
()
.
view_edit
()
if
not
row
:
return
HTTPNotFound
()
form
=
get_form
(
request
,
EditSchema
)
if
request
.
POST
:
if
'simpan'
in
request
.
POST
:
controls
=
list
(
request
.
POST
.
items
())
try
:
c
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
form
.
render
(
e
.
cstruct
)
return
dict
(
form
=
form
)
save_request
(
request
,
dict
(
c
),
row
)
return
routes_list
(
request
)
values
=
row
.
to_dict
()
return
dict
(
form
=
form
.
render
(
appstruct
=
values
))
form
.
set_appstruct
(
values
)
return
dict
(
form
=
form
)
opensipkd/base/views/user.py
View file @
dc70cf1
...
@@ -180,40 +180,6 @@ class Views(BaseView):
...
@@ -180,40 +180,6 @@ class Views(BaseView):
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_edit
(
self
):
def
view_edit
(
self
):
return
super
(
Views
,
self
)
.
view_edit
()
return
super
(
Views
,
self
)
.
view_edit
()
# q = DBSession.query(User).filter_by(id=request.matchdict['id'])
# if request.user.company_id:
# q = q.filter_by(company_id=request.user.company_id)
# user = q.first()
# if not user:
# return HTTPNotFound()
# if user.id == request.user.id:
# form = get_form(request, AddSchema, user)
# else:
# if 'opensipkd.webr.models' in get_modules():
# form = get_form(request, EditSchema2, user)
# else:
# form = get_form(request, EditSchema, user)
# resp = dict(title=_('Edit user'))
# if not request.POST:
# d = user.to_dict()
# d['groups'] = user_group_set(user)
# resp['form'] = form.render(appstruct=d)
# return resp
# if 'save' not in request.POST:
# return HTTPFound(location=request.route_url('user'))
# items = request.POST.items()
# try:
# c = form.validate(items)
# except ValidationFailure:
# resp['form'] = form.render()
# return resp
# update(request, user, dict(c.items()))
# data = dict(username=user.user_name)
# ts = _('user-updated', default='${username} profile updated', mapping=data)
# request.session.flash(ts)
# return HTTPFound(location=request.route_url('user'))
@view_config
(
@view_config
(
route_name
=
'user-view'
,
renderer
=
'templates/form.pt'
,
route_name
=
'user-view'
,
renderer
=
'templates/form.pt'
,
...
...
opensipkd/base/views/widget_os.py
View file @
dc70cf1
...
@@ -181,8 +181,8 @@ class Select2MsWidget(Select2Widget):
...
@@ -181,8 +181,8 @@ class Select2MsWidget(Select2Widget):
See `select2 docs on tagging <https://select2.org/tagging>`_ for
See `select2 docs on tagging <https://select2.org/tagging>`_ for
more details.
more details.
"""
"""
template
=
"select2_ms.pt"
template
=
"select2_ms.pt"
class
QtyWidget
(
Widget
):
class
QtyWidget
(
Widget
):
template
=
"opensipkd.base:/views/templates/qty.pt"
template
=
"opensipkd.base:/views/templates/qty.pt"
...
...
opensipkd/base/views/widgets/readonly/select.pt
View file @
dc70cf1
...
@@ -22,5 +22,4 @@
...
@@ -22,5 +22,4 @@
>${description}</p>
>${description}</p>
</tal:block>
</tal:block>
</tal:if>
</tal:if>
</tal:loop>
</tal:loop>
opensipkd/detable/detable.py
View file @
dc70cf1
...
@@ -11,6 +11,8 @@ from deform import field
...
@@ -11,6 +11,8 @@ from deform import field
from
.
import
widget
from
.
import
widget
log
=
logging
.
getLogger
(
__name__
)
log
=
logging
.
getLogger
(
__name__
)
class
DeTable
(
field
.
Field
):
class
DeTable
(
field
.
Field
):
"""
"""
Field representing an entire form.
Field representing an entire form.
...
@@ -92,6 +94,7 @@ class DeTable(field.Field):
...
@@ -92,6 +94,7 @@ class DeTable(field.Field):
"""
"""
css_class
=
"deform"
# bw compat only; pass a widget to override
css_class
=
"deform"
# bw compat only; pass a widget to override
def
__init__
(
def
__init__
(
self
,
self
,
schema
,
schema
,
...
@@ -117,7 +120,7 @@ class DeTable(field.Field):
...
@@ -117,7 +120,7 @@ class DeTable(field.Field):
btn_delete_js
=
"{window.location = o
%
sUri+'/'+m
%
sID+'/delete
%
s';}"
%
(
tableid
,
tableid
,
params
)
btn_delete_js
=
"{window.location = o
%
sUri+'/'+m
%
sID+'/delete
%
s';}"
%
(
tableid
,
tableid
,
params
)
btn_csv_js
=
"{window.location = o
%
sUri+'/csv/act
%
s';}"
%
(
tableid
,
params
)
btn_csv_js
=
"{window.location = o
%
sUri+'/csv/act
%
s';}"
%
(
tableid
,
params
)
btn_pdf_js
=
"{window.open(o
%
sUri+'/pdf/act
%
s');}"
%
(
tableid
,
params
)
btn_pdf_js
=
"{window.open(o
%
sUri+'/pdf/act
%
s');}"
%
(
tableid
,
params
)
action_suffix
=
f
"{action_suffix}{params}"
action_suffix
=
f
"{action_suffix}{params}"
field
.
Field
.
__init__
(
self
,
schema
,
**
kw
)
field
.
Field
.
__init__
(
self
,
schema
,
**
kw
)
_buttons
=
[]
_buttons
=
[]
for
button
in
buttons
:
for
button
in
buttons
:
...
@@ -146,10 +149,9 @@ class DeTable(field.Field):
...
@@ -146,10 +149,9 @@ class DeTable(field.Field):
table_widget
=
getattr
(
schema
,
"widget"
,
None
)
table_widget
=
getattr
(
schema
,
"widget"
,
None
)
if
table_widget
is
None
:
if
table_widget
is
None
:
table_widget
=
widget
.
TableWidget
()
table_widget
=
widget
.
TableWidget
()
self
.
widget
=
table_widget
self
.
widget
=
table_widget
columns
=
[]
columns
=
[]
cols2
=
[]
cols2
=
[]
for
f
in
schema
:
for
f
in
schema
:
d
=
{
'data'
:
f
.
name
}
d
=
{
'data'
:
f
.
name
}
data
=
[]
data
=
[]
...
@@ -160,7 +162,7 @@ class DeTable(field.Field):
...
@@ -160,7 +162,7 @@ class DeTable(field.Field):
if
hasattr
(
f
,
'aligned'
):
if
hasattr
(
f
,
'aligned'
):
d
[
"className"
]
=
f
.
aligned
d
[
"className"
]
=
f
.
aligned
data
.
append
(
f
"className:
{f.aligned}
"
)
data
.
append
(
f
"className:
'{f.aligned}'
"
)
if
hasattr
(
f
,
'searchable'
):
if
hasattr
(
f
,
'searchable'
):
d
[
"searchable"
]
=
f
.
searchable
d
[
"searchable"
]
=
f
.
searchable
data
.
append
(
f
"searchable: {f.searchable}"
)
data
.
append
(
f
"searchable: {f.searchable}"
)
...
@@ -173,30 +175,40 @@ class DeTable(field.Field):
...
@@ -173,30 +175,40 @@ class DeTable(field.Field):
d
[
"orderable"
]
=
f
.
orderable
d
[
"orderable"
]
=
f
.
orderable
data
.
append
(
f
"orderable: {f.orderable}"
)
data
.
append
(
f
"orderable: {f.orderable}"
)
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
2
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
[
"render"
]
=
f
"<script>$.fn.dataTable.render.number( '{separator}', '{decimal}', {point}, '{currency}' )</script>"
d
[
"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"):
# data.append(f'renderer: $.fn.dataTable.render.number( "{separator}", "{decimal}", {point}, "{currency}" )')
# s = """function ( data, type, row, meta ) {
# return '<a href="'+data+'">Download</a>';
# }"""
# d["render"] = s
columns
.
append
(
d
)
columns
.
append
(
d
)
cols2
.
append
(
data
)
cols2
.
append
(
data
)
# columns.append(dict(title="Action",
# data='id',
# width="40pt",
# orderable=False,
# align="text-center",
# searchable=False))
self
.
columns
=
json
.
dumps
(
columns
)
self
.
columns
=
json
.
dumps
(
columns
)
self
.
columns
=
self
.
columns
.
replace
(
'"<script>'
,
""
)
.
replace
(
'</script>"'
,
""
)
self
.
columns
=
self
.
columns
.
replace
(
'"<script>'
,
""
)
.
replace
(
'</script>"'
,
""
)
.
replace
(
"
\n
"
,
""
)
# self.columns = columns
# self.columns = columns
# self.columns = json.dumps(cols2)
# self.columns = json.dumps(cols2)
self
.
url
=
action
self
.
url
=
action
self
.
url_suffix
=
action_suffix
self
.
url_suffix
=
action_suffix
self
.
sorts
=
sorts
self
.
sorts
=
sorts
self
.
paginates
=
paginates
self
.
paginates
=
paginates
self
.
filters
=
filters
self
.
filters
=
filters
class
Button
(
object
):
class
Button
(
object
):
"""
"""
...
...
opensipkd/detable/templates/detable.pt
View file @
dc70cf1
...
@@ -29,8 +29,8 @@
...
@@ -29,8 +29,8 @@
class="table table-bordered table-hover table-condensed dataTable no-footer">
class="table table-bordered table-hover table-condensed dataTable no-footer">
<thead>
<thead>
<tr>
<tr>
<th tal:repeat="child field">${child.title}
<th tal:repeat="child field">${child.title}
</th>
</th
>
<!--? <th>Action</th>--
>
</tr>
</tr>
</thead>
</thead>
<tbody>
<tbody>
...
@@ -85,8 +85,7 @@
...
@@ -85,8 +85,7 @@
[10, 25, 50, 100],
[10, 25, 50, 100],
[10, 25, 50, 100]
[10, 25, 50, 100]
],
],
// columnDefs: [{ "visible": false, "searchable": false, "orderable": false, "targets": [0] }],
columns: ${structure:columns},
columns: ${columns},
"language": language,
"language": language,
});
});
...
...
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