[UPD] hr_base: add create user server action in hr employee
This commit is contained in:
parent
4c88afaf70
commit
03990f7166
|
|
@ -47,6 +47,7 @@
|
|||
"views/hr_employee_attachments.xml",
|
||||
"views/hr_penalty_register_view.xml",
|
||||
"views/employee_iqama_document_view.xml",
|
||||
"views/res_users_views.xml",
|
||||
"views/menus_view.xml",
|
||||
'report/hr_layout.xml',
|
||||
"report/employee_dependents_report_template.xml",
|
||||
|
|
|
|||
|
|
@ -28,3 +28,4 @@ from . import hr_employee_attachments
|
|||
from . import resource
|
||||
from . import assets_document
|
||||
from . import hr_department
|
||||
from . import res_users
|
||||
|
|
|
|||
|
|
@ -575,6 +575,26 @@ class HrEmployee(models.Model):
|
|||
def onchange_line_man(self):
|
||||
self.r_manager = self.line_man
|
||||
|
||||
def action_create_user(self):
|
||||
self.ensure_one()
|
||||
if self.user_id:
|
||||
raise ValidationError(_("This employee already has an user."))
|
||||
return {
|
||||
'name': _('Create User'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'res.users',
|
||||
'view_mode': 'form',
|
||||
'view_id': self.env.ref('hr_base.view_users_simple_form').id,
|
||||
'target': 'new',
|
||||
'context': {
|
||||
'default_create_employee_id': self.id,
|
||||
'default_name': self.name,
|
||||
'default_phone': self.work_phone,
|
||||
'default_mobile': self.mobile_phone,
|
||||
'default_login': self.work_email,
|
||||
}
|
||||
}
|
||||
|
||||
def draft_state(self):
|
||||
for item in self:
|
||||
state = item.state
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
from odoo import models, fields, api
|
||||
from odoo.tools.misc import clean_context
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
create_employee = fields.Boolean(store=False, default=True, copy=False, string="Technical field, whether to create an employee")
|
||||
create_employee_id = fields.Many2one('hr.employee', store=False, copy=False, string="Technical field, bind user to this employee on create")
|
||||
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
res = super().create(vals_list)
|
||||
employee_create_vals = []
|
||||
for user, vals in zip(res, vals_list):
|
||||
if not vals.get('create_employee') and not vals.get('create_employee_id'):
|
||||
continue
|
||||
if vals.get('create_employee_id'):
|
||||
self.env['hr.employee'].browse(vals.get('create_employee_id')).user_id = user
|
||||
else:
|
||||
employee_create_vals.append(dict(
|
||||
name=user.name,
|
||||
company_id=user.env.company.id,
|
||||
**self.env['hr.employee']._sync_user(user)
|
||||
))
|
||||
if employee_create_vals:
|
||||
self.env['hr.employee'].with_context(clean_context(self.env.context)).create(employee_create_vals)
|
||||
return res
|
||||
|
|
@ -463,6 +463,30 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_users_simple_form_inherit_hr" model="ir.ui.view">
|
||||
<field name="name">view.users.simple.form.inherit.hr</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_simple_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='mobile']" position="after">
|
||||
<field name="create_employee_id" force_save="1" invisible="1"/>
|
||||
<field name="create_employee" force_save="1" string="Create Employee" invisible="not context.get('allow_create_employee', True)" attrs="{'invisible': [('create_employee_id', '>', 0)]}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_hr_employee_create_user" model="ir.actions.server">
|
||||
<field name="name">Create User</field>
|
||||
<field name="model_id" ref="model_hr_employee"/>
|
||||
<field name="binding_model_id" ref="model_hr_employee"/>
|
||||
<field name="binding_view_types">form</field>
|
||||
<field name="groups_id" eval="[(4, ref('base.group_erp_manager'))]"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
action = records.action_create_user()
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- end hr.employee -->
|
||||
|
||||
<record id="view_hr_job_form_inherit" model="ir.ui.view">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<odoo>
|
||||
|
||||
<record id="view_users_simple_form" model="ir.ui.view">
|
||||
<field name="name">view.users.simple.form.hr</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_simple_form"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<sheet position="after">
|
||||
<footer>
|
||||
<button string="Save" special="save" class="btn btn-primary"/>
|
||||
<button string="Cancel" special="cancel" class="btn btn-secondary"/>
|
||||
</footer>
|
||||
</sheet>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
Loading…
Reference in New Issue