Files
Odoo-18.0-20251222/maintenance_plan_activity/models/maintenance_equipment.py
tocmo0nlord adbe430761
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled
Initial commit: Odoo 18.0-20251222 extra-addons
2026-03-13 20:43:25 +00:00

41 lines
1.7 KiB
Python

# Copyright 2019-20 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import timedelta
from odoo import _, models
class MaintenanceEquipment(models.Model):
_inherit = "maintenance.equipment"
def _prepare_new_request_activity_values(self, request, activity):
"""Prepare the values to create a new mail.activity for a maintenance request
created from a maintenance plan.
"""
return {
"activity_type_id": activity.activity_type_id.id,
"note": _("Activity automatically generated from maintenance plan"),
"user_id": activity.user_id.id or self.env.user.id,
"res_id": request.id,
"res_model_id": self.env.ref("maintenance.model_maintenance_request").id,
"date_deadline": request.schedule_date
- timedelta(days=activity.date_before_request),
}
def _create_new_request(self, maintenance_plan):
new_requests = super()._create_new_request(maintenance_plan)
for request in new_requests:
for planned_activity in maintenance_plan.planned_activity_ids:
# In case mail_activity_team is installed this makes sure
# the correct activity team is selected. If that module is
# not installed the context does nothing
activity_data = self._prepare_new_request_activity_values(
request, planned_activity
)
if activity_data:
self.env["mail.activity"].with_context(
default_res_model="maintenance.request"
).create(activity_data)
return new_requests