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
Show 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
...
@@ -8,6 +8,11 @@ from odoo.exceptions import ValidationError
from
.res_company
import
range_validation
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'
)
ERR_NIK
=
ValidationError
(
f
'NIK harus 16 angka'
)
...
@@ -24,6 +29,14 @@ def nik_validation(val):
...
@@ -24,6 +29,14 @@ def nik_validation(val):
raise
ERR_NIK
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
):
class
Partner
(
models
.
Model
):
_inherit
=
'res.partner'
_inherit
=
'res.partner'
...
@@ -45,7 +58,10 @@ class Partner(models.Model):
...
@@ -45,7 +58,10 @@ class Partner(models.Model):
domain
=
"[('kecamatan_id', '=?', kecamatan_id)]"
)
domain
=
"[('kecamatan_id', '=?', kecamatan_id)]"
)
rw
=
fields
.
Char
(
string
=
'RW'
)
rw
=
fields
.
Char
(
string
=
'RW'
)
rt
=
fields
.
Char
(
string
=
'RT'
)
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
# https://github.com/OCA/partner-contact/tree/15.0/partner_contact_gender
gender
=
fields
.
Selection
(
gender
=
fields
.
Selection
(
[(
'male'
,
'Laki-laki'
),
(
'female'
,
'Perempuan'
)])
[(
'male'
,
'Laki-laki'
),
(
'female'
,
'Perempuan'
)])
...
@@ -55,6 +71,27 @@ class Partner(models.Model):
...
@@ -55,6 +71,27 @@ class Partner(models.Model):
# https://github.com/OCA/partner-contact/blob/15.0/partner_contact_nationality
# https://github.com/OCA/partner-contact/blob/15.0/partner_contact_nationality
nationality_id
=
fields
.
Many2one
(
'res.country'
,
'Warga Negara'
)
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"
)
@api.depends
(
"birthdate_date"
)
def
_compute_age
(
self
):
def
_compute_age
(
self
):
for
record
in
self
:
for
record
in
self
:
...
@@ -64,9 +101,9 @@ class Partner(models.Model):
...
@@ -64,9 +101,9 @@ class Partner(models.Model):
age
=
age
.
years
age
=
age
.
years
record
.
age
=
age
record
.
age
=
age
@api.onchange
(
'l10n_id_nik'
)
#
@api.onchange('l10n_id_nik')
def
_onchange_nik
(
self
):
#
def _onchange_nik(self):
self
.
l10n_id_nik
=
nik_validation
(
self
.
l10n_id_nik
)
#
self.l10n_id_nik = nik_validation(self.l10n_id_nik)
@api.onchange
(
'country_id'
)
@api.onchange
(
'country_id'
)
def
_onchange_country_id
(
self
):
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
...
@@ -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_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_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_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 @@
...
@@ -15,6 +15,13 @@
</field>
</field>
<field
name=
"groups"
eval=
"[Command.link(ref('warga.group_warga'))]"
/>
<field
name=
"groups"
eval=
"[Command.link(ref('warga.group_warga'))]"
/>
</record>
</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"
>
<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'))]"
/>
<field
name=
"groups"
eval=
"[Command.unlink(ref('base.group_user')), Command.link(ref('base.group_erp_manager'))]"
/>
</record>
</record>
...
...
warga/views/rt.xml
View file @
4e78211
...
@@ -49,7 +49,6 @@
...
@@ -49,7 +49,6 @@
<field
name=
"child_ids"
context=
"{'default_parent_id':
active_id,
<field
name=
"child_ids"
context=
"{'default_parent_id':
active_id,
'default_category_id':
[2],
'default_category_id':
[2],
'default_type':
'other',
'default_type':
'other',
'default_hubungan_keluarga':
'Kepala
Keluarga',
'default_street':
street,
'default_street':
street,
'default_nationality_id':
country_id,
'default_nationality_id':
country_id,
'default_country_id':
country_id,
'default_country_id':
country_id,
...
@@ -70,10 +69,10 @@
...
@@ -70,10 +69,10 @@
<field
name=
"type"
invisible=
"1"
/>
<field
name=
"type"
invisible=
"1"
/>
<field
name=
"city"
invisible=
"1"
/>
<field
name=
"city"
invisible=
"1"
/>
<field
name=
"category_id"
invisible=
"1"
/>
<field
name=
"category_id"
invisible=
"1"
/>
<field
name=
"hubungan_keluarga"
invisible=
"1"
/>
<group>
<group>
<group>
<group>
<field
name=
"name"
/>
<field
name=
"name"
/>
<!-- field name="title" options='{"no_open": True}'/-->
<field
name=
"gender"
/>
<field
name=
"gender"
/>
<field
name=
"birthdate_date"
placeholder=
"17-8-1945"
/>
<field
name=
"birthdate_date"
placeholder=
"17-8-1945"
/>
<field
name=
"age"
attrs=
"{'invisible': [('birthdate_date', '=', False)]}"
/>
<field
name=
"age"
attrs=
"{'invisible': [('birthdate_date', '=', False)]}"
/>
...
@@ -85,17 +84,17 @@
...
@@ -85,17 +84,17 @@
<group>
<group>
<label
for=
"street"
string=
"Alamat"
/>
<label
for=
"street"
string=
"Alamat"
/>
<div
class=
"o_address_format"
>
<div
class=
"o_address_format"
>
<field
name=
"street"
string
=
"Jalan / No."
/>
<field
name=
"street"
placeholder
=
"Jalan / No."
/>
<label
for=
"rt"
string=
"RT"
/>
<label
for=
"rt"
string=
"RT"
attrs=
"{'invisible': [('rt', '=', False)]}"
/>
<field
name=
"rt"
/>
<field
name=
"rt"
placeholder=
"RT"
/>
<label
for=
"rw"
string=
"RW"
/>
<label
for=
"rw"
string=
"RW"
attrs=
"{'invisible': [('rw', '=', False)]}"
/>
<field
name=
"rw"
/>
<field
name=
"rw"
placeholder=
"RW"
/>
<field
name=
"kelurahan_id"
placeholder=
"Kelurahan"
/>
<field
name=
"kelurahan_id"
placeholder=
"Kelurahan"
/>
<field
name=
"kecamatan_id"
placeholder=
"Kecamatan"
/>
<field
name=
"kecamatan_id"
placeholder=
"Kecamatan"
/>
<field
name=
"kabupaten_id"
placeholder=
"Kabupaten"
/>
<field
name=
"kabupaten_id"
placeholder=
"Kabupaten"
/>
<field
name=
"state_id"
placeholder=
"Provinsi"
/>
<field
name=
"state_id"
placeholder=
"Provinsi"
/>
<field
name=
"country_id"
placeholder=
"Negara"
/>
<field
name=
"country_id"
placeholder=
"Negara"
/>
<field
name=
"zip"
/>
<field
name=
"zip"
placeholder=
"Kode Pos"
/>
</div>
</div>
</group>
</group>
</group>
</group>
...
@@ -131,7 +130,7 @@
...
@@ -131,7 +130,7 @@
<field
name=
"gender"
/>
<field
name=
"gender"
/>
<field
name=
"birthdate_date"
placeholder=
"17-8-1945"
/>
<field
name=
"birthdate_date"
placeholder=
"17-8-1945"
/>
<field
name=
"age"
attrs=
"{'invisible': [('birthdate_date', '=', False)]}"
/>
<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=
"mobile"
widget=
"phone"
/>
<field
name=
"email"
widget=
"email"
/>
<field
name=
"email"
widget=
"email"
/>
<field
name=
"phone"
widget=
"phone"
/>
<field
name=
"phone"
widget=
"phone"
/>
...
@@ -150,7 +149,7 @@
...
@@ -150,7 +149,7 @@
<field
name=
"kabupaten_id"
placeholder=
"Kabupaten"
/>
<field
name=
"kabupaten_id"
placeholder=
"Kabupaten"
/>
<field
name=
"state_id"
placeholder=
"Provinsi"
/>
<field
name=
"state_id"
placeholder=
"Provinsi"
/>
<field
name=
"country_id"
placeholder=
"Negara"
/>
<field
name=
"country_id"
placeholder=
"Negara"
/>
<field
name=
"zip"
/>
<field
name=
"zip"
placeholder=
"Kode Pos"
/>
</div>
</div>
</group>
</group>
</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