[REF] maintenance: multi company
Ensure proper domains are applied and enforced on relation fields thanks to the `check_company` attributes. task-1985992
This commit is contained in:
@@ -93,6 +93,7 @@ class MaintenanceEquipment(models.Model):
|
||||
_name = 'maintenance.equipment'
|
||||
_inherit = ['mail.thread', 'mail.activity.mixin']
|
||||
_description = 'Maintenance Equipment'
|
||||
_check_company_auto = True
|
||||
|
||||
def _track_subtype(self, init_values):
|
||||
self.ensure_one()
|
||||
@@ -127,7 +128,7 @@ class MaintenanceEquipment(models.Model):
|
||||
owner_user_id = fields.Many2one('res.users', string='Owner', tracking=True)
|
||||
category_id = fields.Many2one('maintenance.equipment.category', string='Equipment Category',
|
||||
tracking=True, group_expand='_read_group_category_ids')
|
||||
partner_id = fields.Many2one('res.partner', string='Vendor')
|
||||
partner_id = fields.Many2one('res.partner', string='Vendor', check_company=True)
|
||||
partner_ref = fields.Char('Vendor Reference')
|
||||
location = fields.Char('Location')
|
||||
model = fields.Char('Model')
|
||||
@@ -258,6 +259,7 @@ class MaintenanceRequest(models.Model):
|
||||
_inherit = ['mail.thread.cc', 'mail.activity.mixin']
|
||||
_description = 'Maintenance Request'
|
||||
_order = "id desc"
|
||||
_check_company_auto = True
|
||||
|
||||
@api.returns('self')
|
||||
def _default_stage(self):
|
||||
@@ -288,7 +290,7 @@ class MaintenanceRequest(models.Model):
|
||||
owner_user_id = fields.Many2one('res.users', string='Created by User', default=lambda s: s.env.uid)
|
||||
category_id = fields.Many2one('maintenance.equipment.category', related='equipment_id.category_id', string='Category', store=True, readonly=True)
|
||||
equipment_id = fields.Many2one('maintenance.equipment', string='Equipment',
|
||||
ondelete='restrict', index=True)
|
||||
ondelete='restrict', index=True, check_company=True)
|
||||
user_id = fields.Many2one('res.users', string='Technician', tracking=True)
|
||||
stage_id = fields.Many2one('maintenance.stage', string='Stage', ondelete='restrict', tracking=True,
|
||||
group_expand='_read_group_stage_ids', default=_default_stage)
|
||||
@@ -301,7 +303,7 @@ class MaintenanceRequest(models.Model):
|
||||
archive = fields.Boolean(default=False, help="Set archive to true to hide the maintenance request without deleting it.")
|
||||
maintenance_type = fields.Selection([('corrective', 'Corrective'), ('preventive', 'Preventive')], string='Maintenance Type', default="corrective")
|
||||
schedule_date = fields.Datetime('Scheduled Date', help="Date the maintenance team plans the maintenance. It should not differ much from the Request Date. ")
|
||||
maintenance_team_id = fields.Many2one('maintenance.team', string='Team', required=True, default=_get_default_team_id)
|
||||
maintenance_team_id = fields.Many2one('maintenance.team', string='Team', required=True, default=_get_default_team_id, check_company=True)
|
||||
duration = fields.Float(help="Duration in hours.")
|
||||
done = fields.Boolean(related='stage_id.done')
|
||||
|
||||
@@ -400,7 +402,9 @@ class MaintenanceTeam(models.Model):
|
||||
active = fields.Boolean(default=True)
|
||||
company_id = fields.Many2one('res.company', string='Company',
|
||||
default=lambda self: self.env.company)
|
||||
member_ids = fields.Many2many('res.users', 'maintenance_team_users_rel', string="Team Members")
|
||||
member_ids = fields.Many2many(
|
||||
'res.users', 'maintenance_team_users_rel', string="Team Members",
|
||||
domain="[('company_ids', 'in', company_id)]")
|
||||
color = fields.Integer("Color Index", default=0)
|
||||
request_ids = fields.One2many('maintenance.request', 'maintenance_team_id', copy=False)
|
||||
equipment_ids = fields.One2many('maintenance.equipment', 'maintenance_team_id', copy=False)
|
||||
|
||||
@@ -74,8 +74,8 @@
|
||||
<group>
|
||||
<group>
|
||||
<field name="owner_user_id" string="Requested By" invisible="1"/>
|
||||
<field name="equipment_id" context="{'default_category_id':category_id}"/>
|
||||
<field name="category_id" groups="maintenance.group_equipment_manager" attrs="{'invisible': [('equipment_id', '=', False)]}"/>
|
||||
<field name="equipment_id" context="{'default_company_id':company_id, 'default_category_id':category_id}"/>
|
||||
<field name="category_id" groups="maintenance.group_equipment_manager" context="{'default_company_id':company_id}" attrs="{'invisible': [('equipment_id', '=', False)]}"/>
|
||||
<field name="request_date" readonly="True"/>
|
||||
<field name="done" invisible="1"/>
|
||||
<field name="close_date" attrs="{'invisible': [('done', '!=', True)]}" readonly="True"/>
|
||||
@@ -94,6 +94,7 @@
|
||||
</div>
|
||||
<field name="priority" widget="priority"/>
|
||||
<field name="email_cc" string="Email cc" groups="base.group_no_one"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name='description' placeholder="Internal Note ......."/>
|
||||
@@ -338,6 +339,7 @@
|
||||
<button name="%(hr_equipment_request_action_from_equipment)d"
|
||||
type="action"
|
||||
class="oe_stat_button"
|
||||
context="{'default_company_id': company_id}"
|
||||
icon="fa-wrench">
|
||||
<field string="Maintenance" name="maintenance_count" widget="statinfo"/>
|
||||
</button>
|
||||
@@ -350,12 +352,12 @@
|
||||
<group>
|
||||
<group>
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="category_id" options="{"no_open": True}"/>
|
||||
<field name="category_id" options="{"no_open": True}" context="{'default_company_id':company_id}"/>
|
||||
<field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
|
||||
<field name="owner_user_id" string="Owner"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="maintenance_team_id" attrs="{'required': [('period', '!=', 0)]}"/>
|
||||
<field name="maintenance_team_id" attrs="{'required': [('period', '!=', 0)]}" context="{'default_company_id':company_id}"/>
|
||||
<field name="technician_user_id"/>
|
||||
<field name="assign_date" groups="base.group_no_one"/>
|
||||
<field name="scrap_date" groups="base.group_no_one"/>
|
||||
|
||||
Reference in New Issue
Block a user