summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-24 15:44:15 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-24 15:44:15 +0700
commit029e8fce907060de2a2514b5abc731f4cd9da96e (patch)
tree9559eb4bc43178e3fadcce9ef68395c916b1fe9b
parent63a562d83e9ca64fcd5464e8d63a2a387cc8611a (diff)
User company request approve and reject action
-rw-r--r--indoteknik_custom/models/user_company_request.py16
-rw-r--r--indoteknik_custom/views/user_company_request.xml17
2 files changed, 30 insertions, 3 deletions
diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py
index c69b789c..2467261a 100644
--- a/indoteknik_custom/models/user_company_request.py
+++ b/indoteknik_custom/models/user_company_request.py
@@ -1,4 +1,5 @@
from odoo import models, fields
+from odoo.exceptions import UserError
class UserCompanyRequest(models.Model):
@@ -12,4 +13,19 @@ class UserCompanyRequest(models.Model):
('approved', 'Approve'),
('rejected', 'Reject'),
], string='Approval')
+
+ def write(self, vals):
+ is_approve = vals.get('is_approve')
+ if self.is_approve and is_approve:
+ raise UserError('Tidak dapat mengubah approval yang sudah diisi')
+
+ if not self.is_approve and is_approve:
+ if is_approve == 'approved':
+ self.user_id.parent_id = self.user_company_id.id
+ else:
+ new_company = self.env['res.partner'].create({
+ 'name': self.user_input
+ })
+ self.user_id.parent_id = new_company.id
+ return super(UserCompanyRequest, self).write(vals)
\ No newline at end of file
diff --git a/indoteknik_custom/views/user_company_request.xml b/indoteknik_custom/views/user_company_request.xml
index 0b787683..2efc1e9b 100644
--- a/indoteknik_custom/views/user_company_request.xml
+++ b/indoteknik_custom/views/user_company_request.xml
@@ -4,11 +4,17 @@
<field name="name">user.company.request.tree</field>
<field name="model">user.company.request</field>
<field name="arch" type="xml">
- <tree create="0">
+ <tree create="0" default_order="is_approve desc">
<field name="user_id"/>
<field name="user_company_id"/>
<field name="user_input"/>
- <field name="is_approve"/>
+ <field
+ name="is_approve"
+ widget="badge"
+ decoration-success="is_approve == 'approved'"
+ decoration-danger="is_approve == 'rejected'"
+ />
+ <field name="create_date"/>
</tree>
</field>
</record>
@@ -24,7 +30,12 @@
<field name="user_id" readonly="1"/>
<field name="user_company_id" readonly="1"/>
<field name="user_input" readonly="1"/>
- <field name="is_approve"/>
+ <field
+ name="is_approve"
+ required="1"
+ decoration-success="is_approve == 'approved'"
+ decoration-danger="is_approve == 'rejected'"
+ />
</group>
</group>
</sheet>