TIP: You can type at any time to perform a new search.
Maintenance Plan
maintenance_plan · OCA/maintenance
- Repository
- OCA/maintenance · module folder · Try on Runboat
- Module version
- 1.0.1
- Category
- Maintenance
- Folder size
- 0.21 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/maintenance
- Last tracking update
- 2026-08-07 09:06:24
- Authors
- Odoo Community Association (OCA), Camptocamp SA, ForgeFlow
- Maintainers
- Odoo Community Association (OCA), Camptocamp SA, ForgeFlow
- Committers
- OCA-git-bot, oca-ci, Lindsay, JasminSForgeFlow
- Odoo dependencies
- Python dependencies
- python-dateutil
- System dependencies
- None
- Required by
- None
- Description
This module extends the functionality of Odoo Maintenance module by allowing an equipment to have different preventive maintenance kinds.
Code Analysis ⓘ
Views touched (10)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_equipment_request_view_form |
maintenance.request.form@maintenance_plan | maintenance.request | form | Inherits maintenance.hr_equipment_request_view_form |
hr_equipment_request_view_tree |
equipment.request.list@maintenance_plan | maintenance.request | tree | Inherits maintenance.hr_equipment_request_view_tree |
hr_equipment_view_form |
equipment.form@maintenance_plan | maintenance.equipment | form | Inherits maintenance.hr_equipment_view_form |
hr_equipment_view_search |
equipment.search@maintenance_plan | maintenance.equipment | search | Inherits maintenance.hr_equipment_view_search |
maintenance_kind_view_tree |
maintenance.kind.list@maintenance_plan | maintenance.kind | list | New |
maintenance_plan_view_form |
maintenance.plan.form@maintenance_plan | maintenance.plan | form | New |
maintenance_plan_view_search |
maintenance.plan.search@maintenance_plan | maintenance.plan | search | New |
maintenance_plan_view_tree |
maintenance.plan.list@maintenance_plan | maintenance.plan | list | New |
report_maintenance_request_document |
report_maintenance_request_document | ir.ui.view | qweb | Inherits base_maintenance.report_maintenance_request_document |
res_config_settings_view_form |
res.config.settings.view.form@maintenance_plan | res.config.settings | form | Inherits maintenance.res_config_settings_view_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (5)
New fields (4)
-
maintenance_plan_countIntegercompute='_compute_maintenance_plan_count'store=True -
maintenance_plan_idsOne2many → maintenance.plancomodel_name='maintenance.plan'inverse_name='equipment_id'string='Maintenance Plan' -
maintenance_team_requiredBooleancompute='_compute_team_required' -
search_maintenance_plan_countIntegercompute='_compute_search_maintenance_plan_count'string='Maintenance All Plan Count'
No public methods.
New fields (2)
-
activeBooleandefault=Truerequired=True args: 'Active Kind' -
nameCharrequired=Truetranslate=True
No public methods.
New fields (24)
-
activeBooleandefault=True -
company_idMany2one → res.companycomodel_name='res.company'default=<expr> -
durationFloathelp='Maintenance duration in hours'string='Duration (hours)' -
equipment_idMany2one → maintenance.equipmentcomodel_name='maintenance.equipment'ondelete='cascade'string='Equipment' -
generate_domainCharstring='Apply on' -
generate_with_domainBoolean -
instruction_google_slideCharhelp='Paste the url of your Google Slide. Make sure the access to the document is public.' args: 'Google Slide' -
instruction_pdfBinaryargs: 'PDF' -
instruction_textHtmlargs: 'Text' -
instruction_typeSelectiondefault='text'string='Instruction' args: [('pdf', 'PDF'), ('google_slide', 'Google Slide'), ('text', 'Text')] -
intervalIntegerdefault=1help='Interval between each maintenance'string='Frequency' -
interval_stepSelectiondefault='year'help='Let the event automatically repeat at that interval step'string='Recurrence' args: [('day', 'Day(s)'), ('week', 'Week(s)'), ('month', 'Month(s)'), ('year', 'Year(s)')] -
maintenance_countIntegercompute='_compute_maintenance_count'store=Truestring='Maintenance' -
maintenance_idsOne2many → maintenance.requeststring='Maintenance requests' args: 'maintenance.request', 'maintenance_plan_id' -
maintenance_kind_idMany2one → maintenance.kindcomodel_name='maintenance.kind'ondelete='restrict'string='Maintenance Kind' -
maintenance_open_countIntegercompute='_compute_maintenance_count'store=Truestring='Current Maintenance' -
maintenance_plan_horizonIntegerdefault=1help='Maintenance planning horizon. Only the maintenance requests inside the horizon will be created.'string='Planning Horizon period' -
maintenance_team_idMany2one → maintenance.teamargs: 'maintenance.team' -
nameCharargs: 'Description' -
next_maintenance_dateDatecompute='_compute_next_maintenance'store=True -
planning_stepSelectiondefault='year'help='Let the event automatically repeat at that interval'string='Planning Horizon step' args: [('day', 'Day(s)'), ('week', 'Week(s)'), ('month', 'Month(s)'), ('year', 'Year(s)')] -
search_equipment_idMany2one → maintenance.equipmentcomodel_name='maintenance.equipment'compute='_compute_search_equipment'search='_search_search_equipment' -
skip_notify_follower_on_requestsBooleandefault=Truestring='Do not notify to follower when creating requests?' -
start_maintenance_dateDatedefault=fields.Date.context_todayhelp='Date from which the maintenance will we active'
-
button_manual_request_generation(self)Call the same method that the cron for generating manually the maintenance requests. -
get_relativedelta(self, interval, step) -
unlink(self)Restrict deletion of maintenance plan should there be maintenance requests of this kind which are not done for its equipment
New fields (2)
-
maintenance_kind_idMany2one → maintenance.kindcomodel_name='maintenance.kind'ondelete='restrict'string='Maintenance Kind' -
maintenance_plan_idMany2one → maintenance.plancomodel_name='maintenance.plan'ondelete='restrict'string='Maintenance Plan'
No public methods.
New fields (1)
-
module_maintenance_plan_onlyBooleanargs: 'Hide built-in recurrent settings'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…