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 8389b461
authored
Mar 18, 2025
by
Hamsyah
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
pembaruan kecamatan dan partner dep by hmzh
1 parent
f49dc799
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
70 additions
and
82 deletions
opensipkd/apps/docs/master_import/basekecamatandb.csv
opensipkd/base/views/posisi.py
opensipkd/apps/docs/master_import/basekecamatandb.csv
View file @
8389b46
kode,nama,kategori,dati2_id/res_dati2.kode
kode,nama,kategori,dati2_id/res_dati2.kode
,status
32.07.01,Ciamis,kecamatan,ID-JB.05
32.07.01,Ciamis,kecamatan,ID-JB.05
,1
32.07.02,Cikoneng,kecamatan,ID-JB.05
32.07.02,Cikoneng,kecamatan,ID-JB.05
,1
32.07.03,Cijeungjing,kecamatan,ID-JB.05
32.07.03,Cijeungjing,kecamatan,ID-JB.05
,1
32.07.04,Sadananya,kecamatan,ID-JB.05
32.07.04,Sadananya,kecamatan,ID-JB.05
,1
32.07.05,Cidolog,kecamatan,ID-JB.05
32.07.05,Cidolog,kecamatan,ID-JB.05
,1
32.07.06,Cihaurbeuti,kecamatan,ID-JB.05
32.07.06,Cihaurbeuti,kecamatan,ID-JB.05
,1
32.07.07,Panumbangan,kecamatan,ID-JB.05
32.07.07,Panumbangan,kecamatan,ID-JB.05
,1
32.07.08,Panjalu,kecamatan,ID-JB.05
32.07.08,Panjalu,kecamatan,ID-JB.05
,1
32.07.09,Kawali,kecamatan,ID-JB.05
32.07.09,Kawali,kecamatan,ID-JB.05
,1
32.07.10,Panawangan,kecamatan,ID-JB.05
32.07.10,Panawangan,kecamatan,ID-JB.05
,1
32.07.11,Cipaku,kecamatan,ID-JB.05
32.07.11,Cipaku,kecamatan,ID-JB.05
,1
32.07.12,Jatinagara,kecamatan,ID-JB.05
32.07.12,Jatinagara,kecamatan,ID-JB.05
,1
32.07.13,Rajadesa,kecamatan,ID-JB.05
32.07.13,Rajadesa,kecamatan,ID-JB.05
,1
32.07.14,Sukadana,kecamatan,ID-JB.05
32.07.14,Sukadana,kecamatan,ID-JB.05
,1
32.07.15,Rancah,kecamatan,ID-JB.05
32.07.15,Rancah,kecamatan,ID-JB.05
,1
32.07.16,Tambaksari,kecamatan,ID-JB.05
32.07.16,Tambaksari,kecamatan,ID-JB.05
,1
32.07.17,Lakbok,kecamatan,ID-JB.05
32.07.17,Lakbok,kecamatan,ID-JB.05
,1
32.07.18,Banjarsari,kecamatan,ID-JB.05
32.07.18,Banjarsari,kecamatan,ID-JB.05
,1
32.07.19,Pamarican,kecamatan,ID-JB.05
32.07.19,Pamarican,kecamatan,ID-JB.05
,1
32.07.29,Cimaragas,kecamatan,ID-JB.05
32.07.29,Cimaragas,kecamatan,ID-JB.05
,1
32.07.30,Cisaga,kecamatan,ID-JB.05
32.07.30,Cisaga,kecamatan,ID-JB.05
,1
32.07.31,Sindangkasih,kecamatan,ID-JB.05
32.07.31,Sindangkasih,kecamatan,ID-JB.05
,1
32.07.32,Baregbeg,kecamatan,ID-JB.05
32.07.32,Baregbeg,kecamatan,ID-JB.05
,1
32.07.33,Sukamantri,kecamatan,ID-JB.05
32.07.33,Sukamantri,kecamatan,ID-JB.05
,1
32.07.34,Lumbung,kecamatan,ID-JB.05
32.07.34,Lumbung,kecamatan,ID-JB.05
,1
32.07.35,Purwadadi,kecamatan,ID-JB.05
32.07.35,Purwadadi,kecamatan,ID-JB.05
,1
32.07.37,Banjaranyar,kecamatan,ID-JB.05
32.07.37,Banjaranyar,kecamatan,ID-JB.05
,1
\ No newline at end of file
\ No newline at end of file
opensipkd/base/views/posisi.py
View file @
8389b46
...
@@ -26,7 +26,7 @@ class AddSchema(colander.Schema):
...
@@ -26,7 +26,7 @@ class AddSchema(colander.Schema):
def
departemen_widget
(
node
,
kw
):
def
departemen_widget
(
node
,
kw
):
departemen_list
=
DBSession
.
query
(
Departemen
.
id
,
Departemen
.
nama
)
.
all
()
departemen_list
=
DBSession
.
query
(
Departemen
.
id
,
Departemen
.
nama
)
.
all
()
choices
=
[(
str
(
departemen
.
id
),
departemen
.
nama
)
for
departemen
in
departemen_list
]
choices
=
[(
str
(
departemen
.
id
),
departemen
.
nama
)
for
departemen
in
departemen_list
]
return
widget
.
CheckboxChoiceWidget
(
values
=
choices
)
return
widget
.
CheckboxChoiceWidget
(
values
=
choices
,
multiple
=
True
)
# Enable multiple selection
@colander.deferred
@colander.deferred
def
jabatan_widget
(
node
,
kw
):
def
jabatan_widget
(
node
,
kw
):
...
@@ -38,7 +38,7 @@ class AddSchema(colander.Schema):
...
@@ -38,7 +38,7 @@ class AddSchema(colander.Schema):
colander
.
Integer
(),
colander
.
Integer
(),
oid
=
"partner_id"
,
oid
=
"partner_id"
,
widget
=
widget
.
HiddenWidget
(),
widget
=
widget
.
HiddenWidget
(),
title
=
"Partner ID"
)
# Field wajib, tanpa missing=colander.null
title
=
"Partner ID"
)
nama
=
colander
.
SchemaNode
(
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
colander
.
String
(),
widget
=
nama_widget
,
widget
=
nama_widget
,
...
@@ -50,21 +50,16 @@ class AddSchema(colander.Schema):
...
@@ -50,21 +50,16 @@ class AddSchema(colander.Schema):
widget
=
widget
.
HiddenWidget
(),
widget
=
widget
.
HiddenWidget
(),
missing
=
colander
.
drop
)
missing
=
colander
.
drop
)
departemen
=
colander
.
SchemaNode
(
departemen
=
colander
.
SchemaNode
(
colander
.
Set
(),
colander
.
Set
(),
# Menggunakan Set untuk multiple values
widget
=
departemen_widget
,
widget
=
departemen_widget
,
oid
=
"departemen_nm"
,
oid
=
"departemen_nm"
,
title
=
"Departemen *"
)
title
=
"Departemen *"
)
jabatan_id
=
colander
.
SchemaNode
(
jabatan_id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
colander
.
Integer
(),
oid
=
"jabatan_id"
,
oid
=
"jabatan_id"
,
widget
=
widget
.
HiddenWidget
(),
title
=
"Jabatan"
,
missing
=
colander
.
drop
)
jabatan
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
jabatan_widget
,
widget
=
jabatan_widget
,
oid
=
"jabatan_nm
"
,
title
=
"Jabatan *
"
,
title
=
"Jabatan *"
)
missing
=
colander
.
drop
)
mulai
=
colander
.
SchemaNode
(
mulai
=
colander
.
SchemaNode
(
colander
.
String
(),
colander
.
String
(),
oid
=
"mulai"
,
oid
=
"mulai"
,
...
@@ -78,9 +73,10 @@ class AddSchema(colander.Schema):
...
@@ -78,9 +73,10 @@ class AddSchema(colander.Schema):
title
=
"Selesai"
)
title
=
"Selesai"
)
class
EditSchema
(
AddSchema
):
class
EditSchema
(
AddSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
id
=
colander
.
SchemaNode
(
missing
=
colander
.
drop
,
colander
.
String
(),
widget
=
widget
.
HiddenWidget
())
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
())
class
ListSchema
(
colander
.
Schema
):
class
ListSchema
(
colander
.
Schema
):
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
title
=
"Action"
)
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
title
=
"Action"
)
...
@@ -113,12 +109,12 @@ class ViewPartner(BaseView):
...
@@ -113,12 +109,12 @@ class ViewPartner(BaseView):
raise
colander
.
Invalid
(
form
,
'Partner Belum Dipilih'
)
raise
colander
.
Invalid
(
form
,
'Partner Belum Dipilih'
)
# Validasi partner_id
# Validasi partner_id
if
not
value
[
'partner_id'
]
or
value
[
'partner_id'
]
is
colander
.
null
:
if
not
value
[
'partner_id'
]:
print
(
"Validation failed: Partner ID kosong"
)
print
(
"Validation failed: Partner ID kosong"
)
err_partner
()
err_partner
()
# Validasi jabatan
# Validasi jabatan
_id
if
not
value
[
'jabatan
'
]
or
value
[
'jabatan'
]
==
''
:
if
not
value
[
'jabatan
_id'
]
:
print
(
"Validation failed: Jabatan kosong"
)
print
(
"Validation failed: Jabatan kosong"
)
err_jabatan
()
err_jabatan
()
...
@@ -133,22 +129,13 @@ class ViewPartner(BaseView):
...
@@ -133,22 +129,13 @@ class ViewPartner(BaseView):
if
'id'
in
request
.
matchdict
:
if
'id'
in
request
.
matchdict
:
values
[
'id'
]
=
request
.
matchdict
[
'id'
]
values
[
'id'
]
=
request
.
matchdict
[
'id'
]
if
'mulai'
in
values
:
if
'mulai'
in
values
:
if
values
[
'mulai'
]:
values
[
'mulai'
]
=
date_from_str
(
values
[
'mulai'
])
if
values
[
'mulai'
]
else
None
values
[
'mulai'
]
=
date_from_str
(
values
[
'mulai'
])
else
:
values
[
'mulai'
]
=
None
if
'selesai'
in
values
:
if
'selesai'
in
values
:
if
values
[
'selesai'
]:
values
[
'selesai'
]
=
date_from_str
(
values
[
'selesai'
])
if
values
[
'selesai'
]
else
None
values
[
'selesai'
]
=
date_from_str
(
values
[
'selesai'
])
else
:
# Ambil jabatan_id dari form
values
[
'selesai'
]
=
None
if
'jabatan_id'
in
values
and
values
[
'jabatan_id'
]:
values
[
'jabatan_id'
]
=
int
(
values
[
'jabatan_id'
])
# Konversi ke integer
# Simpan jabatan yang dipilih dari dropdown
if
'jabatan'
in
values
and
values
[
'jabatan'
]:
values
[
'jabatan_id'
]
=
values
[
'jabatan'
]
query_struktural
=
DBSession
.
query
(
Jabatan
.
jenis
)
.
filter
(
Jabatan
.
id
==
values
[
'jabatan_id'
])
.
scalar
()
values
[
'jabatan_id'
]
=
query_struktural
if
query_struktural
else
values
[
'jabatan_id'
]
else
:
else
:
values
[
'jabatan_id'
]
=
None
values
[
'jabatan_id'
]
=
None
...
@@ -160,21 +147,23 @@ class ViewPartner(BaseView):
...
@@ -160,21 +147,23 @@ class ViewPartner(BaseView):
# Simpan setiap departemen yang dipilih sebagai baris baru
# Simpan setiap departemen yang dipilih sebagai baris baru
if
'departemen'
in
values
and
values
[
'departemen'
]:
if
'departemen'
in
values
and
values
[
'departemen'
]:
# Jika sedang mengedit, hapus entri lama untuk partner_id dan jabatan_id ini
if
'id'
in
values
:
DBSession
.
query
(
PartnerDepartemen
)
.
filter_by
(
partner_id
=
partner_id
,
jabatan_id
=
values
[
'jabatan_id'
]
)
.
delete
()
# Tambahkan entri baru untuk setiap departemen yang dipilih
for
dept_id
in
values
[
'departemen'
]:
for
dept_id
in
values
[
'departemen'
]:
exists
=
DBSession
.
query
(
PartnerDepartemen
)
.
filter_by
(
new_row
=
PartnerDepartemen
(
partner_id
=
partner_id
,
partner_id
=
partner_id
,
departemen_id
=
int
(
dept_id
),
departemen_id
=
int
(
dept_id
),
jabatan_id
=
values
[
'jabatan_id'
]
jabatan_id
=
values
[
'jabatan_id'
],
)
.
first
()
mulai
=
values
[
'mulai'
],
if
not
exists
:
selesai
=
values
[
'selesai'
]
new_row
=
PartnerDepartemen
(
)
partner_id
=
partner_id
,
# Tidak lagi opsional
DBSession
.
add
(
new_row
)
departemen_id
=
int
(
dept_id
),
jabatan_id
=
values
[
'jabatan_id'
],
mulai
=
values
[
'mulai'
],
selesai
=
values
[
'selesai'
]
)
DBSession
.
add
(
new_row
)
DBSession
.
flush
()
DBSession
.
flush
()
request
.
session
.
flash
(
'Posisi Partner sudah disimpan.'
)
request
.
session
.
flash
(
'Posisi Partner sudah disimpan.'
)
return
None
return
None
...
@@ -182,7 +171,7 @@ class ViewPartner(BaseView):
...
@@ -182,7 +171,7 @@ class ViewPartner(BaseView):
request
.
session
.
flash
(
'Tidak ada departemen yang dipilih.'
,
'error'
)
request
.
session
.
flash
(
'Tidak ada departemen yang dipilih.'
,
'error'
)
return
None
return
None
@view_config
(
route_name
=
'partner-departemen'
,
renderer
=
'templates/
form
.pt'
,
@view_config
(
route_name
=
'partner-departemen'
,
renderer
=
'templates/
table
.pt'
,
permission
=
'view'
)
permission
=
'view'
)
def
view_list
(
self
):
def
view_list
(
self
):
return
super
()
.
view_list
()
return
super
()
.
view_list
()
...
@@ -317,16 +306,15 @@ class ViewPartner(BaseView):
...
@@ -317,16 +306,15 @@ class ViewPartner(BaseView):
def
get_values
(
self
,
row
,
istime
=
False
):
def
get_values
(
self
,
row
,
istime
=
False
):
values
=
super
()
.
get_values
(
row
,
istime
)
values
=
super
()
.
get_values
(
row
,
istime
)
values
[
'nama'
]
=
row
.
partner
.
nama
if
row
.
partner
else
''
values
[
'nama'
]
=
row
.
partner
.
nama
if
row
.
partner
else
''
values
[
'jabatan'
]
=
row
.
jabatan
.
nama
values
[
'jabatan_id'
]
=
str
(
row
.
jabatan_id
)
if
row
.
jabatan_id
else
''
values
[
'departemen'
]
=
row
.
departemen
.
nama
# Ambil semua departemen yang terkait dengan partner_id dan jabatan_id ini
values
[
'mulai'
]
=
dmy
(
row
.
mulai
)
departemen_ids
=
DBSession
.
query
(
PartnerDepartemen
.
departemen_id
)
.
filter_by
(
values
[
'selesai'
]
=
dmy
(
row
.
selesai
)
partner_id
=
row
.
partner_id
,
if
not
row
.
jabatan_id
:
jabatan_id
=
row
.
jabatan_id
values
[
'jabatan_id'
]
=
0
)
.
all
()
else
:
values
[
'departemen'
]
=
[
str
(
dept_id
[
0
])
for
dept_id
in
departemen_ids
]
if
departemen_ids
else
[]
jb
=
Jabatan
.
query_id
(
row
.
jabatan_id
)
.
first
()
values
[
'mulai'
]
=
dmy
(
row
.
mulai
)
if
row
.
mulai
else
''
if
jb
:
values
[
'selesai'
]
=
dmy
(
row
.
selesai
)
if
row
.
selesai
else
''
values
[
'struktural_nm'
]
=
jb
.
nama
return
values
return
values
@view_config
(
route_name
=
'partner-departemen-view'
,
@view_config
(
route_name
=
'partner-departemen-view'
,
...
...
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