Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Owo Sugiana
/
warga
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 4e782117
authored
Jun 18, 2023
by
Owo Sugiana
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Tambah Daftar Hubungan Keluarga
1 parent
49cf39c9
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
58 additions
and
14 deletions
warga/models/res_partner.py
warga/security/ir.model.access.csv
warga/security/ir_rule.xml
warga/views/rt.xml
warga/models/res_partner.py
View file @
4e78211
...
...
@@ -8,6 +8,11 @@ from odoo.exceptions import ValidationError
from
.res_company
import
range_validation
# https://qasp2020.bps.go.id/posts/c54cdd0f12634e1c8fd114eda67e21b0/konsep-definisi/hubungan-keluarga
HUBUNGAN_KELUARGA
=
[
'Kepala Keluarga'
,
'Suami'
,
'Istri'
,
'Anak'
,
'Menantu'
,
'Cucu'
,
'Orang Tua'
,
'Mertua'
,
'Famili Lain'
]
ERR_NIK
=
ValidationError
(
f
'NIK harus 16 angka'
)
...
...
@@ -24,6 +29,14 @@ def nik_validation(val):
raise
ERR_NIK
class
HubunganKeluarga
(
models
.
Model
):
_name
=
'hubungan.keluarga'
_order
=
'name'
_description
=
'Hubungan Keluarga'
name
=
fields
.
Char
(
string
=
'Hubungan Keluarga'
)
class
Partner
(
models
.
Model
):
_inherit
=
'res.partner'
...
...
@@ -45,7 +58,10 @@ class Partner(models.Model):
domain
=
"[('kecamatan_id', '=?', kecamatan_id)]"
)
rw
=
fields
.
Char
(
string
=
'RW'
)
rt
=
fields
.
Char
(
string
=
'RT'
)
hubungan_keluarga
=
fields
.
Char
()
# Kepala Keluarga / Istri / Anak
# Kepala Keluarga / Istri / Anak
hubungan_keluarga_id
=
fields
.
Many2one
(
'hubungan.keluarga'
)
hubungan_keluarga
=
fields
.
Char
(
related
=
'hubungan_keluarga_id.name'
,
store
=
True
,
string
=
"Hub. Kel."
)
# https://github.com/OCA/partner-contact/tree/15.0/partner_contact_gender
gender
=
fields
.
Selection
(
[(
'male'
,
'Laki-laki'
),
(
'female'
,
'Perempuan'
)])
...
...
@@ -55,6 +71,27 @@ class Partner(models.Model):
# https://github.com/OCA/partner-contact/blob/15.0/partner_contact_nationality
nationality_id
=
fields
.
Many2one
(
'res.country'
,
'Warga Negara'
)
@api.model
def
create
(
self
,
vals
):
hk
=
vals
.
get
(
'hubungan_keluarga'
)
if
hk
:
res
=
self
.
env
[
'hubungan.keluarga'
]
.
search
(
[(
'name'
,
'='
,
hk
)],
limit
=
1
)
if
res
:
vals
[
'hubungan_keluarga_id'
]
=
res
.
id
res
=
super
()
.
create
(
vals
)
# RT ?
if
self
.
env
.
ref
(
'warga.res_partner_category_warga_rt'
)
==
\
res
.
category_id
:
# Buat daftar Hubungan Keluarga
for
name
in
HUBUNGAN_KELUARGA
:
hk
=
self
.
env
[
'hubungan.keluarga'
]
.
search
(
[(
'name'
,
'='
,
name
)],
limit
=
1
)
if
not
hk
:
d
=
dict
(
name
=
name
)
self
.
env
[
'hubungan.keluarga'
]
.
create
(
d
)
return
res
@api.depends
(
"birthdate_date"
)
def
_compute_age
(
self
):
for
record
in
self
:
...
...
@@ -64,9 +101,9 @@ class Partner(models.Model):
age
=
age
.
years
record
.
age
=
age
@api.onchange
(
'l10n_id_nik'
)
def
_onchange_nik
(
self
):
self
.
l10n_id_nik
=
nik_validation
(
self
.
l10n_id_nik
)
#
@api.onchange('l10n_id_nik')
#
def _onchange_nik(self):
#
self.l10n_id_nik = nik_validation(self.l10n_id_nik)
@api.onchange
(
'country_id'
)
def
_onchange_country_id
(
self
):
...
...
warga/security/ir.model.access.csv
View file @
4e78211
...
...
@@ -3,3 +3,4 @@ access_undangan_user,access_undangan_dari_user,model_warga_undangan,base.group_u
access_undangan_portal,access_undangan_dari_portal,model_warga_undangan,base.group_portal,1,1,1,0
access_pop_message_user,access_pop_message_user,model_custom_pop_message,base.group_user,1,0,0,0
access_pop_message_portal,access_pop_message_portal,model_custom_pop_message,base.group_portal,1,0,0,0
access_hubungan_keluarga,access_hubungan_keluarga,model_hubungan_keluarga,base.group_user,1,1,1,1
warga/security/ir_rule.xml
View file @
4e78211
...
...
@@ -15,6 +15,13 @@
</field>
<field
name=
"groups"
eval=
"[Command.link(ref('warga.group_warga'))]"
/>
</record>
<record
model=
"ir.rule"
id=
"akses_hubungan_keluarga"
>
<field
name=
"name"
>
Hak Akses Hubungan Keluarga"
</field>
<field
name=
"model_id"
ref=
"model_hubungan_keluarga"
/>
<field
name=
"domain_force"
>
[('create_uid', '=', user.id)]
</field>
</record>
<record
model=
"ir.rule"
id=
"base.res_partner_rule_private_employee"
>
<field
name=
"groups"
eval=
"[Command.unlink(ref('base.group_user')), Command.link(ref('base.group_erp_manager'))]"
/>
</record>
...
...
warga/views/rt.xml
View file @
4e78211
...
...
@@ -49,7 +49,6 @@
<field
name=
"child_ids"
context=
"{'default_parent_id':
active_id,
'default_category_id':
[2],
'default_type':
'other',
'default_hubungan_keluarga':
'Kepala
Keluarga',
'default_street':
street,
'default_nationality_id':
country_id,
'default_country_id':
country_id,
...
...
@@ -70,10 +69,10 @@
<field
name=
"type"
invisible=
"1"
/>
<field
name=
"city"
invisible=
"1"
/>
<field
name=
"category_id"
invisible=
"1"
/>
<field
name=
"hubungan_keluarga"
invisible=
"1"
/>
<group>
<group>
<field
name=
"name"
/>
<!-- field name="title" options='{"no_open": True}'/-->
<field
name=
"gender"
/>
<field
name=
"birthdate_date"
placeholder=
"17-8-1945"
/>
<field
name=
"age"
attrs=
"{'invisible': [('birthdate_date', '=', False)]}"
/>
...
...
@@ -85,17 +84,17 @@
<group>
<label
for=
"street"
string=
"Alamat"
/>
<div
class=
"o_address_format"
>
<field
name=
"street"
string
=
"Jalan / No."
/>
<label
for=
"rt"
string=
"RT"
/>
<field
name=
"rt"
/>
<label
for=
"rw"
string=
"RW"
/>
<field
name=
"rw"
/>
<field
name=
"street"
placeholder
=
"Jalan / No."
/>
<label
for=
"rt"
string=
"RT"
attrs=
"{'invisible': [('rt', '=', False)]}"
/>
<field
name=
"rt"
placeholder=
"RT"
/>
<label
for=
"rw"
string=
"RW"
attrs=
"{'invisible': [('rw', '=', False)]}"
/>
<field
name=
"rw"
placeholder=
"RW"
/>
<field
name=
"kelurahan_id"
placeholder=
"Kelurahan"
/>
<field
name=
"kecamatan_id"
placeholder=
"Kecamatan"
/>
<field
name=
"kabupaten_id"
placeholder=
"Kabupaten"
/>
<field
name=
"state_id"
placeholder=
"Provinsi"
/>
<field
name=
"country_id"
placeholder=
"Negara"
/>
<field
name=
"zip"
/>
<field
name=
"zip"
placeholder=
"Kode Pos"
/>
</div>
</group>
</group>
...
...
@@ -131,7 +130,7 @@
<field
name=
"gender"
/>
<field
name=
"birthdate_date"
placeholder=
"17-8-1945"
/>
<field
name=
"age"
attrs=
"{'invisible': [('birthdate_date', '=', False)]}"
/>
<field
name=
"hubungan_keluarga
"
placeholder=
"Istri / Anak / Ibu / Bapak
"
/>
<field
name=
"hubungan_keluarga
_id"
domain=
"[('name', '!=', 'Kepala Keluarga')]
"
/>
<field
name=
"mobile"
widget=
"phone"
/>
<field
name=
"email"
widget=
"email"
/>
<field
name=
"phone"
widget=
"phone"
/>
...
...
@@ -150,7 +149,7 @@
<field
name=
"kabupaten_id"
placeholder=
"Kabupaten"
/>
<field
name=
"state_id"
placeholder=
"Provinsi"
/>
<field
name=
"country_id"
placeholder=
"Negara"
/>
<field
name=
"zip"
/>
<field
name=
"zip"
placeholder=
"Kode Pos"
/>
</div>
</group>
</group>
...
...
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