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