工作流权限调整
This commit is contained in:
@@ -77,6 +77,25 @@ class SoongWorkflowRecord(models.Model):
|
||||
compute='_compute_is_to_do',
|
||||
search='_search_is_to_do',
|
||||
)
|
||||
|
||||
is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company',search='_search_part_of_company')
|
||||
|
||||
@api.depends_context('uid', 'company')
|
||||
@api.depends('company_id')
|
||||
def _compute_is_company(self):
|
||||
active_company_ids = self.env.companies
|
||||
for employee in self:
|
||||
employee.is_company = employee.company_id in active_company_ids
|
||||
|
||||
def _search_part_of_company(self, operator, value):
|
||||
company_ids = self.env.companies.ids
|
||||
if not value:
|
||||
operator = '!=' if operator == '=' else '='
|
||||
if operator == '=':
|
||||
return [('company_id', 'in', company_ids)]
|
||||
else:
|
||||
return [('company_id', 'not in', company_ids)]
|
||||
|
||||
@api.depends('employee_ids', 'soong_state', 'reclaim_state')
|
||||
def _compute_is_to_do(self):
|
||||
current_uid = self.env.user.id
|
||||
|
||||
@@ -324,6 +324,7 @@
|
||||
<record id="soong_workflow_record_todo_action" model="ir.actions.act_window">
|
||||
<field name="name">待办</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1,
|
||||
@@ -336,6 +337,7 @@
|
||||
<record id="soong_workflow_record_done_action" model="ir.actions.act_window">
|
||||
<field name="name">已办</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1,
|
||||
@@ -350,6 +352,7 @@
|
||||
<record id="soong_workflow_department_record_action" model="ir.actions.act_window">
|
||||
<field name="name">流程查询</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="domain">[('reclaim_state', '=', False), ('member_of_department', '=', True)]</field>
|
||||
@@ -360,6 +363,7 @@
|
||||
<record id="soong_workflow_hr_employee_action" model="ir.actions.act_window">
|
||||
<field name="name">人事相关流程</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="domain">[('reclaim_state', '=', False), '|', ('approvals_group_id.name', '=', '人力资源'),
|
||||
@@ -370,6 +374,7 @@
|
||||
<record id="soong_workflow_other_record_action" model="ir.actions.act_window">
|
||||
<field name="name">流程查询</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="domain">[('reclaim_state', '=', False), ('approvals_group_id.name', '!=', '人力资源'),
|
||||
@@ -381,6 +386,7 @@
|
||||
<record id="soong_workflow_record_action_admin" model="ir.actions.act_window">
|
||||
<field name="name">流程监控</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,form,search</field>
|
||||
<!-- <field name="context">{'search_default_group_by_group_soong_state': True, 'search_default_group_by_workflow_id': True}</field>-->
|
||||
@@ -391,6 +397,7 @@
|
||||
<record id="soong_workflow_record_action_reclaim" model="ir.actions.act_window">
|
||||
<field name="name">工作流回收站</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('reclaim_state', '=', True)]</field>
|
||||
|
||||
@@ -53,6 +53,24 @@ class HrAttendance(models.Model):
|
||||
)
|
||||
is_approval = fields.Boolean(string="是否审批修正", default=False)
|
||||
|
||||
is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company',search='_search_part_of_company')
|
||||
|
||||
@api.depends_context('uid', 'company')
|
||||
@api.depends('company_id')
|
||||
def _compute_is_company(self):
|
||||
active_company_ids = self.env.companies
|
||||
for employee in self:
|
||||
employee.is_company = employee.company_id in active_company_ids
|
||||
|
||||
def _search_part_of_company(self, operator, value):
|
||||
company_ids = self.env.companies.ids
|
||||
if not value:
|
||||
operator = '!=' if operator == '=' else '='
|
||||
if operator == '=':
|
||||
return [('company_id', 'in', company_ids)]
|
||||
else:
|
||||
return [('company_id', 'not in', company_ids)]
|
||||
|
||||
def action_show_details(self):
|
||||
self.ensure_one()
|
||||
view = self.env.ref("yuthon_wechat.view_hr_attendance_detail_tree")
|
||||
|
||||
@@ -34,11 +34,11 @@
|
||||
<field name="model_id" ref="model_applet_address"/>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
<record model="ir.rule" id="hr_attendance_rule">
|
||||
<field name="name">考勤记录多公司</field>
|
||||
<field name="model_id" ref="model_hr_attendance"/>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
<!-- <record model="ir.rule" id="hr_attendance_rule">-->
|
||||
<!-- <field name="name">考勤记录多公司</field>-->
|
||||
<!-- <field name="model_id" ref="model_hr_attendance"/>-->
|
||||
<!-- <field name="domain_force">[('company_id', 'in', company_ids)]</field>-->
|
||||
<!-- </record>-->
|
||||
<record model="ir.rule" id="yuthon_vacation_reports_rule">
|
||||
<field name="name">假期额度记录多公司</field>
|
||||
<field name="model_id" ref="model_yuthon_vacation_reports"/>
|
||||
|
||||
@@ -157,11 +157,13 @@
|
||||
</record>
|
||||
<record id="view_attendance_going_action" model="ir.actions.act_window">
|
||||
<field name="name">出勤</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">hr.attendance</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<record id="hr_attendance.hr_attendance_action" model="ir.actions.act_window">
|
||||
<field name="name">全部考勤</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">hr.attendance</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('employee_id.resource_calendar_id.name', '=', '行政考勤')]</field>
|
||||
|
||||
@@ -76,7 +76,24 @@ class YuthonOnboardApproval(models.Model):
|
||||
salary_group_id = fields.Many2one(
|
||||
"yuthon.salary.group", string="工资单分组", store=True, index=True
|
||||
)
|
||||
is_this_company = fields.Boolean(string='本公司', default=True)
|
||||
|
||||
is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company',search='_search_part_of_company')
|
||||
|
||||
@api.depends_context('uid', 'company')
|
||||
@api.depends('company_id')
|
||||
def _compute_is_company(self):
|
||||
active_company_ids = self.env.companies
|
||||
for employee in self:
|
||||
employee.is_company = employee.company_id in active_company_ids
|
||||
|
||||
def _search_part_of_company(self, operator, value):
|
||||
company_ids = self.env.companies.ids
|
||||
if not value:
|
||||
operator = '!=' if operator == '=' else '='
|
||||
if operator == '=':
|
||||
return [('company_id', 'in', company_ids)]
|
||||
else:
|
||||
return [('company_id', 'not in', company_ids)]
|
||||
|
||||
def _get_default_name_title(self):
|
||||
return self._description if self._description else self._name
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record model="ir.rule" id="yuthon_onboard_approval_rule">
|
||||
<field name="name">入职多公司</field>
|
||||
<field name="model_id" ref="model_yuthon_onboard_approval"/>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
<!-- <record model="ir.rule" id="yuthon_onboard_approval_rule">-->
|
||||
<!-- <field name="name">入职多公司</field>-->
|
||||
<!-- <field name="model_id" ref="model_yuthon_onboard_approval"/>-->
|
||||
<!-- <field name="domain_force">[('company_id', 'in', company_ids)]</field>-->
|
||||
<!-- </record>-->
|
||||
</odoo>
|
||||
@@ -36,7 +36,7 @@
|
||||
<field name="urgency_level" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="is_this_company"/>
|
||||
<field name="is_company"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="is_issues"/>
|
||||
@@ -123,6 +123,7 @@
|
||||
|
||||
<record id="yuthon_onboard_approval_action" model="ir.actions.act_window">
|
||||
<field name="name">基本信息</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">yuthon.onboard.approval</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<field name="padding">3</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.rule" id="model_purchase_order_rule">
|
||||
<field name="name">采购多公司</field>
|
||||
<field name="model_id" ref="model_purchase_order"/>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
<!-- <record model="ir.rule" id="model_purchase_order_rule">-->
|
||||
<!-- <field name="name">采购多公司</field>-->
|
||||
<!-- <field name="model_id" ref="model_purchase_order"/>-->
|
||||
<!-- <field name="domain_force">[('company_id', 'in', company_ids)]</field>-->
|
||||
<!-- </record>-->
|
||||
</odoo>
|
||||
|
||||
@@ -36,6 +36,23 @@ class InheritPurchaseOrder(models.Model):
|
||||
pay_way = fields.Selection([('onetime', '一次性'), ('installment', '分期')], string="付款方式", default='onetime')
|
||||
reason_text = fields.Text(string="申请事由")
|
||||
pay_line_ids = fields.One2many('purchase.order.pay.line', 'order_id', string="付款详情")
|
||||
is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company',search='_search_part_of_company')
|
||||
|
||||
@api.depends_context('uid', 'company')
|
||||
@api.depends('company_id')
|
||||
def _compute_is_company(self):
|
||||
active_company_ids = self.env.companies
|
||||
for employee in self:
|
||||
employee.is_company = employee.company_id in active_company_ids
|
||||
|
||||
def _search_part_of_company(self, operator, value):
|
||||
company_ids = self.env.companies.ids
|
||||
if not value:
|
||||
operator = '!=' if operator == '=' else '='
|
||||
if operator == '=':
|
||||
return [('company_id', 'in', company_ids)]
|
||||
else:
|
||||
return [('company_id', 'not in', company_ids)]
|
||||
|
||||
def update_state(self):
|
||||
order_ids = self.env["purchase.order"].browse(
|
||||
|
||||
@@ -158,4 +158,10 @@
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.update_state()</field>
|
||||
</record>
|
||||
|
||||
<record id="inherit_purchase_form_action" model="ir.actions.act_window">
|
||||
<field name="name">Purchase Orders</field>
|
||||
<field name="domain">[('is_company', '=', True)]</field>
|
||||
<field name="res_model">purchase.order</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user