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 6e903196
authored
Jun 19, 2023
by
Owo Sugiana
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Tidak bisa kirim undangan bila tujuan sudah login
1 parent
4e782117
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
64 additions
and
13 deletions
warga/models/res_partner.py
warga/security/ir.model.access.csv
warga/security/ir_rule.xml
warga/views/rt.xml
warga/wizard/undangan.py
warga/models/res_partner.py
View file @
6e90319
...
...
@@ -13,6 +13,11 @@ HUBUNGAN_KELUARGA = [
'Kepala Keluarga'
,
'Suami'
,
'Istri'
,
'Anak'
,
'Menantu'
,
'Cucu'
,
'Orang Tua'
,
'Mertua'
,
'Famili Lain'
]
# https://gis.dukcapil.kemendagri.go.id/arcgis/apps/MapSeries/index.html?appid=0510ddf68e094d56a07a7bf9f5330dfe
RELIGIONS
=
[
'Islam'
,
'Kristen'
,
'Katholik'
,
'Hindu'
,
'Budha'
,
'Konghucu'
,
'Kepercayaan Lain'
]
ERR_NIK
=
ValidationError
(
f
'NIK harus 16 angka'
)
...
...
@@ -34,7 +39,16 @@ class HubunganKeluarga(models.Model):
_order
=
'name'
_description
=
'Hubungan Keluarga'
name
=
fields
.
Char
(
string
=
'Hubungan Keluarga'
)
name
=
fields
.
Char
(
string
=
'Hubungan Keluarga'
,
required
=
True
)
# https://github.com/open-synergy/opnsynid-partner-contact/tree/8.0/partner_contact_religion/models
class
PartnerReligion
(
models
.
Model
):
_name
=
'partner.religion'
_order
=
'id'
_description
=
'Agama'
name
=
fields
.
Char
(
string
=
'Religion'
,
required
=
True
)
class
Partner
(
models
.
Model
):
...
...
@@ -67,9 +81,28 @@ class Partner(models.Model):
[(
'male'
,
'Laki-laki'
),
(
'female'
,
'Perempuan'
)])
# https://github.com/OCA/partner-contact/blob/15.0/partner_contact_birthdate
birthdate_date
=
fields
.
Date
(
'Tanggal Lahir'
)
age
=
fields
.
Integer
(
readonly
=
True
,
compute
=
'_compute_age'
)
age
=
fields
.
Integer
(
string
=
'Usia'
,
readonly
=
True
,
compute
=
'_compute_age'
)
# https://github.com/OCA/partner-contact/blob/15.0/partner_contact_nationality
nationality_id
=
fields
.
Many2one
(
'res.country'
,
'Warga Negara'
)
religion_id
=
fields
.
Many2one
(
'partner.religion'
,
'Agama'
)
def
_create_hubungan_keluarga
(
self
):
# Buat daftar Hubungan Keluarga
for
name
in
HUBUNGAN_KELUARGA
:
res
=
self
.
env
[
'hubungan.keluarga'
]
.
search
(
[(
'name'
,
'='
,
name
)],
limit
=
1
)
if
not
res
:
d
=
dict
(
name
=
name
)
self
.
env
[
'hubungan.keluarga'
]
.
create
(
d
)
def
_create_religion
(
self
):
# Buat daftar Agama
for
name
in
RELIGIONS
:
res
=
self
.
env
[
'partner.religion'
]
.
search
(
[(
'name'
,
'='
,
name
)],
limit
=
1
)
if
not
res
:
d
=
dict
(
name
=
name
)
self
.
env
[
'partner.religion'
]
.
create
(
d
)
@api.model
def
create
(
self
,
vals
):
...
...
@@ -83,13 +116,8 @@ class Partner(models.Model):
# 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
)
self
.
_create_hubungan_keluarga
()
self
.
_create_religion
()
return
res
@api.depends
(
"birthdate_date"
)
...
...
warga/security/ir.model.access.csv
View file @
6e90319
...
...
@@ -4,3 +4,4 @@ access_undangan_portal,access_undangan_dari_portal,model_warga_undangan,base.gro
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
access_partner_religion,access_partner_religion,model_partner_religion,base.group_user,1,1,1,1
warga/security/ir_rule.xml
View file @
6e90319
...
...
@@ -22,6 +22,13 @@
[('create_uid', '=', user.id)]
</field>
</record>
<record
model=
"ir.rule"
id=
"akses_partner_religion"
>
<field
name=
"name"
>
Hak Akses Agama
</field>
<field
name=
"model_id"
ref=
"model_partner_religion"
/>
<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 @
6e90319
...
...
@@ -60,6 +60,7 @@
'default_zip':
zip}"
>
<tree>
<field
name=
"name"
/>
<field
name=
"ref"
string=
"Panggilan"
/>
<field
name=
"age"
/>
<field
name=
"street"
string=
"Jalan / No."
/>
<field
name=
"mobile"
/>
...
...
@@ -72,7 +73,8 @@
<group>
<group>
<field
name=
"name"
/>
<!-- field name="title" options='{"no_open": True}'/-->
<!-- https://www.odoo.com/id_ID/forum/help-1/can-contacts-have-a-nickname-197033 -->
<field
name=
"ref"
string=
"Panggilan"
/>
<field
name=
"gender"
/>
<field
name=
"birthdate_date"
placeholder=
"17-8-1945"
/>
<field
name=
"age"
attrs=
"{'invisible': [('birthdate_date', '=', False)]}"
/>
...
...
@@ -80,6 +82,8 @@
<field
name=
"email"
widget=
"email"
/>
<field
name=
"phone"
widget=
"phone"
/>
<field
name=
"nationality_id"
/>
<field
name=
"function"
string=
"Pekerjaan"
/>
<field
name=
"religion_id"
/>
</group>
<group>
<label
for=
"street"
string=
"Alamat"
/>
...
...
@@ -111,9 +115,11 @@
'default_kecamatan_id':
kecamatan_id,
'default_kelurahan_id':
kelurahan_id,
'default_rw':
rw,
'default_rt':
rt,
'default_zip':
zip}"
>
'default_zip':
zip,
'default_religion_id':
religion_id}"
>
<tree>
<field
name=
"name"
/>
<field
name=
"ref"
string=
"Panggilan"
/>
<field
name=
"gender"
/>
<field
name=
"age"
/>
<field
name=
"hubungan_keluarga"
/>
...
...
@@ -127,6 +133,7 @@
<group>
<group>
<field
name=
"name"
/>
<field
name=
"ref"
string=
"Panggilan"
/>
<field
name=
"gender"
/>
<field
name=
"birthdate_date"
placeholder=
"17-8-1945"
/>
<field
name=
"age"
attrs=
"{'invisible': [('birthdate_date', '=', False)]}"
/>
...
...
@@ -135,6 +142,8 @@
<field
name=
"email"
widget=
"email"
/>
<field
name=
"phone"
widget=
"phone"
/>
<field
name=
"nationality_id"
/>
<field
name=
"function"
string=
"Pekerjaan"
/>
<field
name=
"religion_id"
/>
</group>
<group>
<label
for=
"rt"
string=
"Alamat"
/>
...
...
warga/wizard/undangan.py
View file @
6e90319
...
...
@@ -28,13 +28,19 @@ class KirimUndangan(models.TransientModel):
t
=
self
.
email
.
split
(
'@'
)
if
len
(
t
)
!=
2
:
raise
ValidationError
(
f
'Email {self.email} tidak benar'
)
partner
=
self
.
env
[
'res.partner'
]
.
sudo
()
.
search
(
[(
'email'
,
'='
,
self
.
email
)],
limit
=
1
)
if
partner
and
not
partner
.
signup_token
:
raise
ValidationError
(
f
'Email {self.email} sudah terdaftar'
)
template
=
self
.
env
.
ref
(
'warga.warga_undangan_email'
)
if
not
template
:
raise
UserError
(
_
(
'The template "Portal: new user" not found for sending '
'email to the portal user.'
))
d
=
dict
(
name
=
self
.
name
,
email
=
self
.
email
,
user_id
=
self
.
env
.
user
.
id
)
partner
=
self
.
env
[
'res.partner'
]
.
create
(
d
)
if
not
partner
:
d
=
dict
(
name
=
self
.
name
,
email
=
self
.
email
,
user_id
=
self
.
env
.
user
.
id
)
partner
=
self
.
env
[
'res.partner'
]
.
create
(
d
)
lang
=
partner
.
sudo
()
.
lang
portal_url
=
partner
.
with_context
(
signup_force_type_in_url
=
''
,
lang
=
lang
)
.
\
...
...
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