diff options
| author | Priyanka Kakadiya <pka@odoo.com> | 2018-04-05 17:03:48 +0530 |
|---|---|---|
| committer | Pierre Masereel <pim@odoo.com> | 2018-08-30 15:32:42 +0200 |
| commit | 8b355457c4b1c60defed944306fa8515f15b3ab8 (patch) | |
| tree | 18325e6d6749d334ca46ca1851ac25c6cc8bb6bb | |
| parent | 73f1d590965a483a4f8674807f5181f68956fa03 (diff) | |
[IMP] maintenance,hr_maintenance: notify user assigned to a request
When a user is assigned as responsible of request, we want him to get a
mail saying that he's a assigned to this request, a standard behaviour
exists in Odoo to perform such a thing, which consist of having a field
named 'user_id' which is tracked, so to avoid overriding the method, we
renamed the field 'technician_user_id' in 'user_id'.
Wre also set teh mail subtype 'request create' with default false, to
have the same behaviour as the on in project, meaning that it is true
only if you have the parent subtype set to true.
TASK-ID: 58645
| -rw-r--r-- | addons/hr_maintenance/views/maintenance_views.xml | 2 | ||||
| -rw-r--r-- | addons/maintenance/data/mail_data.xml | 1 | ||||
| -rw-r--r-- | addons/maintenance/data/maintenance_demo.xml | 10 | ||||
| -rw-r--r-- | addons/maintenance/models/maintenance.py | 24 | ||||
| -rw-r--r-- | addons/maintenance/security/maintenance.xml | 2 | ||||
| -rw-r--r-- | addons/maintenance/tests/test_maintenance.py | 4 | ||||
| -rw-r--r-- | addons/maintenance/tests/test_maintenance_multicompany.py | 4 | ||||
| -rw-r--r-- | addons/maintenance/views/maintenance_views.xml | 26 |
8 files changed, 37 insertions, 36 deletions
diff --git a/addons/hr_maintenance/views/maintenance_views.xml b/addons/hr_maintenance/views/maintenance_views.xml index 24aa8ad7374..0ede973b408 100644 --- a/addons/hr_maintenance/views/maintenance_views.xml +++ b/addons/hr_maintenance/views/maintenance_views.xml @@ -7,7 +7,7 @@ <field name="model">maintenance.request</field> <field name="inherit_id" ref="maintenance.hr_equipment_request_view_search"/> <field name="arch" type="xml"> - <xpath expr="field[@name='technician_user_id']" position="after"> + <xpath expr="field[@name='user_id']" position="after"> <field name="employee_id"/> </xpath> <xpath expr="//filter[@name='my_requests']" position="replace"> diff --git a/addons/maintenance/data/mail_data.xml b/addons/maintenance/data/mail_data.xml index c7b3945b0c7..e730a1023d5 100644 --- a/addons/maintenance/data/mail_data.xml +++ b/addons/maintenance/data/mail_data.xml @@ -19,6 +19,7 @@ <record id="mt_req_created" model="mail.message.subtype"> <field name="name">Request Created</field> <field name="res_model">maintenance.request</field> + <field name="default" eval="False"/> <field name="hidden" eval="True"/> <field name="description">Maintenance Request created</field> </record> diff --git a/addons/maintenance/data/maintenance_demo.xml b/addons/maintenance/data/maintenance_demo.xml index a5bc8bb02e9..25b91498d4d 100644 --- a/addons/maintenance/data/maintenance_demo.xml +++ b/addons/maintenance/data/maintenance_demo.xml @@ -111,7 +111,7 @@ <record id="m_request_3" model="maintenance.request"> <field name="name">Resolution is bad</field> - <field name="technician_user_id" ref="base.user_demo"/> + <field name="user_id" ref="base.user_demo"/> <field name="owner_user_id" ref="base.user_root"/> <field name="equipment_id" ref="equipment_monitor6"/> <field name="color">7</field> @@ -120,7 +120,7 @@ </record> <record id="m_request_4" model="maintenance.request"> <field name="name">Some keys are not working</field> - <field name="technician_user_id" ref="base.user_root"/> + <field name="user_id" ref="base.user_root"/> <field name="owner_user_id" ref="base.user_root"/> <field name="equipment_id" ref="equipment_computer3"/> <field name="stage_id" ref="stage_0"/> @@ -128,7 +128,7 @@ </record> <record id="m_request_6" model="maintenance.request"> <field name="name">Motherboard failed</field> - <field name="technician_user_id" ref="base.user_demo"/> + <field name="user_id" ref="base.user_demo"/> <field name="owner_user_id" ref="base.user_root"/> <field name="equipment_id" ref="equipment_computer5"/> <field name="stage_id" ref="stage_4"/> @@ -136,7 +136,7 @@ </record> <record id="m_request_7" model="maintenance.request"> <field name="name">Battery drains fast</field> - <field name="technician_user_id" ref="base.user_demo"/> + <field name="user_id" ref="base.user_demo"/> <field name="owner_user_id" ref="base.user_demo"/> <field name="equipment_id" ref="equipment_computer9"/> <field name="stage_id" ref="stage_1"/> @@ -144,7 +144,7 @@ </record> <record id="m_request_8" model="maintenance.request"> <field name="name">Touchpad not working</field> - <field name="technician_user_id" ref="base.user_demo"/> + <field name="user_id" ref="base.user_demo"/> <field name="owner_user_id" ref="base.user_demo"/> <field name="equipment_id" ref="equipment_computer11"/> <field name="stage_id" ref="stage_1"/> diff --git a/addons/maintenance/models/maintenance.py b/addons/maintenance/models/maintenance.py index f0962f6507f..c117e5f72a6 100644 --- a/addons/maintenance/models/maintenance.py +++ b/addons/maintenance/models/maintenance.py @@ -235,7 +235,7 @@ class MaintenanceEquipment(models.Model): 'equipment_id': self.id, 'maintenance_type': 'preventive', 'owner_user_id': self.owner_user_id.id, - 'technician_user_id': self.technician_user_id.id, + 'user_id': self.technician_user_id.id, 'maintenance_team_id': self.maintenance_team_id.id, 'duration': self.maintenance_duration, }) @@ -256,7 +256,7 @@ class MaintenanceEquipment(models.Model): class MaintenanceRequest(models.Model): _name = 'maintenance.request' _inherit = ['mail.thread', 'mail.activity.mixin'] - _description = 'Maintenance Requests' + _description = 'Maintenance Request' _order = "id desc" @api.returns('self') @@ -289,7 +289,7 @@ class MaintenanceRequest(models.Model): 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) - technician_user_id = fields.Many2one('res.users', string='Technician', track_visibility='onchange', oldname='user_id') + user_id = fields.Many2one('res.users', string='Technician', track_visibility='onchange', oldname='technician_user_id') stage_id = fields.Many2one('maintenance.stage', string='Stage', ondelete='restrict', track_visibility='onchange', group_expand='_read_group_stage_ids', default=_default_stage) priority = fields.Selection([('0', 'Very Low'), ('1', 'Low'), ('2', 'Normal'), ('3', 'High')], string='Priority') @@ -318,22 +318,22 @@ class MaintenanceRequest(models.Model): @api.onchange('equipment_id') def onchange_equipment_id(self): if self.equipment_id: - self.technician_user_id = self.equipment_id.technician_user_id if self.equipment_id.technician_user_id else self.equipment_id.category_id.technician_user_id + self.user_id = self.equipment_id.technician_user_id if self.equipment_id.technician_user_id else self.equipment_id.category_id.technician_user_id self.category_id = self.equipment_id.category_id if self.equipment_id.maintenance_team_id: self.maintenance_team_id = self.equipment_id.maintenance_team_id.id @api.onchange('category_id') def onchange_category_id(self): - if not self.technician_user_id or not self.equipment_id or (self.technician_user_id and not self.equipment_id.technician_user_id): - self.technician_user_id = self.category_id.technician_user_id + if not self.user_id or not self.equipment_id or (self.user_id and not self.equipment_id.technician_user_id): + self.user_id = self.category_id.technician_user_id @api.model def create(self, vals): # context: no_log, because subtype already handle this self = self.with_context(mail_create_nolog=True) request = super(MaintenanceRequest, self).create(vals) - if request.owner_user_id or request.technician_user_id: + if request.owner_user_id or request.user_id: request._add_followers() if request.equipment_id and not request.maintenance_team_id: request.maintenance_team_id = request.equipment_id.maintenance_team_id @@ -347,12 +347,12 @@ class MaintenanceRequest(models.Model): if vals and 'kanban_state' not in vals and 'stage_id' in vals: vals['kanban_state'] = 'normal' res = super(MaintenanceRequest, self).write(vals) - if vals.get('owner_user_id') or vals.get('technician_user_id'): + if vals.get('owner_user_id') or vals.get('user_id'): self._add_followers() if self.stage_id.done and 'stage_id' in vals: self.write({'close_date': fields.Date.today()}) self.activity_feedback(['maintenance.mail_act_maintenance_request']) - if vals.get('technician_user_id') or vals.get('schedule_date'): + if vals.get('user_id') or vals.get('schedule_date'): self.activity_update() if vals.get('equipment_id'): # need to change description of activity also so unlink old and create new activity @@ -369,7 +369,7 @@ class MaintenanceRequest(models.Model): updated = request.activity_reschedule( ['maintenance.mail_act_maintenance_request'], date_deadline=date_dl, - new_user_id=request.technician_user_id.id or request.owner_user_id.id or self.env.uid) + new_user_id=request.user_id.id or request.owner_user_id.id or self.env.uid) if not updated: if request.equipment_id: note = _('Request planned for <a href="#" data-oe-model="%s" data-oe-id="%s">%s</a>') % ( @@ -379,11 +379,11 @@ class MaintenanceRequest(models.Model): request.activity_schedule( 'maintenance.mail_act_maintenance_request', fields.Datetime.from_string(request.schedule_date).date(), - note=note, user_id=request.technician_user_id.id or request.owner_user_id.id or self.env.uid) + note=note, user_id=request.user_id.id or request.owner_user_id.id or self.env.uid) def _add_followers(self): for request in self: - partner_ids = (request.owner_user_id.partner_id + request.technician_user_id.partner_id).ids + partner_ids = (request.owner_user_id.partner_id + request.user_id.partner_id).ids request.message_subscribe(partner_ids=partner_ids) @api.model diff --git a/addons/maintenance/security/maintenance.xml b/addons/maintenance/security/maintenance.xml index 1214b91bd67..9e8fadfe24b 100644 --- a/addons/maintenance/security/maintenance.xml +++ b/addons/maintenance/security/maintenance.xml @@ -12,7 +12,7 @@ <record id="equipment_request_rule_user" model="ir.rule"> <field name="name">Users are allowed to access their own maintenance requests</field> <field name="model_id" ref="model_maintenance_request"/> - <field name="domain_force">['|', ('message_partner_ids', 'in', [user.partner_id.id]), ('technician_user_id.id', '=', user.id)]</field> + <field name="domain_force">['|', ('message_partner_ids', 'in', [user.partner_id.id]), ('user_id.id', '=', user.id)]</field> <field name="groups" eval="[(4, ref('base.group_user'))]"/> </record> diff --git a/addons/maintenance/tests/test_maintenance.py b/addons/maintenance/tests/test_maintenance.py index 3725bf82df7..e4f4edb62e4 100644 --- a/addons/maintenance/tests/test_maintenance.py +++ b/addons/maintenance/tests/test_maintenance.py @@ -58,7 +58,7 @@ class TestEquipment(TransactionCase): # Create new maintenance request maintenance_request_01 = self.maintenance_request.sudo(self.user).create({ 'name': 'Resolution is bad', - 'technician_user_id': self.user.id, + 'user_id': self.user.id, 'owner_user_id': self.user.id, 'equipment_id': equipment_01.id, 'color': 7, @@ -92,7 +92,7 @@ class TestEquipment(TransactionCase): maintenance_request_cron = self.maintenance_request.create({ 'name': 'Need a special calibration', - 'technician_user_id': self.user.id, + 'user_id': self.user.id, 'request_date': (datetime.datetime.now() + relativedelta.relativedelta(days=7)).strftime('%Y-%m-%d'), 'maintenance_type': 'preventive', 'owner_user_id': self.user.id, diff --git a/addons/maintenance/tests/test_maintenance_multicompany.py b/addons/maintenance/tests/test_maintenance_multicompany.py index d9a233e71bf..3ca248ea11b 100644 --- a/addons/maintenance/tests/test_maintenance_multicompany.py +++ b/addons/maintenance/tests/test_maintenance_multicompany.py @@ -160,7 +160,7 @@ class TestEquipmentMulticompany(TransactionCase): MaintenanceRequest.sudo(user).create({ 'name': 'Some keys are not working', 'company_id': company_b.id, - 'technician_user_id': user.id, + 'user_id': user.id, 'owner_user_id': user.id, }) @@ -168,7 +168,7 @@ class TestEquipmentMulticompany(TransactionCase): MaintenanceRequest.sudo(equipment_manager).create({ 'name': 'Battery drains fast', 'company_id': company_a.id, - 'technician_user_id': equipment_manager.id, + 'user_id': equipment_manager.id, 'owner_user_id': equipment_manager.id, }) diff --git a/addons/maintenance/views/maintenance_views.xml b/addons/maintenance/views/maintenance_views.xml index 4f25d0266a7..ee4d53d2574 100644 --- a/addons/maintenance/views/maintenance_views.xml +++ b/addons/maintenance/views/maintenance_views.xml @@ -9,7 +9,7 @@ <search string="maintenance Request Search"> <field name="name"/> <field name="category_id"/> - <field name="technician_user_id"/> + <field name="user_id"/> <field name="equipment_id"/> <field name="owner_user_id"/> <field name="stage_id"/> @@ -23,7 +23,7 @@ <separator/> <filter string="Unscheduled Maintenance" domain="[('schedule_date', '=', False)]" name="unscheduled"/> <separator/> - <filter string="My Requests" name="my_requests" domain="[('technician_user_id', '=', uid)]"/> + <filter string="My Requests" name="my_requests" domain="[('user_id', '=', uid)]"/> <separator/> <filter string="My Activities" name="activities_my" domain="[('activity_ids.user_id', '=', uid)]"/> @@ -41,7 +41,7 @@ <separator/> <filter string="Archived" name="inactive" domain="[('archive','=',True)]"/> <group expand='0' string='Group by...'> - <filter string='Assigned' name="assigned" domain="[]" context="{'group_by': 'technician_user_id'}"/> + <filter string='Assigned' name="assigned" domain="[]" context="{'group_by': 'user_id'}"/> <filter string='Category' name="category" domain="[]" context="{'group_by' : 'category_id'}"/> <filter string='Stages' name="stages" domain="[]" context="{'group_by' : 'stage_id'}"/> <filter string='Created By' name='created_by' domain="[]" context="{'group_by': 'owner_user_id'}"/> @@ -86,7 +86,7 @@ </group> <group> <field name="maintenance_team_id" options="{'no_create': True, 'no_open': True}"/> - <field name="technician_user_id" string="Responsible"/> + <field name="user_id" string="Responsible"/> <field name="schedule_date"/> <label for="duration"/> <div> @@ -117,7 +117,7 @@ <field name="color"/> <field name="priority"/> <field name="equipment_id"/> - <field name="technician_user_id"/> + <field name="user_id"/> <field name="owner_user_id"/> <field name="category_id"/> <field name="kanban_state"/> @@ -128,7 +128,7 @@ <t t-name="kanban-tooltip"> <ul class="oe_kanban_tooltip"> <li><b>Category:</b> <field name="category_id"/></li> - <li><b>Request to:</b> <field name="technician_user_id"/></li> + <li><b>Request to:</b> <field name="user_id"/></li> </ul> </t> <t t-name="kanban-box"> @@ -165,7 +165,7 @@ </div> <div class="oe_kanban_bottom_right"> <field name="kanban_state" widget="state_selection"/> - <img t-att-src="kanban_image('res.users', 'image_small', record.technician_user_id.raw_value)" t-att-title="record.technician_user_id.value" t-att-alt="record.technician_user_id.value" width="24" height="24" class="oe_kanban_avatar float-right"/> + <img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" t-att-alt="record.user_id.value" width="24" height="24" class="oe_kanban_avatar float-right"/> </div> </div> </div> @@ -186,7 +186,7 @@ <field name="name"/> <field name="request_date" groups="base.group_no_one"/> <field name="owner_user_id"/> - <field name="technician_user_id"/> + <field name="user_id"/> <field name="category_id" groups="maintenance.group_equipment_manager"/> <field name="stage_id"/> </tree> @@ -198,7 +198,7 @@ <field name="model">maintenance.request</field> <field name="arch" type="xml"> <graph string="maintenance Request"> - <field name="technician_user_id"/> + <field name="user_id"/> <field name="stage_id"/> </graph> </field> @@ -209,7 +209,7 @@ <field name="model">maintenance.request</field> <field name="arch" type="xml"> <pivot string="maintenance Request"> - <field name="technician_user_id"/> + <field name="user_id"/> <field name="stage_id"/> </pivot> </field> @@ -220,9 +220,9 @@ <field name="name">equipment.request.calendar</field> <field name="model">maintenance.request</field> <field name="arch" type="xml"> - <calendar date_start="schedule_date" date_delay="duration" color="technician_user_id"> + <calendar date_start="schedule_date" date_delay="duration" color="user_id"> <field name="name"/> - <field name="technician_user_id"/> + <field name="user_id"/> </calendar> </field> </record> @@ -233,7 +233,7 @@ <field name="res_model">maintenance.request</field> <field name="view_mode">kanban,tree,form,pivot,graph,calendar</field> <field name="view_id" ref="hr_equipment_request_view_kanban"/> - <field name="context">{'default_technician_user_id': uid}</field> + <field name="context">{'default_user_id': uid}</field> <field name="help" type="html"> <p class="o_view_nocontent_smiling_face"> Add a new maintenance request |
