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 ee8de6ab
authored
Sep 28, 2021
by
aa.gusti
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'master' of
https://git.opensipkd.com/aa.gusti/opensipkd-base
2 parents
3bd3d623
91807abe
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
321 additions
and
138 deletions
opensipkd/base/scripts/data/group_permission.csv
opensipkd/base/scripts/data/permissions.csv
opensipkd/base/scripts/data/routes.csv
opensipkd/base/views/base_views.py
opensipkd/base/views/posisi.py
opensipkd/base/views/templates/base3.1.pt
opensipkd/base/views/templates/base_list.pt
opensipkd/base/views/unit.py
opensipkd/base/scripts/data/group_permission.csv
View file @
ee8de6a
...
...
@@ -4,6 +4,7 @@ group_id/groups.group_name,perm_name
"Superuser","user-group"
"Superuser","upload-logo"
"Superuser","departemen"
"Superuser","partner-departemen"
"Superuser","partner"
"Superuser","parameter"
"Superuser","permission"
...
...
opensipkd/base/scripts/data/permissions.csv
View file @
ee8de6a
...
...
@@ -6,6 +6,7 @@ user-group,User Group
edit-title,Edit Title
upload-logo,Upload Logo
departemen,Departemen
partner-departemen,Partner Departemen
partner,Partner
parameter,Parameter
permission,Permission
...
...
opensipkd/base/scripts/data/routes.csv
View file @
ee8de6a
...
...
@@ -77,9 +77,9 @@ partner-add,/partner/add,Partner Add
departemen,/departemen,Organisasi
departemen-act,/departemen/{act}/act,Organisasi Act
departemen-add,/departemen/add,Organisasi Tambah
departemen-ed
t,/departemen/{id}/ed
t,Organisasi Edit
departemen-ed
it,/departemen/{id}/edi
t,Organisasi Edit
departemen-view,/departemen/{id}/view,Organisasi view
departemen-del
,/departemen/{id}/del
,Organisasi Hapus
departemen-del
ete,/departemen/{id}/delete
,Organisasi Hapus
departemen-rpt,/departemen/{rpt}/rpt,Organisasi Report
departemen-chg,/departemen/chg,Ubah Organisasi
departemen-upload,/departemen/upload,Upload Departemen,1,0
...
...
opensipkd/base/views/base_views.py
View file @
ee8de6a
...
...
@@ -192,7 +192,8 @@ class BaseView(object):
def
get_values
(
self
,
row
):
d
=
row
.
to_dict
()
d
[
"tanggal"
]
=
dmy
(
row
.
tanggal
)
if
'tanggal'
in
d
and
d
[
'tanggal'
]:
d
[
"tanggal"
]
=
dmy
(
row
.
tanggal
)
return
d
def
view_edit
(
self
):
...
...
opensipkd/base/views/posisi.py
View file @
ee8de6a
import
colander
import
json
from
deform
import
(
Form
,
widget
,
ValidationFailure
,
)
from
pyramid.httpexceptions
import
(
HTTPFound
,
)
from
pyramid.view
import
(
view_config
,
)
...
...
@@ -9,6 +10,7 @@ from ..models import DBSession as PartnerDBSession, DBSession
from
..models
import
Departemen
,
Jabatan
from
..models
import
Partner
,
PartnerDepartemen
from
opensipkd.tools
import
dmy
,
date_from_str
from
opensipkd.tools.buttons
import
btn_cancel
,
btn_save
,
btn_delete
,
btn_close
from
..views
import
ColumnDT
,
DataTables
,
BaseView
SESS_ADD_FAILED
=
'Tambah posisi partner gagal'
...
...
@@ -62,10 +64,12 @@ class AddSchema(colander.Schema):
title
=
"Jabatan"
)
mulai
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"mulai"
)
oid
=
"mulai"
,
widget
=
widget
.
TextInputWidget
(
css_class
=
"date"
))
selesai
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"selesai"
)
oid
=
"selesai"
,
widget
=
widget
.
TextInputWidget
(
css_class
=
"date"
))
class
EditSchema
(
AddSchema
):
...
...
@@ -73,21 +77,199 @@ class EditSchema(AddSchema):
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
())
class
ViewPartner
(
BaseView
):
def
__init__
(
self
,
request
):
super
(
ViewPartner
,
self
)
.
__init__
(
request
)
self
.
form_scripts
=
"""
$(document).ready(function () {
$('#pegawai_nm').typeahead({
"hint" : true,
"highlight": true,
"minLength": 1,
"remote" : {
url: "/partner/hon/act?term=
%
QUERY",
beforeSend: function () {
$('#partner_nm').addClass("loading");
},
filter: function(parsedResponse){
$('#partner_nm').removeClass('loading');
return parsedResponse;
}
},
},{
"name" : 'partner_nm',
"displayKey": 'value',
});
$('#partner_nm').bind('typeahead:selected', function(obj, datum, name) {
$('#partner_id').val(datum.id);
$('#partner_nm').val(datum.nama);
});
$('#departemen_nm').typeahead({
"hint" : true,
"highlight": true,
"minLength": 1,
"remote" : {
url: "/departemen/hon/act?term=
%
QUERY",
beforeSend: function () {
$('#departemen_nm').addClass("loading");
},
filter: function(parsedResponse){
$('#departemen_nm').removeClass('loading');
return parsedResponse;
}
},
},{
"name" : 'departemen_nm',
"displayKey": 'value',
});
$('#departemen_nm').bind('typeahead:selected', function(obj, datum, name) {
$('#departemen_id').val(datum.id);
});
$('#jabatan_nm').typeahead({
"hint" : true,
"highlight": true,
"minLength": 1,
"remote" : {
url: "/partner/departemen/hon_jabatannm/act?term=
%
QUERY",
beforeSend: function () {
$('#jabatan_nm').addClass("loading");
},
filter: function(parsedResponse){
$('#jabatan_nm').removeClass('loading');
return parsedResponse;
}
},
},{
"name" : 'jabatan_nm',
"displayKey": 'value',
});
$('#jabatan_nm').bind('typeahead:selected', function(obj, datum, name) {
$('#jabatan_id').val(datum.id);
$('#jabatan_nm').val(datum.value);
});
});
"""
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'
:
"NIP"
,
'data'
:
"nik"
,
'width'
:
'100pt'
},
{
'title'
:
"Nama"
,
'data'
:
"nama"
},
{
'title'
:
"Unit Kerja"
,
'data'
:
"departemen"
},
{
'title'
:
"Jabatan"
,
'data'
:
"jabatan"
},
{
'title'
:
"Jenis Jabatan"
,
'data'
:
"jenis"
},
{
'title'
:
"Mulai"
,
'data'
:
"mulai"
},
{
'title'
:
"Selesai"
,
'data'
:
"selesai"
},]
self
.
list_buttons
=
'btn_view, btn_add, btn_edit, btn_delete, '
\
'btn_close'
self
.
form_params
=
dict
(
scripts
=
""
)
self
.
list_url
=
'partner/departemen'
self
.
list_route
=
'partner-departemen'
@staticmethod
def
form_validator
(
form
,
value
):
def
err_partner
():
raise
colander
.
Invalid
(
form
,
'Partner Belum Dipilih'
)
def
err_departemen
():
raise
colander
.
Invalid
(
form
,
'Departemen Kerja Belum Dipilih'
)
def
err_jabatan
():
raise
colander
.
Invalid
(
form
,
'Partner Belum Dipilih'
)
if
not
value
[
'jabatan_id'
]:
err_jabatan
()
elif
not
value
[
'departemen_id'
]:
err_departemen
()
elif
not
value
[
'partner_id'
]:
err_partner
()
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
)
schema
.
request
=
self
.
req
if
row
:
schema
.
deserialize
(
row
)
return
Form
(
schema
,
buttons
=
buttons
)
def
save
(
self
,
values
,
user
,
row
=
None
):
if
not
row
:
row
=
PartnerDepartemen
()
row
.
from_dict
(
values
)
PartnerDBSession
.
add
(
row
)
PartnerDBSession
.
flush
()
return
row
def
save_request
(
self
,
values
,
row
=
None
):
request
=
self
.
req
if
'id'
in
request
.
matchdict
:
values
[
'id'
]
=
request
.
matchdict
[
'id'
]
if
'mulai'
in
values
:
if
values
[
'mulai'
]:
values
[
'mulai'
]
=
date_from_str
(
values
[
'mulai'
])
else
:
values
[
'mulai'
]
=
None
if
'selesai'
in
values
:
if
values
[
'selesai'
]:
values
[
'selesai'
]
=
date_from_str
(
values
[
'selesai'
])
else
:
values
[
'selesai'
]
=
None
query_struktural
=
DBSession
.
query
(
Jabatan
.
jenis
)
.
\
filter
(
Jabatan
.
id
==
values
[
'jabatan_id'
])
.
scalar
()
values
[
'struktural_id'
]
=
query_struktural
row
=
self
.
save
(
values
,
request
.
user
,
row
)
request
.
session
.
flash
(
'Posisi Partner sudah disimpan.'
)
def
route_list
(
self
,
):
return
HTTPFound
(
location
=
self
.
req
.
route_url
(
self
.
list_route
))
def
session_failed
(
self
,
session_name
):
r
=
dict
(
form
=
self
.
request
.
session
[
session_name
])
del
self
.
request
.
session
[
session_name
]
return
r
def
query_id
(
self
):
return
PartnerDBSession
.
query
(
PartnerDepartemen
)
.
filter_by
(
id
=
self
.
req
.
matchdict
[
'id'
])
def
id_not_found
(
self
):
msg
=
'Posisi Partner ID
%
s Tidak Ditemukan.'
%
self
.
req
.
matchdict
[
'id'
]
self
.
request
.
session
.
flash
(
msg
,
'error'
)
return
route_list
()
########
# List #
########
@view_config
(
route_name
=
'partner-departemen'
,
renderer
=
'templates/
posisi/
list.pt'
,
permission
=
'
partner-departemen
'
)
@view_config
(
route_name
=
'partner-departemen'
,
renderer
=
'templates/list.pt'
,
permission
=
'
view
'
)
def
view_list
(
self
):
return
dict
(
a
=
{}
)
return
super
()
.
view_list
(
)
##########
# Action #
##########
@view_config
(
route_name
=
'partner-departemen-act'
,
renderer
=
'json'
,
permission
=
'
read
'
)
permission
=
'
view
'
)
def
view_act
(
self
):
request
=
self
.
req
ses
=
request
.
session
...
...
@@ -204,63 +386,84 @@ class ViewPartner(BaseView):
r
.
append
(
d
)
return
r
@view_config
(
route_name
=
'partner-departemen-view'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'partner-departemen'
)
def
view_view
(
self
):
# row = query_id(request).first()
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
()
values
=
row
.
to_dict
()
values
[
'nama'
]
=
row
.
partner
.
nama
values
[
'jabatan'
]
=
row
.
jabatan
.
nama
values
[
'departemen'
]
=
row
.
departemen
.
nama
values
[
'mulai'
]
=
dmy
(
row
.
mulai
)
values
[
'selesai'
]
=
dmy
(
row
.
selesai
)
if
not
row
.
struktural_id
:
values
[
'struktural_id'
]
=
0
else
:
jb
=
Jabatan
.
query_id
(
row
.
struktural_id
)
.
first
()
if
jb
:
values
[
'struktural_nm'
]
=
jb
.
nama
form
.
set_appstruct
(
self
.
get_values
(
row
,
values
))
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
self
.
form_scripts
)
#########
# Add #
#########
@view_config
(
route_name
=
'partner-departemen-add'
,
renderer
=
'templates/
posisi/add
.pt'
,
permission
=
'partner-departemen
-add
'
)
@view_config
(
route_name
=
'partner-departemen-add'
,
renderer
=
'templates/
form_input
.pt'
,
permission
=
'partner-departemen'
)
def
view_add
(
self
):
request
=
self
.
req
form
=
get_form
(
request
,
AddSchema
)
form
=
self
.
get_form
(
AddSchema
)
values
=
{}
if
request
.
POST
:
if
's
impan
'
in
request
.
POST
:
if
's
ave
'
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
session_failed
(
request
,
SESS_ADD_FAILED
)
form
.
render
(
appstruct
=
e
.
cstruct
)
return
dict
(
form
=
form
.
render
(),
scripts
=
self
.
form_scripts
)
self
.
save_request
(
dict
(
controls
))
return
self
.
route_list
()
values
[
'departemen_id'
]
=
self
.
ses
[
'departemen_id'
]
values
[
'departemen_nm'
]
=
self
.
ses
[
'departemen_nm'
]
values
[
'departemen_kd'
]
=
self
.
ses
[
'departemen_kd'
]
# values['jabatan_id'] = self.ses['jabatan']
# values['partner_id'] = self.ses['partner_id']
form
.
set_appstruct
(
values
)
return
dict
(
form
=
form
)
# return dict(form=form.render())
return
dict
(
form
=
form
.
render
(),
scripts
=
self
.
form_scripts
)
##########
# Edit #
##########
@view_config
(
route_name
=
'partner-departemen-edit'
,
renderer
=
'templates/
posisi/ed
t.pt'
,
@view_config
(
route_name
=
'partner-departemen-edit'
,
renderer
=
'templates/
form_inpu
t.pt'
,
permission
=
'partner-departemen'
)
def
view_edt
(
self
):
request
=
self
.
req
q
=
query_id
(
request
)
row
=
q
.
first
()
row
=
self
.
query_id
()
.
first
()
if
not
row
:
return
id_not_found
(
request
)
uid
=
row
.
id
return
self
.
id_not_found
()
form
=
get_form
(
request
,
EditSchema
)
form
=
self
.
get_form
(
EditSchema
)
if
request
.
POST
:
if
's
impan
'
in
request
.
POST
:
if
's
ave
'
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
)
return
dict
(
form
=
form
.
render
(),
scripts
=
self
.
form_scripts
)
self
.
save_request
(
dict
(
controls
),
row
)
return
self
.
route_list
()
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
()
values
[
'nama'
]
=
row
.
partner
.
nama
values
[
'jabatan'
]
=
row
.
jabatan
.
nama
...
...
@@ -274,25 +477,24 @@ class ViewPartner(BaseView):
if
jb
:
values
[
'struktural_nm'
]
=
jb
.
nama
form
.
render
(
appstruct
=
values
)
return
dict
(
form
=
form
)
form
.
set_appstruct
(
self
.
get_values
(
row
,
values
)
)
return
dict
(
form
=
form
.
render
(),
scripts
=
self
.
form_scripts
)
##########
# Delete #
##########
@view_config
(
route_name
=
'partner-departemen-delete'
,
renderer
=
'templates/
posisi/del
.pt'
,
permission
=
'partner-departemen
-delete
'
)
@view_config
(
route_name
=
'partner-departemen-delete'
,
renderer
=
'templates/
form_input
.pt'
,
permission
=
'partner-departemen'
)
def
view_del
(
self
):
request
=
self
.
req
q
=
query_id
(
request
)
q
=
self
.
query_id
(
)
row
=
q
.
first
()
if
not
row
:
return
id_not_found
(
request
)
return
self
.
id_not_found
(
)
form
=
Form
(
colander
.
Schema
(),
buttons
=
(
'hapus'
,
'batal'
))
if
request
.
POST
:
if
'
hapus
'
in
request
.
POST
:
if
'
delete
'
in
request
.
POST
:
msg
=
'Posisi Partner ID
%
d
%
s sudah dihapus.'
%
(
row
.
id
,
row
.
partner
.
nama
)
# qry_login = PartnerLogin.query_partner(request.params['id'])
# if qry_login.first():
...
...
@@ -304,91 +506,26 @@ class ViewPartner(BaseView):
q
.
delete
()
PartnerDBSession
.
flush
()
request
.
session
.
flash
(
msg
)
return
route_list
(
request
)
return
dict
(
row
=
row
,
form
=
form
.
render
())
def
form_validator
(
form
,
value
):
def
err_partner
():
raise
colander
.
Invalid
(
form
,
'Partner Belum Dipilih'
)
def
err_departemen
():
raise
colander
.
Invalid
(
form
,
'Departemen Kerja Belum Dipilih'
)
def
err_jabatan
():
raise
colander
.
Invalid
(
form
,
'Partner Belum Dipilih'
)
if
not
value
[
'jabatan_id'
]:
err_jabatan
()
elif
not
value
[
'departemen_id'
]:
err_departemen
()
elif
not
value
[
'partner_id'
]:
err_partner
()
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
,
request
,
row
=
None
):
if
not
row
:
row
=
PartnerDepartemen
()
row
.
from_dict
(
values
)
PartnerDBSession
.
add
(
row
)
PartnerDBSession
.
flush
()
return
row
# if not row:
# row = Produk()
# 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'
]
if
'mulai'
in
values
:
if
values
[
'mulai'
]:
values
[
'mulai'
]
=
date_from_str
(
values
[
'mulai'
])
else
:
values
[
'mulai'
]
=
None
if
'selesai'
in
values
:
if
values
[
'selesai'
]:
values
[
'selesai'
]
=
date_from_str
(
values
[
'selesai'
])
return
self
.
route_list
()
form
=
self
.
get_form
(
EditSchema
,
buttons
=
(
btn_delete
,
btn_cancel
))
values
=
row
.
to_dict
()
values
[
'nama'
]
=
row
.
partner
.
nama
values
[
'jabatan'
]
=
row
.
jabatan
.
nama
values
[
'departemen'
]
=
row
.
departemen
.
nama
values
[
'mulai'
]
=
dmy
(
row
.
mulai
)
values
[
'selesai'
]
=
dmy
(
row
.
selesai
)
if
not
row
.
struktural_id
:
values
[
'struktural_id'
]
=
0
else
:
values
[
'selesai'
]
=
None
query_struktural
=
DBSession
.
query
(
Jabatan
.
jenis
)
.
\
filter
(
Jabatan
.
id
==
values
[
'jabatan_id'
])
.
scalar
()
values
[
'struktural_id'
]
=
query_struktural
row
=
save
(
values
,
request
,
row
)
request
.
session
.
flash
(
'Posisi Partner sudah disimpan.'
)
def
route_list
(
request
):
return
HTTPFound
(
location
=
request
.
route_url
(
'partner-departemen'
))
def
session_failed
(
request
,
session_name
):
r
=
dict
(
form
=
request
.
session
[
session_name
])
del
request
.
session
[
session_name
]
return
r
def
query_id
(
request
):
return
PartnerDBSession
.
query
(
PartnerDepartemen
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
jb
=
Jabatan
.
query_id
(
row
.
struktural_id
)
.
first
()
if
jb
:
values
[
'struktural_nm'
]
=
jb
.
nama
form
.
set_appstruct
(
self
.
get_values
(
row
,
values
))
return
dict
(
row
=
row
,
form
=
form
.
render
(
readonly
=
True
),
scripts
=
self
.
form_scripts
)
def
get_values
(
self
,
row
,
values
=
None
):
if
not
values
:
values
=
row
.
to_dict
()
def
id_not_found
(
request
):
msg
=
'Posisi Partner ID
%
s Tidak Ditemukan.'
%
request
.
matchdict
[
'id'
]
request
.
session
.
flash
(
msg
,
'error'
)
return
route_list
(
request
)
return
values
\ No newline at end of file
opensipkd/base/views/templates/base3.1.pt
View file @
ee8de6a
...
...
@@ -58,7 +58,29 @@
<link
href=
"${home}/static/css/custom.css"
rel=
"stylesheet"
type=
"text/css"
>
<metal:css
define-slot=
"css_files"
></metal:css>
<style
metal:define-slot=
"style"
></style>
<style
metal:define-slot=
"style"
>
.twitter-typeahead
{
font-size
:
12px
!important
;
margin-bottom
:
0
;
width
:
100%
;
height
:
26px
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
auto
;
}
.twitter-typeahead
.tt-query
,
.twitter-typeahead
.tt-hint
{
font-size
:
12px
!important
;
margin-bottom
:
0
;
width
:
100%
;
height
:
26px
;
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
auto
;
}
</style>
</head>
...
...
opensipkd/base/views/templates/base_list.pt
View file @
ee8de6a
...
...
@@ -74,7 +74,7 @@
});
$
(
"#btn_close"
).
click
(
function
()
{
window
.
location
=
'${home}
pbb/master
'
;
window
.
location
=
'${home}'
;
return
false
;
});
...
...
opensipkd/base/views/unit.py
View file @
ee8de6a
...
...
@@ -84,11 +84,32 @@ class ViewDepartemen(BaseView):
def
__init__
(
self
,
request
):
super
(
ViewDepartemen
,
self
)
.
__init__
(
request
)
self
.
form_scripts
=
"""
$('#parent_nm').bind('typeahead:selected', function(obj, datum) {
$('#parent_id').val(datum.id);
$('#parent_kd').val(datum.kode);
});"""
$(document).ready(function () {
$('#parent_nm').typeahead({
"hint" : true,
"highlight": true,
"minLength": 1,
"remote" : {
url: "/departemen/hon/act?term=
%
QUERY",
beforeSend: function () {
$('#parent_nm').addClass("loading");
},
filter: function(parsedResponse){
$('#parent_nm').removeClass('loading');
return parsedResponse;
}
},
},{
"name" : 'parent_nm',
"displayKey": 'value',
});
$('#parent_nm').bind('typeahead:selected', function(obj, datum, name) {
$('#parent_id').val(datum.id);
$('#parent_kd').val(datum.kode);
});
});
"""
self
.
list_col_defs
=
json
.
dumps
(
[{
"searchable"
:
False
,
"visible"
:
False
,
"targets"
:
[
0
],
},
{
...
...
@@ -355,7 +376,7 @@ class ViewDepartemen(BaseView):
########
# Edit #
########
@view_config
(
route_name
=
'departemen-edt'
,
@view_config
(
route_name
=
'departemen-ed
i
t'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'departemen'
)
def
view_edt
(
self
):
request
=
self
.
req
...
...
@@ -381,7 +402,7 @@ class ViewDepartemen(BaseView):
##########
# Delete #
##########
@view_config
(
route_name
=
'departemen-del'
,
@view_config
(
route_name
=
'departemen-del
ete
'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'departemen'
)
def
view_delete
(
self
):
request
=
self
.
req
...
...
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