Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
irul
/
opensipkd-base
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
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
32.07.01,Ciamis,kecamatan,ID-JB.05
32.07.02,Cikoneng,kecamatan,ID-JB.05
32.07.03,Cijeungjing,kecamatan,ID-JB.05
32.07.04,Sadananya,kecamatan,ID-JB.05
32.07.05,Cidolog,kecamatan,ID-JB.05
32.07.06,Cihaurbeuti,kecamatan,ID-JB.05
32.07.07,Panumbangan,kecamatan,ID-JB.05
32.07.08,Panjalu,kecamatan,ID-JB.05
32.07.09,Kawali,kecamatan,ID-JB.05
32.07.10,Panawangan,kecamatan,ID-JB.05
32.07.11,Cipaku,kecamatan,ID-JB.05
32.07.12,Jatinagara,kecamatan,ID-JB.05
32.07.13,Rajadesa,kecamatan,ID-JB.05
32.07.14,Sukadana,kecamatan,ID-JB.05
32.07.15,Rancah,kecamatan,ID-JB.05
32.07.16,Tambaksari,kecamatan,ID-JB.05
32.07.17,Lakbok,kecamatan,ID-JB.05
32.07.18,Banjarsari,kecamatan,ID-JB.05
32.07.19,Pamarican,kecamatan,ID-JB.05
32.07.29,Cimaragas,kecamatan,ID-JB.05
32.07.30,Cisaga,kecamatan,ID-JB.05
32.07.31,Sindangkasih,kecamatan,ID-JB.05
32.07.32,Baregbeg,kecamatan,ID-JB.05
32.07.33,Sukamantri,kecamatan,ID-JB.05
32.07.34,Lumbung,kecamatan,ID-JB.05
32.07.35,Purwadadi,kecamatan,ID-JB.05
32.07.37,Banjaranyar,kecamatan,ID-JB.05
kode,nama,kategori,dati2_id/res_dati2.kode
,status
32.07.01,Ciamis,kecamatan,ID-JB.05
,1
32.07.02,Cikoneng,kecamatan,ID-JB.05
,1
32.07.03,Cijeungjing,kecamatan,ID-JB.05
,1
32.07.04,Sadananya,kecamatan,ID-JB.05
,1
32.07.05,Cidolog,kecamatan,ID-JB.05
,1
32.07.06,Cihaurbeuti,kecamatan,ID-JB.05
,1
32.07.07,Panumbangan,kecamatan,ID-JB.05
,1
32.07.08,Panjalu,kecamatan,ID-JB.05
,1
32.07.09,Kawali,kecamatan,ID-JB.05
,1
32.07.10,Panawangan,kecamatan,ID-JB.05
,1
32.07.11,Cipaku,kecamatan,ID-JB.05
,1
32.07.12,Jatinagara,kecamatan,ID-JB.05
,1
32.07.13,Rajadesa,kecamatan,ID-JB.05
,1
32.07.14,Sukadana,kecamatan,ID-JB.05
,1
32.07.15,Rancah,kecamatan,ID-JB.05
,1
32.07.16,Tambaksari,kecamatan,ID-JB.05
,1
32.07.17,Lakbok,kecamatan,ID-JB.05
,1
32.07.18,Banjarsari,kecamatan,ID-JB.05
,1
32.07.19,Pamarican,kecamatan,ID-JB.05
,1
32.07.29,Cimaragas,kecamatan,ID-JB.05
,1
32.07.30,Cisaga,kecamatan,ID-JB.05
,1
32.07.31,Sindangkasih,kecamatan,ID-JB.05
,1
32.07.32,Baregbeg,kecamatan,ID-JB.05
,1
32.07.33,Sukamantri,kecamatan,ID-JB.05
,1
32.07.34,Lumbung,kecamatan,ID-JB.05
,1
32.07.35,Purwadadi,kecamatan,ID-JB.05
,1
32.07.37,Banjaranyar,kecamatan,ID-JB.05
,1
\ No newline at end of file
opensipkd/base/views/posisi.py
View file @
8389b46
...
...
@@ -26,7 +26,7 @@ class AddSchema(colander.Schema):
def
departemen_widget
(
node
,
kw
):
departemen_list
=
DBSession
.
query
(
Departemen
.
id
,
Departemen
.
nama
)
.
all
()
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
def
jabatan_widget
(
node
,
kw
):
...
...
@@ -38,7 +38,7 @@ class AddSchema(colander.Schema):
colander
.
Integer
(),
oid
=
"partner_id"
,
widget
=
widget
.
HiddenWidget
(),
title
=
"Partner ID"
)
# Field wajib, tanpa missing=colander.null
title
=
"Partner ID"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
nama_widget
,
...
...
@@ -50,21 +50,16 @@ class AddSchema(colander.Schema):
widget
=
widget
.
HiddenWidget
(),
missing
=
colander
.
drop
)
departemen
=
colander
.
SchemaNode
(
colander
.
Set
(),
colander
.
Set
(),
# Menggunakan Set untuk multiple values
widget
=
departemen_widget
,
oid
=
"departemen_nm"
,
title
=
"Departemen *"
)
jabatan_id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
oid
=
"jabatan_id"
,
widget
=
widget
.
HiddenWidget
(),
title
=
"Jabatan"
,
missing
=
colander
.
drop
)
jabatan
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
jabatan_widget
,
oid
=
"jabatan_nm
"
,
title
=
"Jabatan *"
)
title
=
"Jabatan *
"
,
missing
=
colander
.
drop
)
mulai
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"mulai"
,
...
...
@@ -78,9 +73,10 @@ class AddSchema(colander.Schema):
title
=
"Selesai"
)
class
EditSchema
(
AddSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
())
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
())
class
ListSchema
(
colander
.
Schema
):
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
title
=
"Action"
)
...
...
@@ -113,12 +109,12 @@ class ViewPartner(BaseView):
raise
colander
.
Invalid
(
form
,
'Partner Belum Dipilih'
)
# 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"
)
err_partner
()
# Validasi jabatan
if
not
value
[
'jabatan
'
]
or
value
[
'jabatan'
]
==
''
:
# Validasi jabatan
_id
if
not
value
[
'jabatan
_id'
]
:
print
(
"Validation failed: Jabatan kosong"
)
err_jabatan
()
...
...
@@ -133,22 +129,13 @@ class ViewPartner(BaseView):
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
values
[
'mulai'
]
=
date_from_str
(
values
[
'mulai'
])
if
values
[
'mulai'
]
else
None
if
'selesai'
in
values
:
if
values
[
'selesai'
]:
values
[
'selesai'
]
=
date_from_str
(
values
[
'selesai'
])
else
:
values
[
'selesai'
]
=
None
# 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'
]
values
[
'selesai'
]
=
date_from_str
(
values
[
'selesai'
])
if
values
[
'selesai'
]
else
None
# Ambil jabatan_id dari form
if
'jabatan_id'
in
values
and
values
[
'jabatan_id'
]:
values
[
'jabatan_id'
]
=
int
(
values
[
'jabatan_id'
])
# Konversi ke integer
else
:
values
[
'jabatan_id'
]
=
None
...
...
@@ -160,21 +147,23 @@ class ViewPartner(BaseView):
# Simpan setiap departemen yang dipilih sebagai baris baru
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'
]:
exists
=
DBSession
.
query
(
PartnerDepartemen
)
.
filter_by
(
new_row
=
PartnerDepartemen
(
partner_id
=
partner_id
,
departemen_id
=
int
(
dept_id
),
jabatan_id
=
values
[
'jabatan_id'
]
)
.
first
()
if
not
exists
:
new_row
=
PartnerDepartemen
(
partner_id
=
partner_id
,
# Tidak lagi opsional
departemen_id
=
int
(
dept_id
),
jabatan_id
=
values
[
'jabatan_id'
],
mulai
=
values
[
'mulai'
],
selesai
=
values
[
'selesai'
]
)
DBSession
.
add
(
new_row
)
jabatan_id
=
values
[
'jabatan_id'
],
mulai
=
values
[
'mulai'
],
selesai
=
values
[
'selesai'
]
)
DBSession
.
add
(
new_row
)
DBSession
.
flush
()
request
.
session
.
flash
(
'Posisi Partner sudah disimpan.'
)
return
None
...
...
@@ -182,7 +171,7 @@ class ViewPartner(BaseView):
request
.
session
.
flash
(
'Tidak ada departemen yang dipilih.'
,
'error'
)
return
None
@view_config
(
route_name
=
'partner-departemen'
,
renderer
=
'templates/
form
.pt'
,
@view_config
(
route_name
=
'partner-departemen'
,
renderer
=
'templates/
table
.pt'
,
permission
=
'view'
)
def
view_list
(
self
):
return
super
()
.
view_list
()
...
...
@@ -317,16 +306,15 @@ class ViewPartner(BaseView):
def
get_values
(
self
,
row
,
istime
=
False
):
values
=
super
()
.
get_values
(
row
,
istime
)
values
[
'nama'
]
=
row
.
partner
.
nama
if
row
.
partner
else
''
values
[
'jabatan'
]
=
row
.
jabatan
.
nama
values
[
'departemen'
]
=
row
.
departemen
.
nama
values
[
'mulai'
]
=
dmy
(
row
.
mulai
)
values
[
'selesai'
]
=
dmy
(
row
.
selesai
)
if
not
row
.
jabatan_id
:
values
[
'jabatan_id'
]
=
0
else
:
jb
=
Jabatan
.
query_id
(
row
.
jabatan_id
)
.
first
()
if
jb
:
values
[
'struktural_nm'
]
=
jb
.
nama
values
[
'jabatan_id'
]
=
str
(
row
.
jabatan_id
)
if
row
.
jabatan_id
else
''
# Ambil semua departemen yang terkait dengan partner_id dan jabatan_id ini
departemen_ids
=
DBSession
.
query
(
PartnerDepartemen
.
departemen_id
)
.
filter_by
(
partner_id
=
row
.
partner_id
,
jabatan_id
=
row
.
jabatan_id
)
.
all
()
values
[
'departemen'
]
=
[
str
(
dept_id
[
0
])
for
dept_id
in
departemen_ids
]
if
departemen_ids
else
[]
values
[
'mulai'
]
=
dmy
(
row
.
mulai
)
if
row
.
mulai
else
''
values
[
'selesai'
]
=
dmy
(
row
.
selesai
)
if
row
.
selesai
else
''
return
values
@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