diff --git a/addons/fleet/__manifest__.py b/addons/fleet/__manifest__.py
index 623f655e995..646e28b1294 100644
--- a/addons/fleet/__manifest__.py
+++ b/addons/fleet/__manifest__.py
@@ -35,8 +35,10 @@ Main Features
'views/fleet_vehicle_views.xml',
'views/fleet_vehicle_cost_views.xml',
'views/fleet_board_view.xml',
+ 'views/mail_activity_views.xml',
'data/fleet_cars_data.xml',
'data/fleet_data.xml',
+ 'data/mail_data.xml',
],
'demo': ['data/fleet_demo.xml'],
diff --git a/addons/fleet/data/mail_data.xml b/addons/fleet/data/mail_data.xml
new file mode 100644
index 00000000000..a8098b50f6c
--- /dev/null
+++ b/addons/fleet/data/mail_data.xml
@@ -0,0 +1,10 @@
+
+
+
+
+ Contract to Renew
+ fa-car
+
+
+
+
diff --git a/addons/fleet/models/fleet_vehicle_cost.py b/addons/fleet/models/fleet_vehicle_cost.py
index 76e3b713b2a..b8b3602f851 100644
--- a/addons/fleet/models/fleet_vehicle_cost.py
+++ b/addons/fleet/models/fleet_vehicle_cost.py
@@ -71,7 +71,7 @@ class FleetVehicleCost(models.Model):
class FleetVehicleLogContract(models.Model):
- _inherit = ['mail.thread']
+ _inherit = ['mail.thread', 'mail.activity.mixin']
_inherits = {'fleet.vehicle.cost': 'cost_id'}
_name = 'fleet.vehicle.log.contract'
_description = 'Contract information on a vehicle'
@@ -263,17 +263,12 @@ class FleetVehicleLogContract(models.Model):
date_today = fields.Date.from_string(fields.Date.today())
in_fifteen_days = fields.Date.to_string(date_today + relativedelta(days=+15))
nearly_expired_contracts = self.search([('state', '=', 'open'), ('expiration_date', '<', in_fifteen_days)])
- res = {}
- for contract in nearly_expired_contracts:
- if contract.vehicle_id.id in res:
- res[contract.vehicle_id.id] += 1
- else:
- res[contract.vehicle_id.id] = 1
- Vehicle = self.env['fleet.vehicle']
- for vehicle, value in res.items():
- Vehicle.browse(vehicle).message_post(body=_('%s contract(s) will expire soon and should be renewed and/or closed!') % value)
nearly_expired_contracts.write({'state': 'diesoon'})
+ for contract in nearly_expired_contracts.filtered(lambda contract: contract.user_id):
+ contract.activity_schedule(
+ 'fleet.mail_act_fleet_contract_to_renew', contract.expiration_date,
+ user_id=contract.user_id.id)
expired_contracts = self.search([('state', '!=', 'expired'), ('expiration_date', '<',fields.Date.today() )])
expired_contracts.write({'state': 'expired'})
@@ -284,7 +279,6 @@ class FleetVehicleLogContract(models.Model):
now_running_contracts = self.search([('state', '=', 'futur'), ('start_date', '<=', fields.Date.today())])
now_running_contracts.write({'state': 'open'})
- @api.model
def run_scheduler(self):
self.scheduler_manage_auto_costs()
self.scheduler_manage_contract_expiration()
diff --git a/addons/fleet/security/ir.model.access.csv b/addons/fleet/security/ir.model.access.csv
index bc2901071ad..78090d174e0 100644
--- a/addons/fleet/security/ir.model.access.csv
+++ b/addons/fleet/security/ir.model.access.csv
@@ -19,3 +19,4 @@ fleet_vehicle_log_services_access_right,fleet_vehicle_log_services_access_right,
fleet_vehicle_log_contract_access_right,fleet_vehicle_log_contract_access_right,model_fleet_vehicle_log_contract,fleet_group_manager,1,1,1,1
fleet_service_type_access_right,fleet_service_type_access_right,model_fleet_service_type,fleet_group_manager,1,1,1,1
access_fleet_vehicle_cost,access_fleet_vehicle_cost,model_fleet_vehicle_cost,fleet_group_manager,1,1,1,1
+access_mail_activity_type_fleet_manager,mail.activity.type.fleet.manager,mail.model_mail_activity_type,fleet.fleet_group_manager,1,1,1,1
diff --git a/addons/fleet/views/fleet_vehicle_cost_views.xml b/addons/fleet/views/fleet_vehicle_cost_views.xml
index 72c3f17065a..e62617e98b3 100644
--- a/addons/fleet/views/fleet_vehicle_cost_views.xml
+++ b/addons/fleet/views/fleet_vehicle_cost_views.xml
@@ -251,6 +251,7 @@
+
@@ -337,6 +338,15 @@
+
+
+
+
diff --git a/addons/fleet/views/fleet_vehicle_views.xml b/addons/fleet/views/fleet_vehicle_views.xml
index 6ae5fc92316..0dc0463c778 100644
--- a/addons/fleet/views/fleet_vehicle_views.xml
+++ b/addons/fleet/views/fleet_vehicle_views.xml
@@ -434,6 +434,6 @@
-
+
diff --git a/addons/fleet/views/mail_activity_views.xml b/addons/fleet/views/mail_activity_views.xml
new file mode 100644
index 00000000000..98819009f1d
--- /dev/null
+++ b/addons/fleet/views/mail_activity_views.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ Activity Types
+ mail.activity.type
+ form
+ tree,form
+ ['|', ('res_model_id', '=', False), ('res_model_id.model', '=', 'fleet.vehicle.log.contract')]
+ {'default_res_model': 'fleet.vehicle.log.contract'}
+
+
+
\ No newline at end of file