mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-20 05:12:04 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
44
odoo-bringout-oca-maintenance-maintenance_plan/README.md
Normal file
44
odoo-bringout-oca-maintenance-maintenance_plan/README.md
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# Maintenance Plan
|
||||
|
||||
Odoo addon: maintenance_plan
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install odoo-bringout-oca-maintenance-maintenance_plan
|
||||
```
|
||||
|
||||
## Dependencies
|
||||
|
||||
This addon depends on:
|
||||
- base_maintenance
|
||||
|
||||
## Manifest Information
|
||||
|
||||
- **Name**: Maintenance Plan
|
||||
- **Version**: 16.0.1.0.0
|
||||
- **Category**: Maintenance
|
||||
- **License**: AGPL-3
|
||||
- **Installable**: True
|
||||
|
||||
## Source
|
||||
|
||||
Based on [OCA/maintenance](https://github.com/OCA/maintenance) branch 16.0, addon `maintenance_plan`.
|
||||
|
||||
## License
|
||||
|
||||
This package maintains the original AGPL-3 license from the upstream Odoo project.
|
||||
|
||||
## Documentation
|
||||
|
||||
- Overview: doc/OVERVIEW.md
|
||||
- Architecture: doc/ARCHITECTURE.md
|
||||
- Models: doc/MODELS.md
|
||||
- Controllers: doc/CONTROLLERS.md
|
||||
- Wizards: doc/WIZARDS.md
|
||||
- Install: doc/INSTALL.md
|
||||
- Usage: doc/USAGE.md
|
||||
- Configuration: doc/CONFIGURATION.md
|
||||
- Dependencies: doc/DEPENDENCIES.md
|
||||
- Troubleshooting: doc/TROUBLESHOOTING.md
|
||||
- FAQ: doc/FAQ.md
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
# Architecture
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
U[Users] -->|HTTP| V[Views and QWeb Templates]
|
||||
V --> C[Controllers]
|
||||
V --> W[Wizards – Transient Models]
|
||||
C --> M[Models and ORM]
|
||||
W --> M
|
||||
M --> R[Reports]
|
||||
DX[Data XML] --> M
|
||||
S[Security – ACLs and Groups] -. enforces .-> M
|
||||
|
||||
subgraph Maintenance_plan Module - maintenance_plan
|
||||
direction LR
|
||||
M:::layer
|
||||
W:::layer
|
||||
C:::layer
|
||||
V:::layer
|
||||
R:::layer
|
||||
S:::layer
|
||||
DX:::layer
|
||||
end
|
||||
|
||||
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
|
||||
```
|
||||
|
||||
Notes
|
||||
- Views include tree/form/kanban templates and report templates.
|
||||
- Controllers provide website/portal routes when present.
|
||||
- Wizards are UI flows implemented with `models.TransientModel`.
|
||||
- Data XML loads data/demo records; Security defines groups and access.
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# Configuration
|
||||
|
||||
Refer to Odoo settings for maintenance_plan. Configure related models, access rights, and options as needed.
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# Controllers
|
||||
|
||||
This module does not define custom HTTP controllers.
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
# Dependencies
|
||||
|
||||
This addon depends on:
|
||||
|
||||
- [base_maintenance](../../odoo-bringout-oca-maintenance-base_maintenance)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# FAQ
|
||||
|
||||
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
|
||||
- Q: How to enable? A: Start server with --addon maintenance_plan or install in UI.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# Install
|
||||
|
||||
```bash
|
||||
pip install odoo-bringout-oca-maintenance-maintenance_plan"
|
||||
# or
|
||||
uv pip install odoo-bringout-oca-maintenance-maintenance_plan"
|
||||
```
|
||||
15
odoo-bringout-oca-maintenance-maintenance_plan/doc/MODELS.md
Normal file
15
odoo-bringout-oca-maintenance-maintenance_plan/doc/MODELS.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# Models
|
||||
|
||||
Detected core models and extensions in maintenance_plan.
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class maintenance_kind
|
||||
class maintenance_plan
|
||||
class maintenance_equipment
|
||||
class maintenance_request
|
||||
```
|
||||
|
||||
Notes
|
||||
- Classes show model technical names; fields omitted for brevity.
|
||||
- Items listed under _inherit are extensions of existing models.
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
# Overview
|
||||
|
||||
Packaged Odoo addon: maintenance_plan. Provides features documented in upstream Odoo 16 under this addon.
|
||||
|
||||
- Source: OCA/OCB 16.0, addon maintenance_plan
|
||||
- License: LGPL-3
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# Reports
|
||||
|
||||
This module does not define custom reports.
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# Security
|
||||
|
||||
Access control and security definitions in maintenance_plan.
|
||||
|
||||
## Access Control Lists (ACLs)
|
||||
|
||||
Model access permissions defined in:
|
||||
- **[ir.model.access.csv](../maintenance_plan/security/ir.model.access.csv)**
|
||||
- 4 model access rules
|
||||
|
||||
## Record Rules
|
||||
|
||||
Row-level security rules defined in:
|
||||
|
||||
## Security Groups & Configuration
|
||||
|
||||
Security groups and permissions defined in:
|
||||
- **[maintenance_security.xml](../maintenance_plan/security/maintenance_security.xml)**
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "Security Layers"
|
||||
A[Users] --> B[Groups]
|
||||
B --> C[Access Control Lists]
|
||||
C --> D[Models]
|
||||
B --> E[Record Rules]
|
||||
E --> F[Individual Records]
|
||||
end
|
||||
```
|
||||
|
||||
Security files overview:
|
||||
- **[ir.model.access.csv](../maintenance_plan/security/ir.model.access.csv)**
|
||||
- Model access permissions (CRUD rights)
|
||||
- **[maintenance_security.xml](../maintenance_plan/security/maintenance_security.xml)**
|
||||
- Security groups, categories, and XML-based rules
|
||||
|
||||
Notes
|
||||
- Access Control Lists define which groups can access which models
|
||||
- Record Rules provide row-level security (filter records by user/group)
|
||||
- Security groups organize users and define permission sets
|
||||
- All security is enforced at the ORM level by Odoo
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
# Troubleshooting
|
||||
|
||||
- Ensure Python and Odoo environment matches repo guidance.
|
||||
- Check database connectivity and logs if startup fails.
|
||||
- Validate that dependent addons listed in DEPENDENCIES.md are installed.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# Usage
|
||||
|
||||
Start Odoo including this addon (from repo root):
|
||||
|
||||
```bash
|
||||
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon maintenance_plan
|
||||
```
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# Wizards
|
||||
|
||||
This module does not include UI wizards.
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
================
|
||||
Maintenance Plan
|
||||
================
|
||||
|
||||
..
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! source digest: sha256:51d1395956daf1de19f24abe40f89528841450822d90006b04a75e26f1913828
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
||||
:target: https://odoo-community.org/page/development-status
|
||||
:alt: Beta
|
||||
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmaintenance-lightgray.png?logo=github
|
||||
:target: https://github.com/OCA/maintenance/tree/16.0/maintenance_plan
|
||||
:alt: OCA/maintenance
|
||||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
||||
:target: https://translation.odoo-community.org/projects/maintenance-16-0/maintenance-16-0-maintenance_plan
|
||||
:alt: Translate me on Weblate
|
||||
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
||||
:target: https://runboat.odoo-community.org/builds?repo=OCA/maintenance&target_branch=16.0
|
||||
:alt: Try me on Runboat
|
||||
|
||||
|badge1| |badge2| |badge3| |badge4| |badge5|
|
||||
|
||||
This module extends the functionality of Odoo Maintenance module by allowing
|
||||
an equipment to have different preventive maintenance kinds.
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
Install the module.
|
||||
|
||||
Should you already use the maintenance module and have equipments with field
|
||||
'Preventive Maintenance Frequency' defined, a new maintenance plan will be
|
||||
automatically created on these equipments with maintenance kind 'Install'.
|
||||
|
||||
Moreover if a Request of type 'preventive' exists, whose stage isn't marked as
|
||||
'Request done', and has a Request Date matching the equipment's
|
||||
'Next Preventive Maintenance', the request will be updated with the
|
||||
'Install' maintenance kind.
|
||||
|
||||
Make sure you don't have multiple 'preventive' requests at a stage which isn't
|
||||
marked as 'Request done' and on the same 'Request date' as the equipment or
|
||||
the module installation will fail with a User Error.
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Instead of defining a period and duration for only one preventive maintenance
|
||||
per equipment, you can define multiple preventive maintenance kind for each
|
||||
equipment.
|
||||
|
||||
Maintenance Kinds have to be defined through the configuration menu. Their name
|
||||
have to be unique and can be set as active or inactive, should these not be
|
||||
used anymore.
|
||||
|
||||
On any equipment over the maintenance tab, the maintenance plan be accessible,
|
||||
allowing to add different maintenance kind with their
|
||||
own frequency and duration. The next maintenance date will then be computed
|
||||
automatically according to the start's date and the frequency defined, but the
|
||||
maintenance request won't be created automatically as is the case in Odoo's
|
||||
Maintenance module. In the plan there's also a field allowing the user to set the
|
||||
maintenance horizon, insert the instructions to follow on the maintenance that
|
||||
will be forwarded to the maintenance request generated from the plan.
|
||||
|
||||
This module uses the original Cron job of Odoo's Maintenance module to generate
|
||||
maintenance requests. To do so, it takes into account the planning horizon and
|
||||
generates all maintenance requests whose schedule date would fall inside that
|
||||
planning horizon. Therefore, the maintenance manager can have a proper planning
|
||||
of how many maintenance requests are programming for the future. Leaving planning
|
||||
horizon to 0 will only create those maintenance request that are scheduled for
|
||||
today.
|
||||
|
||||
We can also create maintenance requests from a plan using a domain for selecting the equipments.
|
||||
This way, we might have a single plan that will generate all the requests.
|
||||
In order to use it, we need to mark the `Generate with Domain` field.
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
|
||||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/maintenance/issues>`_.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||||
`feedback <https://github.com/OCA/maintenance/issues/new?body=module:%20maintenance_plan%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
Do not contact contributors directly about support or help with technical issues.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Authors
|
||||
~~~~~~~
|
||||
|
||||
* Camptocamp SA
|
||||
* ForgeFlow
|
||||
|
||||
Contributors
|
||||
~~~~~~~~~~~~
|
||||
|
||||
* Akim Juillerat <akim.juillerat@camptocamp.com>
|
||||
* Matteo Mazzoni <matteo@appcademy.tech>
|
||||
* David Alonso <david.alonso@solvos.es>
|
||||
* Adrià Gil Sorribes <adria.gil@forgeflow.com>
|
||||
* Jordi Ballester Alomar <jordi.ballester@forgeflow.com>
|
||||
* Lois Rilo <lois.rilo@forgeflow.com>
|
||||
* Enric Tobella <enric.tobella@dixmit.com>
|
||||
* Alexei Rivera <arivera@archeti.com>
|
||||
|
||||
Maintainers
|
||||
~~~~~~~~~~~
|
||||
|
||||
This module is maintained by the OCA.
|
||||
|
||||
.. image:: https://odoo-community.org/logo.png
|
||||
:alt: Odoo Community Association
|
||||
:target: https://odoo-community.org
|
||||
|
||||
OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||
mission is to support the collaborative development of Odoo features and
|
||||
promote its widespread use.
|
||||
|
||||
This module is part of the `OCA/maintenance <https://github.com/OCA/maintenance/tree/16.0/maintenance_plan>`_ project on GitHub.
|
||||
|
||||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
from . import models
|
||||
from .hooks import post_init_hook
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
# Copyright 2017 Camptocamp SA
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
{
|
||||
"name": "Maintenance Plan",
|
||||
"summary": "Extends preventive maintenance planning",
|
||||
"version": "16.0.1.0.0",
|
||||
"author": "Camptocamp SA, ForgeFlow, Odoo Community Association (OCA)",
|
||||
"license": "AGPL-3",
|
||||
"category": "Maintenance",
|
||||
"website": "https://github.com/OCA/maintenance",
|
||||
"images": [],
|
||||
"depends": ["base_maintenance"],
|
||||
"data": [
|
||||
"security/ir.model.access.csv",
|
||||
"security/maintenance_security.xml",
|
||||
"views/maintenance_kind_views.xml",
|
||||
"views/maintenance_plan_views.xml",
|
||||
"views/maintenance_equipment_views.xml",
|
||||
"views/report_maintenance_request.xml",
|
||||
],
|
||||
"external_dependencies": {"python": ["dateutil"]},
|
||||
"demo": ["data/demo_maintenance_plan.xml"],
|
||||
"post_init_hook": "post_init_hook",
|
||||
"installable": True,
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo noupdate="1">
|
||||
<!-- Maintenance kinds -->
|
||||
<record id="maintenance_kind_monthly" model="maintenance.kind">
|
||||
<field name="name">Monthly</field>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
<record id="maintenance_kind_weekly" model="maintenance.kind">
|
||||
<field name="name">Weekly</field>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
<!-- Maintenance plans -->
|
||||
<record id="maintenance_plan_monthly_monitor1" model="maintenance.plan">
|
||||
<field name="equipment_id" ref="maintenance.equipment_monitor1" />
|
||||
<field name="maintenance_kind_id" ref="maintenance_kind_monthly" />
|
||||
<field name="interval">1</field>
|
||||
<field name="interval_step">month</field>
|
||||
<field name="duration">2</field>
|
||||
<field name="maintenance_plan_horizon">2</field>
|
||||
<field name="planning_step">month</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_monthly_monitor4" model="maintenance.plan">
|
||||
<field name="equipment_id" ref="maintenance.equipment_monitor4" />
|
||||
<field name="maintenance_kind_id" ref="maintenance_kind_monthly" />
|
||||
<field name="interval">1</field>
|
||||
<field name="interval_step">month</field>
|
||||
<field name="duration">2</field>
|
||||
<field name="maintenance_plan_horizon">2</field>
|
||||
<field name="planning_step">month</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_monthly_monitor6" model="maintenance.plan">
|
||||
<field name="equipment_id" ref="maintenance.equipment_monitor6" />
|
||||
<field name="maintenance_kind_id" ref="maintenance_kind_monthly" />
|
||||
<field name="interval">1</field>
|
||||
<field name="interval_step">month</field>
|
||||
<field name="duration">2</field>
|
||||
<field name="maintenance_plan_horizon">1</field>
|
||||
<field name="planning_step">month</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_monthly_printer1" model="maintenance.plan">
|
||||
<field name="equipment_id" ref="maintenance.equipment_printer1" />
|
||||
<field name="maintenance_kind_id" ref="maintenance_kind_monthly" />
|
||||
<field name="interval">1</field>
|
||||
<field name="interval_step">month</field>
|
||||
<field name="duration">4</field>
|
||||
<field name="maintenance_plan_horizon">3</field>
|
||||
<field name="planning_step">month</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_weekly_printer1" model="maintenance.plan">
|
||||
<field name="equipment_id" ref="maintenance.equipment_printer1" />
|
||||
<field name="maintenance_kind_id" ref="maintenance_kind_weekly" />
|
||||
<field name="interval">7</field>
|
||||
<field name="duration">2</field>
|
||||
<field name="maintenance_plan_horizon">1</field>
|
||||
<field name="planning_step">month</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
# Copyright 2017 Camptocamp SA
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import logging
|
||||
|
||||
from odoo import SUPERUSER_ID, _, api
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
def post_init_hook(cr, registry):
|
||||
|
||||
logging.getLogger("odoo.addons.maintenance_plan").info(
|
||||
"Migrating existing preventive maintenance"
|
||||
)
|
||||
|
||||
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||
|
||||
equipments = env["maintenance.equipment"].search([("period", "!=", False)])
|
||||
|
||||
if equipments:
|
||||
|
||||
maintenance_kind = env["maintenance.kind"].create(
|
||||
{"name": "Install", "active": True}
|
||||
)
|
||||
|
||||
for equipment in equipments:
|
||||
request = equipment.maintenance_ids.filtered(
|
||||
lambda r: r.maintenance_type == "preventive"
|
||||
and not r.stage_id.done
|
||||
and r.request_date == equipment.next_action_date
|
||||
)
|
||||
if len(request) > 1:
|
||||
raise UserError(
|
||||
_(
|
||||
"You have multiple preventive maintenance requests on "
|
||||
"equipment %(name)s next action date (%(date)s). Please leave only "
|
||||
"one preventive request on the date of equipment's next "
|
||||
"action to install the module.",
|
||||
name=equipment.name,
|
||||
date=equipment.next_action_date,
|
||||
)
|
||||
)
|
||||
elif len(request) == 1:
|
||||
request.write({"maintenance_kind_id": maintenance_kind.id})
|
||||
env["maintenance.plan"].create(
|
||||
{
|
||||
"equipment_id": equipment.id,
|
||||
"maintenance_kind_id": maintenance_kind.id,
|
||||
"duration": equipment.maintenance_duration,
|
||||
"interval": equipment.period,
|
||||
}
|
||||
)
|
||||
|
|
@ -0,0 +1,650 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * maintenance_plan
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 16.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.report_maintenance_request_document
|
||||
msgid "<strong>Instructions:</strong>"
|
||||
msgstr "<strong>Instructions:</strong>"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
msgid "Action Needed"
|
||||
msgstr "Potrebna akcija"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__active
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Active"
|
||||
msgstr "Aktivan"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__active
|
||||
msgid "Active Kind"
|
||||
msgstr "Aktivna vrsta"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_ids
|
||||
msgid "Activities"
|
||||
msgstr "Aktivnosti"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Activity Exception Decoration"
|
||||
msgstr "Dekoracija iznimke aktivnosti"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid "Activity State"
|
||||
msgstr "Status aktivnosti"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Activity Type Icon"
|
||||
msgstr "Ikona tipa aktivnosti"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_domain
|
||||
msgid "Apply on"
|
||||
msgstr "Primjeni na"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Archived"
|
||||
msgstr "Arhivirano"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_attachment_count
|
||||
msgid "Attachment Count"
|
||||
msgstr "Broj priloga"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__company_id
|
||||
msgid "Company"
|
||||
msgstr "Preduzeće"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Kreirao"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Kreirano"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_open_count
|
||||
msgid "Current Maintenance"
|
||||
msgstr "Trenutno održavanje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Date from which the maintenance will we active"
|
||||
msgstr "Datum od kojeg će održavanje biti aktivno"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__day
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__day
|
||||
msgid "Day(s)"
|
||||
msgstr "Dan(i)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Describe the maintenance to do..."
|
||||
msgstr "Describe the maintenance to do..."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__name
|
||||
msgid "Description"
|
||||
msgstr "Opis"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__display_name
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Prikazani naziv"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__skip_notify_follower_on_requests
|
||||
msgid "Do not notify to follower when creating requests?"
|
||||
msgstr "Ne obavještavaj pratioce prilikom kreiranja zahtjeva?"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Duration (hours)"
|
||||
msgstr "Trajanje (sati)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__equipment_id
|
||||
msgid "Equipment"
|
||||
msgstr "Oprema"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_follower_ids
|
||||
msgid "Followers"
|
||||
msgstr "Pratioci"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_partner_ids
|
||||
msgid "Followers (Partners)"
|
||||
msgstr "Pratioci (Partneri)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Font awesome icon e.g. fa-tasks"
|
||||
msgstr "Font awesome ikona npr. fa-tasks"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Frequency"
|
||||
msgstr "Frekvencija"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_with_domain
|
||||
msgid "Generate With Domain"
|
||||
msgstr "Generiši sa domenom"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Generate requests for current threshold"
|
||||
msgstr "Generate requests for current threshold"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__has_message
|
||||
msgid "Has Message"
|
||||
msgstr "Ima poruku"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__id
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon"
|
||||
msgstr "Ikona"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon to indicate an exception activity."
|
||||
msgstr "Ikona za prikaz iznimki."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
msgid "If checked, new messages require your attention."
|
||||
msgstr "Ako je zakačeno, nove poruke će zahtjevati vašu pažnju"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "If checked, some messages have a delivery error."
|
||||
msgstr "Ako je označeno neke poruke mogu imati grešku u dostavi."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "If not clicked, the scheduled action will do it for you."
|
||||
msgstr "If not clicked, the scheduled action will do it for you."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Inactive"
|
||||
msgstr "Neaktivan"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Instructions"
|
||||
msgstr "Instructions"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Interval between each maintenance"
|
||||
msgstr "Interval između svakog održavanja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_is_follower
|
||||
msgid "Is Follower"
|
||||
msgstr "Pratilac"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Kind"
|
||||
msgstr "Kind"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind____last_update
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Zadnje mijenjano"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Zadnji ažurirao"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Zadnje ažurirano"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Let the event automatically repeat at that interval"
|
||||
msgstr "Neka se događaj automatski ponavlja u ovim intervalima"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Let the event automatically repeat at that interval step"
|
||||
msgstr "Dozvoli da se događaj automatski ponavlja u zadanom intervalu"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_main_attachment_id
|
||||
msgid "Main Attachment"
|
||||
msgstr "Glavna zakačka"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Maintenace Equipment must belong to the equipment's company"
|
||||
msgstr "Maintenace Equipment must belong to the equipment's company"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_count
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance"
|
||||
msgstr "Održavanje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__search_maintenance_plan_count
|
||||
msgid "Maintenance All Plan Count"
|
||||
msgstr "Ukupan broj planova održavanja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_equipment
|
||||
msgid "Maintenance Equipment"
|
||||
msgstr "Oprema za održavanje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_kind
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_kind_id
|
||||
msgid "Maintenance Kind"
|
||||
msgstr "Maintenance Kind"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance Plan"
|
||||
msgstr "Plan održavanja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_count
|
||||
msgid "Maintenance Plan Count"
|
||||
msgstr "Broj planova održavanja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_m_plan_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Maintenance Plans"
|
||||
msgstr "Planovi održavanja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_request
|
||||
msgid "Maintenance Request"
|
||||
msgstr "Zahtjev za održavanje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.hr_equipment_request_action_from_plan
|
||||
msgid "Maintenance Requests"
|
||||
msgstr "Zahtjevi za održavanje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_team_id
|
||||
msgid "Maintenance Team"
|
||||
msgstr "Tim za održavanje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_team_required
|
||||
msgid "Maintenance Team Required"
|
||||
msgstr "Tim za održavanje je obavezan"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Maintenance duration in hours"
|
||||
msgstr "Trajanje održavanja u satima"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_kind_id
|
||||
msgid "Maintenance kind"
|
||||
msgstr "Vrsta održavanja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_kind_name_uniq
|
||||
msgid "Maintenance kind name already exists."
|
||||
msgstr "Naziv vrste održavanja već postoji."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_kind_action
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_maintenance_kind_configuration
|
||||
msgid "Maintenance kinds"
|
||||
msgstr "Maintenance kinds"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_ids
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_plan_id
|
||||
msgid "Maintenance plan"
|
||||
msgstr "Plan održavanja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid ""
|
||||
"Maintenance planning horizon. Only the maintenance requests inside the "
|
||||
"horizon will be created."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_action
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_equipment_action
|
||||
msgid "Maintenance plans"
|
||||
msgstr "Maintenance plans"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_ids
|
||||
msgid "Maintenance requests"
|
||||
msgstr "Zahtjevi za održavanje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "Message Delivery error"
|
||||
msgstr "Greška pri isporuci poruke"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_ids
|
||||
msgid "Messages"
|
||||
msgstr "Poruke"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__month
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__month
|
||||
msgid "Month(s)"
|
||||
msgstr "Mjesec(i)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_monthly
|
||||
msgid "Monthly"
|
||||
msgstr "Mjesečno"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__my_activity_date_deadline
|
||||
msgid "My Activity Deadline"
|
||||
msgstr "Rok za moju aktivnost"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__name
|
||||
msgid "Name"
|
||||
msgstr "Naziv:"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_date_deadline
|
||||
msgid "Next Activity Deadline"
|
||||
msgstr "Krajnji rok za sljedeću aktivnost"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_summary
|
||||
msgid "Next Activity Summary"
|
||||
msgstr "Pregled sljedeće aktivnosti"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_id
|
||||
msgid "Next Activity Type"
|
||||
msgstr "Tip sljedeće aktivnosti"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__next_maintenance_date
|
||||
msgid "Next Maintenance Date"
|
||||
msgstr "Datum sljedećeg održavanja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__note
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__note
|
||||
msgid "Note"
|
||||
msgstr "Zabilješka"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__notes
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
msgid "Notes"
|
||||
msgstr "Zabilješke"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of Actions"
|
||||
msgstr "Broj akcija"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of errors"
|
||||
msgstr "Broj grešaka"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of messages requiring action"
|
||||
msgstr "Broj poruka koje zahtijevaju aktivnost"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of messages with delivery error"
|
||||
msgstr "Broj poruka sa greškama pri isporuci"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon period"
|
||||
msgstr "P. Horizon period"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon step"
|
||||
msgstr "P. Horizon step"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Planning Horizon"
|
||||
msgstr "Planning Horizon"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid "Planning Horizon period"
|
||||
msgstr "Period horizonta planiranja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Planning Horizon step"
|
||||
msgstr "Korak horizonta planiranja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Plans"
|
||||
msgstr "Planovi"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(description)s"
|
||||
msgstr "Preventive Maintenance (%(kind)s) - %(description)s"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(plan)s"
|
||||
msgstr "Preventive Maintenance (%(kind)s) - %(plan)s"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Recurrence"
|
||||
msgstr "Ponavljanje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_user_id
|
||||
msgid "Responsible User"
|
||||
msgstr "Odgovorni korisnik"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__search_equipment_id
|
||||
msgid "Search Equipment"
|
||||
msgstr "Pretraga opreme"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some maintenance plan's company is incompatible with the company of this "
|
||||
"equipment."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Start Date"
|
||||
msgstr "Početni datum"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Start Maintenance Date"
|
||||
msgstr "Datum početka održavanja"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid ""
|
||||
"Status based on activities\n"
|
||||
"Overdue: Due date is already passed\n"
|
||||
"Today: Activity date is today\n"
|
||||
"Planned: Future activities."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Team"
|
||||
msgstr "Tim"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The maintenance plan %(kind)s of equipment %(eqpmnt)s has generated a "
|
||||
"request which is not done yet. You should either set the request as done, "
|
||||
"remove its maintenance kind or delete it first."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Type of the exception activity on record."
|
||||
msgstr "Vrsta aktivnosti iznimke na zapisu."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Under Maintenance"
|
||||
msgstr "Pod održavanjem"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmnt)s)"
|
||||
msgstr "Unnamed %(kind)s plan (%(eqpmnt)s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmt)s)"
|
||||
msgstr "Unnamed %(kind)s plan (%(eqpmt)s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(void)s plan (%(eqpmnt)s)"
|
||||
msgstr "Unnamed %(void)s plan (%(eqpmnt)s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Unspecified kind"
|
||||
msgstr "Unspecified kind"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unsupported search operator"
|
||||
msgstr "Unsupported search operator"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website Messages"
|
||||
msgstr "Poruke sa website-a"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website communication history"
|
||||
msgstr "Povijest komunikacije Web stranice"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__week
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__week
|
||||
msgid "Week(s)"
|
||||
msgstr "Sedmica"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_weekly
|
||||
msgid "Weekly"
|
||||
msgstr "Sedmično"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__year
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__year
|
||||
msgid "Year(s)"
|
||||
msgstr "Godin(e)a"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_plan_equipment_kind_uniq
|
||||
msgid ""
|
||||
"You cannot define multiple times the same maintenance kind on an equipment "
|
||||
"maintenance plan."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/hooks.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You have multiple preventive maintenance requests on equipment %(name)s next"
|
||||
" action date (%(date)s). Please leave only one preventive request on the "
|
||||
"date of equipment's next action to install the module."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "e.g. Calibration"
|
||||
msgstr "e.g. Calibration"
|
||||
|
|
@ -0,0 +1,680 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * maintenance_plan
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-03-01 13:30+0000\n"
|
||||
"PO-Revision-Date: 2024-02-03 10:34+0000\n"
|
||||
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.17\n"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.report_maintenance_request_document
|
||||
msgid "<strong>Instructions:</strong>"
|
||||
msgstr "<strong>Instrucciones:</strong>"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
msgid "Action Needed"
|
||||
msgstr "Acción necesaria"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__active
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Active"
|
||||
msgstr "Activo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__active
|
||||
msgid "Active Kind"
|
||||
msgstr "Tipo activo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_ids
|
||||
msgid "Activities"
|
||||
msgstr "Actividades"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Activity Exception Decoration"
|
||||
msgstr "Decoración de Actividad de Excepción"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid "Activity State"
|
||||
msgstr "Estado de actividad"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Activity Type Icon"
|
||||
msgstr "Actividad de Tipo de Iconos"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_domain
|
||||
msgid "Apply on"
|
||||
msgstr "Solicitar el"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Archived"
|
||||
msgstr "Archivado"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_attachment_count
|
||||
msgid "Attachment Count"
|
||||
msgstr "Total de adjuntos"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__company_id
|
||||
msgid "Company"
|
||||
msgstr "Compañía"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Creado por"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Creado en"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_open_count
|
||||
msgid "Current Maintenance"
|
||||
msgstr "Mantenimiento actual"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Date from which the maintenance will we active"
|
||||
msgstr "Fecha desde la cual el mantenimiento estará activo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__day
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__day
|
||||
msgid "Day(s)"
|
||||
msgstr "Día(s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Describe the maintenance to do..."
|
||||
msgstr "Describa el mantenimiento a hacer..."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__name
|
||||
msgid "Description"
|
||||
msgstr "Descripción"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__display_name
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nombre a mostrar"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__skip_notify_follower_on_requests
|
||||
msgid "Do not notify to follower when creating requests?"
|
||||
msgstr "¿No notificar al seguidor cuando se crean las peticiones?"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Duration (hours)"
|
||||
msgstr "Duración (horas)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__equipment_id
|
||||
msgid "Equipment"
|
||||
msgstr "Equipo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_follower_ids
|
||||
msgid "Followers"
|
||||
msgstr "Seguidores"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_partner_ids
|
||||
msgid "Followers (Partners)"
|
||||
msgstr "Seguidores (Socios)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Font awesome icon e.g. fa-tasks"
|
||||
msgstr "Icono de Font Awesome ej. fa-tasks"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Frequency"
|
||||
msgstr "Frecuencia"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_with_domain
|
||||
msgid "Generate With Domain"
|
||||
msgstr "Generar Con Dominio"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Generate requests for current threshold"
|
||||
msgstr "Generar peticiones para el umbral actual"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__has_message
|
||||
msgid "Has Message"
|
||||
msgstr "Tiene mensaje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__id
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon"
|
||||
msgstr "Icono"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon to indicate an exception activity."
|
||||
msgstr "Icono para indicar una actividad de excepción."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_unread
|
||||
msgid "If checked, new messages require your attention."
|
||||
msgstr "Si está marcado hay nuevos mensajes que requieren su atención."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "If checked, some messages have a delivery error."
|
||||
msgstr "Si se encuentra marcado, algunos mensajes tienen error de envío."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "If not clicked, the scheduled action will do it for you."
|
||||
msgstr "Si no se pulsa, la acción programada lo hará por usted."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Inactive"
|
||||
msgstr "Inactivo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Instructions"
|
||||
msgstr "Instrucciones"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Interval between each maintenance"
|
||||
msgstr "Intervalo entre cada mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_is_follower
|
||||
msgid "Is Follower"
|
||||
msgstr "Es seguidor"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Kind"
|
||||
msgstr "Amablemente"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind____last_update
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Última modificación en"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "actualizado por última vez por"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Última actualización en"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Let the event automatically repeat at that interval"
|
||||
msgstr "Permitir que el evento se repita automáticamente a cada intervalo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Let the event automatically repeat at that interval step"
|
||||
msgstr ""
|
||||
"Permitir que el evento se repita automáticamente a cada paso del intervalo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_main_attachment_id
|
||||
msgid "Main Attachment"
|
||||
msgstr "Adjunto principal"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Maintenace Equipment must belong to the equipment's company"
|
||||
msgstr "El equipo de mantenimiento debe pertenecer a la empresa del equipo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_count
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance"
|
||||
msgstr "Mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__search_maintenance_plan_count
|
||||
msgid "Maintenance All Plan Count"
|
||||
msgstr "Mantenimiento Recuento de todos los planes"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_equipment
|
||||
msgid "Maintenance Equipment"
|
||||
msgstr "Equipo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_kind
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_kind_id
|
||||
msgid "Maintenance Kind"
|
||||
msgstr "Tipo de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance Plan"
|
||||
msgstr "Plan de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_count
|
||||
msgid "Maintenance Plan Count"
|
||||
msgstr "Número de planes de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_m_plan_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Maintenance Plans"
|
||||
msgstr "Planes de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_request
|
||||
msgid "Maintenance Request"
|
||||
msgstr "Peticiones de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.hr_equipment_request_action_from_plan
|
||||
msgid "Maintenance Requests"
|
||||
msgstr "Peticiones de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_team_id
|
||||
msgid "Maintenance Team"
|
||||
msgstr "Equipo de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_team_required
|
||||
msgid "Maintenance Team Required"
|
||||
msgstr "Equipo de mantenimiento exigido"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Maintenance duration in hours"
|
||||
msgstr "Duración del mantenimiento en horas"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_kind_id
|
||||
msgid "Maintenance kind"
|
||||
msgstr "Tipo de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_kind_name_uniq
|
||||
msgid "Maintenance kind name already exists."
|
||||
msgstr "Ya existe ese nombre de tipo de mantenimiento."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_kind_action
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_maintenance_kind_configuration
|
||||
msgid "Maintenance kinds"
|
||||
msgstr "Tipos de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_ids
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_plan_id
|
||||
msgid "Maintenance plan"
|
||||
msgstr "Plan de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid ""
|
||||
"Maintenance planning horizon. Only the maintenance requests inside the "
|
||||
"horizon will be created."
|
||||
msgstr ""
|
||||
"Horizonte del planning de mantenimiento. Solo se crearán las peticiones de "
|
||||
"mantenimiento dentro del horizonte."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_action
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_equipment_action
|
||||
msgid "Maintenance plans"
|
||||
msgstr "Planes de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_ids
|
||||
msgid "Maintenance requests"
|
||||
msgstr "Peticiones de mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "Message Delivery error"
|
||||
msgstr "Error de Envío de Mensaje"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_ids
|
||||
msgid "Messages"
|
||||
msgstr "Mensajes"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__month
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__month
|
||||
msgid "Month(s)"
|
||||
msgstr "Mensual(es)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_monthly
|
||||
msgid "Monthly"
|
||||
msgstr "Mensual"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__my_activity_date_deadline
|
||||
msgid "My Activity Deadline"
|
||||
msgstr "Mi plazo de actividades"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__name
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_date_deadline
|
||||
msgid "Next Activity Deadline"
|
||||
msgstr "Siguiente plazo de actividad"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_summary
|
||||
msgid "Next Activity Summary"
|
||||
msgstr "Resumen de la siguiente actividad"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_id
|
||||
msgid "Next Activity Type"
|
||||
msgstr "Siguiente tipo de actividad"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__next_maintenance_date
|
||||
msgid "Next Maintenance Date"
|
||||
msgstr "Próximo mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__note
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__note
|
||||
msgid "Note"
|
||||
msgstr "Nota"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__notes
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
msgid "Notes"
|
||||
msgstr "Notas"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of Actions"
|
||||
msgstr "Número de acciones"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of errors"
|
||||
msgstr "Numero de errores"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of messages which requires an action"
|
||||
msgstr "Número de mensajes que requieren una acción"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of messages with delivery error"
|
||||
msgstr "Número de mensajes con error de envío"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_unread_counter
|
||||
msgid "Number of unread messages"
|
||||
msgstr "Número de mensajes no leidos"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon period"
|
||||
msgstr "P. Periodo horizonte"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon step"
|
||||
msgstr "P. Paso al horizonte"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Planning Horizon"
|
||||
msgstr "Horizonte de planning"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid "Planning Horizon period"
|
||||
msgstr "Perido del horizonte de planning"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Planning Horizon step"
|
||||
msgstr "Paso del horizonte de planning"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Plans"
|
||||
msgstr "Planes"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(description)s"
|
||||
msgstr "Mantenimiento preventivo (%(kind)s)-%(description)s"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(plan)s"
|
||||
msgstr "Mantenimiento preventivo (%(kind)s)-%(plan)s"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Recurrence"
|
||||
msgstr "Recurrencia"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_user_id
|
||||
msgid "Responsible User"
|
||||
msgstr "Usuario responsable"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__search_equipment_id
|
||||
msgid "Search Equipment"
|
||||
msgstr "Equipo de Búsqueda"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some maintenance plan's company is incompatible with the company of this "
|
||||
"equipment."
|
||||
msgstr ""
|
||||
"algún plan de mantenimiento de la compañía es incompatible con la compañía "
|
||||
"de este equipo."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Start Date"
|
||||
msgstr "Fecha de inicio"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Start Maintenance Date"
|
||||
msgstr "Fecha de inicio del mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid ""
|
||||
"Status based on activities\n"
|
||||
"Overdue: Due date is already passed\n"
|
||||
"Today: Activity date is today\n"
|
||||
"Planned: Future activities."
|
||||
msgstr ""
|
||||
"Estado basado en actividades\n"
|
||||
"Vencida: la fecha tope ya ha pasado\n"
|
||||
"Hoy: La fecha tope es hoy\n"
|
||||
"Planificada: futuras actividades."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Team"
|
||||
msgstr "Equipo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The maintenance plan %(kind)s of equipment %(eqpmnt)s has generated a "
|
||||
"request which is not done yet. You should either set the request as done, "
|
||||
"remove its maintenance kind or delete it first."
|
||||
msgstr ""
|
||||
"El plan de mantenimiento %(kind)s del equipo %(eqpmnt)s ha generado una "
|
||||
"solicitud que aún no se ha realizado. Debe establecer la solicitud como "
|
||||
"realizada, eliminar su tipo de mantenimiento o eliminarla primero."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Type of the exception activity on record."
|
||||
msgstr "Tipo de actividad de excepción registrada."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Under Maintenance"
|
||||
msgstr "En mantenimiento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmnt)s)"
|
||||
msgstr "Plan %(kind)s sin nombre (%(eqpmnt)s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmt)s)"
|
||||
msgstr "Plan %(kind)s sin nombre (%(eqpmt)s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(void)s plan (%(eqpmnt)s)"
|
||||
msgstr "Plan %(void)s sin nombre (%(eqpmnt)s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_unread
|
||||
msgid "Unread Messages"
|
||||
msgstr "Mensajes sin leer"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_unread_counter
|
||||
msgid "Unread Messages Counter"
|
||||
msgstr "Contador de mensajes sin leer"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Unspecified kind"
|
||||
msgstr "Tipo no especificado"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unsupported search operator"
|
||||
msgstr "Operador de búsqueda no soportado"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website Messages"
|
||||
msgstr "Mensajes de la página web"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website communication history"
|
||||
msgstr "historial de la comunicación en la web"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__week
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__week
|
||||
msgid "Week(s)"
|
||||
msgstr "Semana(s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_weekly
|
||||
msgid "Weekly"
|
||||
msgstr "Semanal"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__year
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__year
|
||||
msgid "Year(s)"
|
||||
msgstr "Año(s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_plan_equipment_kind_uniq
|
||||
msgid ""
|
||||
"You cannot define multiple times the same maintenance kind on an equipment "
|
||||
"maintenance plan."
|
||||
msgstr ""
|
||||
"No se pueden definir varias veces el mismo tipo de mantenimiento en el plan "
|
||||
"de mantenimiento de un equipo."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/hooks.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You have multiple preventive maintenance requests on equipment %(name)s next "
|
||||
"action date (%(date)s). Please leave only one preventive request on the date "
|
||||
"of equipment's next action to install the module."
|
||||
msgstr ""
|
||||
"Tiene varias solicitudes de mantenimiento preventivo en la fecha de la "
|
||||
"próxima acción del equipo %(name)s (%(date)s). Por favor, deje sólo una "
|
||||
"solicitud preventiva en la fecha de la próxima acción del equipo para "
|
||||
"instalar el módulo."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "e.g. Calibration"
|
||||
msgstr "p.ej. Calibración"
|
||||
|
||||
#~ msgid "SMS Delivery error"
|
||||
#~ msgstr "Error de envío SMS"
|
||||
|
|
@ -0,0 +1,739 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * maintenance_plan
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-12-31 16:06+0000\n"
|
||||
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: it\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.6.2\n"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.report_maintenance_request_document
|
||||
msgid "<strong>Instructions:</strong>"
|
||||
msgstr "<strong>Istruzioni:</strong>"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
msgid "Action Needed"
|
||||
msgstr "Azione richiesta"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__active
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Active"
|
||||
msgstr "Attivo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__active
|
||||
msgid "Active Kind"
|
||||
msgstr "Genere attivo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_ids
|
||||
msgid "Activities"
|
||||
msgstr "Attività"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Activity Exception Decoration"
|
||||
msgstr "Decorazione eccezione attività"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid "Activity State"
|
||||
msgstr "Stato attività"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Activity Type Icon"
|
||||
msgstr "Icona tipo attività"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_domain
|
||||
msgid "Apply on"
|
||||
msgstr "Applica a"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Archived"
|
||||
msgstr "In archivio"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_attachment_count
|
||||
msgid "Attachment Count"
|
||||
msgstr "Conteggio allegati"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__company_id
|
||||
msgid "Company"
|
||||
msgstr "Azienda"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Creato da"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Creato il"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_open_count
|
||||
msgid "Current Maintenance"
|
||||
msgstr "Manutenzione corrente"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Date from which the maintenance will we active"
|
||||
msgstr "Data dalla quale la manutenzione sarà attiva"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__day
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__day
|
||||
msgid "Day(s)"
|
||||
msgstr "Giorno(i)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Describe the maintenance to do..."
|
||||
msgstr "Descrivere la manutenzione da fare..."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__name
|
||||
msgid "Description"
|
||||
msgstr "Descrizione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__display_name
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nome visualizzato"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__skip_notify_follower_on_requests
|
||||
msgid "Do not notify to follower when creating requests?"
|
||||
msgstr "Non segnalare a chi segue quando si creano richieste?"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Duration (hours)"
|
||||
msgstr "Durata (ore)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__equipment_id
|
||||
msgid "Equipment"
|
||||
msgstr "Attrezzatura"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_follower_ids
|
||||
msgid "Followers"
|
||||
msgstr "Seguito da"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_partner_ids
|
||||
msgid "Followers (Partners)"
|
||||
msgstr "Seguito da (partner)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Font awesome icon e.g. fa-tasks"
|
||||
msgstr "Icona Font Awesome es. fa-tasks"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Frequency"
|
||||
msgstr "Frequenza"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_with_domain
|
||||
msgid "Generate With Domain"
|
||||
msgstr "Genera con dominio"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Generate requests for current threshold"
|
||||
msgstr "Genera richieste per la soglia attuale"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__has_message
|
||||
msgid "Has Message"
|
||||
msgstr "Ha un messaggio"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__id
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon"
|
||||
msgstr "Icona"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon to indicate an exception activity."
|
||||
msgstr "Icona per indicare un'attività eccezione."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_unread
|
||||
msgid "If checked, new messages require your attention."
|
||||
msgstr "Se selezionata, nuovi messaggi richiedono attenzione."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "If checked, some messages have a delivery error."
|
||||
msgstr "Se selezionata, alcuni messaggi hanno un errore di consegna."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "If not clicked, the scheduled action will do it for you."
|
||||
msgstr "Se non viene cliccato, l'azione schedulata lo farà automaticamente."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Inactive"
|
||||
msgstr "Inattivo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Instructions"
|
||||
msgstr "Istruzioni"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Interval between each maintenance"
|
||||
msgstr "Intervallo tra le manutenzioni"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_is_follower
|
||||
msgid "Is Follower"
|
||||
msgstr "Segue"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Kind"
|
||||
msgstr "Genere"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind____last_update
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Ultima modifica il"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Ultimo aggiornamento di"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Ultimo aggiornamento il"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Let the event automatically repeat at that interval"
|
||||
msgstr "Consente la ripetizione automatica dell'evento con quell'intervallo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Let the event automatically repeat at that interval step"
|
||||
msgstr ""
|
||||
"Consente la ripetizione automatica dell'evento con quell'incremento di "
|
||||
"intervallo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_main_attachment_id
|
||||
msgid "Main Attachment"
|
||||
msgstr "Allegato principale"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Maintenace Equipment must belong to the equipment's company"
|
||||
msgstr ""
|
||||
"L'attrezzatura di manutenzione deve appartenere all'azienda dell'attrezzatura"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_count
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance"
|
||||
msgstr "Manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__search_maintenance_plan_count
|
||||
msgid "Maintenance All Plan Count"
|
||||
msgstr "Conteggio di tutti i piani manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_equipment
|
||||
msgid "Maintenance Equipment"
|
||||
msgstr "Attrezzatura manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_kind
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_kind_id
|
||||
msgid "Maintenance Kind"
|
||||
msgstr "Genere manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance Plan"
|
||||
msgstr "Piano manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_count
|
||||
msgid "Maintenance Plan Count"
|
||||
msgstr "Conteggio piano di manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_m_plan_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Maintenance Plans"
|
||||
msgstr "Piani di manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_request
|
||||
msgid "Maintenance Request"
|
||||
msgstr "Richiesta manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.hr_equipment_request_action_from_plan
|
||||
msgid "Maintenance Requests"
|
||||
msgstr "Richieste di manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_team_id
|
||||
msgid "Maintenance Team"
|
||||
msgstr "Squadra manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_team_required
|
||||
msgid "Maintenance Team Required"
|
||||
msgstr "Squadra di manutenzione richiesta"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Maintenance duration in hours"
|
||||
msgstr "Durata manutenzione in ore"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_kind_id
|
||||
msgid "Maintenance kind"
|
||||
msgstr "Genere manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_kind_name_uniq
|
||||
msgid "Maintenance kind name already exists."
|
||||
msgstr "Nome genere manutenzione già esistente."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_kind_action
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_maintenance_kind_configuration
|
||||
msgid "Maintenance kinds"
|
||||
msgstr "Generi manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_ids
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_plan_id
|
||||
msgid "Maintenance plan"
|
||||
msgstr "Piano di manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid ""
|
||||
"Maintenance planning horizon. Only the maintenance requests inside the "
|
||||
"horizon will be created."
|
||||
msgstr ""
|
||||
"Orizzonte pianificazione manutenzione. Solo le manutenzioni richieste entro "
|
||||
"l'orizzonte verranno create."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_action
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_equipment_action
|
||||
msgid "Maintenance plans"
|
||||
msgstr "Piani di manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_ids
|
||||
msgid "Maintenance requests"
|
||||
msgstr "Richieste manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "Message Delivery error"
|
||||
msgstr "Errore di consegna messaggio"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_ids
|
||||
msgid "Messages"
|
||||
msgstr "Messaggi"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__month
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__month
|
||||
msgid "Month(s)"
|
||||
msgstr "Mese(i)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_monthly
|
||||
msgid "Monthly"
|
||||
msgstr "Mensile"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__my_activity_date_deadline
|
||||
msgid "My Activity Deadline"
|
||||
msgstr "Scadenza mia attività"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__name
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_date_deadline
|
||||
msgid "Next Activity Deadline"
|
||||
msgstr "Scadenza prossima attività"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_summary
|
||||
msgid "Next Activity Summary"
|
||||
msgstr "Riepilogo prossima attività"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_id
|
||||
msgid "Next Activity Type"
|
||||
msgstr "Tipo prossima attività"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__next_maintenance_date
|
||||
msgid "Next Maintenance Date"
|
||||
msgstr "Data manutenzione successiva"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__note
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__note
|
||||
msgid "Note"
|
||||
msgstr "Nota"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__notes
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
msgid "Notes"
|
||||
msgstr "Note"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of Actions"
|
||||
msgstr "Numero di azioni"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of errors"
|
||||
msgstr "Numero di errori"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of messages which requires an action"
|
||||
msgstr "Numero di messaggi che richiedono un'azione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of messages with delivery error"
|
||||
msgstr "Numero di messaggi con errore di consegna"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_unread_counter
|
||||
msgid "Number of unread messages"
|
||||
msgstr "Numero di messaggi non letti"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon period"
|
||||
msgstr "Periodo orizzonte piano"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon step"
|
||||
msgstr "Passo orizzonte piano"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Planning Horizon"
|
||||
msgstr "Orizzonte pianificazione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid "Planning Horizon period"
|
||||
msgstr "Periodo orizzonte pianificazione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Planning Horizon step"
|
||||
msgstr "Incremento orizzonte pianificazione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Plans"
|
||||
msgstr "Piani"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(description)s"
|
||||
msgstr "Manutenzione preventiva (%(kind)s) - %(description)s"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(plan)s"
|
||||
msgstr "Manutenzione preventiva (%(kind)s) - %(plan)s"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Recurrence"
|
||||
msgstr "Ricorrenza"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_user_id
|
||||
msgid "Responsible User"
|
||||
msgstr "Utente responsabile"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__search_equipment_id
|
||||
msgid "Search Equipment"
|
||||
msgstr "Cerca attrezzatura"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some maintenance plan's company is incompatible with the company of this "
|
||||
"equipment."
|
||||
msgstr ""
|
||||
"Alcune aziende del piano manutenzione sono incompatibili con l'azienda di "
|
||||
"questa attrezzatura."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Start Date"
|
||||
msgstr "Data inizio"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Start Maintenance Date"
|
||||
msgstr "Data inizio manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid ""
|
||||
"Status based on activities\n"
|
||||
"Overdue: Due date is already passed\n"
|
||||
"Today: Activity date is today\n"
|
||||
"Planned: Future activities."
|
||||
msgstr ""
|
||||
"Stato in base alle attività\n"
|
||||
"Scaduto: la data richiesta è trascorsa\n"
|
||||
"Oggi: la data attività è oggi\n"
|
||||
"Pianificato: attività future."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Team"
|
||||
msgstr "Squadra"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The maintenance plan %(kind)s of equipment %(eqpmnt)s has generated a "
|
||||
"request which is not done yet. You should either set the request as done, "
|
||||
"remove its maintenance kind or delete it first."
|
||||
msgstr ""
|
||||
"Il piano di manutenzione %(kind)s dell'attrezzatura %(eqpmnt)s ha generato "
|
||||
"una richiesta che non è ancora stata evasa. Bisogna prima impostarla ad "
|
||||
"eseguita o eliminare il genere di manutenzione o eliminarla."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Type of the exception activity on record."
|
||||
msgstr "Tipo di attività eccezione sul record."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Under Maintenance"
|
||||
msgstr "In manutenzione"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmnt)s)"
|
||||
msgstr "Piano %(kind)s anonimo (%(eqpmnt)s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmt)s)"
|
||||
msgstr "Piano %(kind)s anonimo (%(eqpmt)s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(void)s plan (%(eqpmnt)s)"
|
||||
msgstr "Piano %(void)s anonimo (%(eqpmnt)s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_unread
|
||||
msgid "Unread Messages"
|
||||
msgstr "Messaggi non letti"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_unread_counter
|
||||
msgid "Unread Messages Counter"
|
||||
msgstr "Numero messaggi non letti"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Unspecified kind"
|
||||
msgstr "Genere non specificato"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unsupported search operator"
|
||||
msgstr "Operatore di ricerca non supportato"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website Messages"
|
||||
msgstr "Messaggi sito web"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website communication history"
|
||||
msgstr "Storico comunicazioni sito web"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__week
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__week
|
||||
msgid "Week(s)"
|
||||
msgstr "Settimana(e)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_weekly
|
||||
msgid "Weekly"
|
||||
msgstr "Settimanale"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__year
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__year
|
||||
msgid "Year(s)"
|
||||
msgstr "Anno(i)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_plan_equipment_kind_uniq
|
||||
msgid ""
|
||||
"You cannot define multiple times the same maintenance kind on an equipment "
|
||||
"maintenance plan."
|
||||
msgstr ""
|
||||
"Non si può definire più volte lo stesso genere di manutenzione in un piano "
|
||||
"di manutenzione attrezzatura."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/hooks.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You have multiple preventive maintenance requests on equipment %(name)s next "
|
||||
"action date (%(date)s). Please leave only one preventive request on the date "
|
||||
"of equipment's next action to install the module."
|
||||
msgstr ""
|
||||
"Ci sono richieste di manutenzione preventiva multiple per l'attrezzatura "
|
||||
"%(name)s alla data azione successiva (%(date)s). Lasciare solo una richiesta "
|
||||
"preventiva alla successiva data azione dell'attrezzatura per installare il "
|
||||
"modulo."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "e.g. Calibration"
|
||||
msgstr "es. calibrazione"
|
||||
|
||||
#~ msgid "SMS Delivery error"
|
||||
#~ msgstr "Errore consegna SMS"
|
||||
|
||||
#~ msgid "Internal notes..."
|
||||
#~ msgstr "Note interne..."
|
||||
|
||||
#, python-format
|
||||
#~ msgid ""
|
||||
#~ "The maintenance plan %(kind)s of equipment %(plan)s has generated a "
|
||||
#~ "request which is not done yet. You should either set the request as done, "
|
||||
#~ "remove its maintenance kind or delete it first."
|
||||
#~ msgstr ""
|
||||
#~ "Il piano manutenzione %(kind)s dell'attrezzatura %(plan)s ha generato una "
|
||||
#~ "richiesta che non è ancora eseguita. Bisogna prima impostare la richiesta "
|
||||
#~ "a eseguita, o eliminare il suo tipo di manutenzione, o eliminarla."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Unnamed %(kind)s plan (%(equipment)s)"
|
||||
#~ msgstr "Piano %(kind)s (%(equipment)s) senza nome"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Unnamed %(kind)s plan (%(plan)s)"
|
||||
#~ msgstr "Piano (%(plan)s) %(kind)s senza nome"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Unnamed %(nothing)s plan (%(equipment)s)"
|
||||
#~ msgstr "Piano (%(equipment)s) %(nothing)s senza nome"
|
||||
|
||||
#~ msgid "Maintenance Kinds"
|
||||
#~ msgstr "Pianificazioni manutenzione"
|
||||
|
||||
#~ msgid "Next maintenance date"
|
||||
#~ msgstr "Data manutenzione successiva"
|
||||
|
||||
#~ msgid "Preventive Maintenance (%s) - %s"
|
||||
#~ msgstr "Manutenzione preventiva (%s) - %s"
|
||||
|
||||
#~ msgid "Start maintenance date"
|
||||
#~ msgstr "Data inizio manutenzione"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The maintenance plan %s of equipment %s has generated a request which is "
|
||||
#~ "not done yet. You should either set the request as done, remove its "
|
||||
#~ "maintenance kind or delete it first."
|
||||
#~ msgstr ""
|
||||
#~ "Il piano di manutenzione %s dell'attrezzatura %s ha generato una "
|
||||
#~ "richiesta che non è ancora stata eseguita. Si deve prima impostare la "
|
||||
#~ "richiesta come eseguita, eliminare la sua pianificazione o cancellarla."
|
||||
|
||||
#~ msgid "Unnamed %s plan (%s)"
|
||||
#~ msgstr "Piano %s senza nome (%s)"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "You have multiple preventive maintenance requests on equipment %s next "
|
||||
#~ "action date (%s). Please leave only one preventive request on the date of "
|
||||
#~ "equipment's next action to install the module."
|
||||
#~ msgstr ""
|
||||
#~ "Ci sono richieste di manutenzione multiple per l'attrezzatura %s alla "
|
||||
#~ "data della prossima azione (%s). Per installare il modulo, lasciare solo "
|
||||
#~ "una richiesta preventiva nella data della prossima azione."
|
||||
|
|
@ -0,0 +1,650 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * maintenance_plan
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 16.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.report_maintenance_request_document
|
||||
msgid "<strong>Instructions:</strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
msgid "Action Needed"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__active
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__active
|
||||
msgid "Active Kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_ids
|
||||
msgid "Activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Activity Exception Decoration"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid "Activity State"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Activity Type Icon"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_domain
|
||||
msgid "Apply on"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Archived"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_attachment_count
|
||||
msgid "Attachment Count"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__company_id
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_open_count
|
||||
msgid "Current Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Date from which the maintenance will we active"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__day
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__day
|
||||
msgid "Day(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Describe the maintenance to do..."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__name
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__display_name
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__skip_notify_follower_on_requests
|
||||
msgid "Do not notify to follower when creating requests?"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Duration (hours)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__equipment_id
|
||||
msgid "Equipment"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_follower_ids
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_partner_ids
|
||||
msgid "Followers (Partners)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Font awesome icon e.g. fa-tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Frequency"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_with_domain
|
||||
msgid "Generate With Domain"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Generate requests for current threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__has_message
|
||||
msgid "Has Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__id
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon to indicate an exception activity."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
msgid "If checked, new messages require your attention."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "If checked, some messages have a delivery error."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "If not clicked, the scheduled action will do it for you."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Instructions"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Interval between each maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_is_follower
|
||||
msgid "Is Follower"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind____last_update
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Let the event automatically repeat at that interval"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Let the event automatically repeat at that interval step"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_main_attachment_id
|
||||
msgid "Main Attachment"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Maintenace Equipment must belong to the equipment's company"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_count
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__search_maintenance_plan_count
|
||||
msgid "Maintenance All Plan Count"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_equipment
|
||||
msgid "Maintenance Equipment"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_kind
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_kind_id
|
||||
msgid "Maintenance Kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance Plan"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_count
|
||||
msgid "Maintenance Plan Count"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_m_plan_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Maintenance Plans"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_request
|
||||
msgid "Maintenance Request"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.hr_equipment_request_action_from_plan
|
||||
msgid "Maintenance Requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_team_id
|
||||
msgid "Maintenance Team"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_team_required
|
||||
msgid "Maintenance Team Required"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Maintenance duration in hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_kind_id
|
||||
msgid "Maintenance kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_kind_name_uniq
|
||||
msgid "Maintenance kind name already exists."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_kind_action
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_maintenance_kind_configuration
|
||||
msgid "Maintenance kinds"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_ids
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_plan_id
|
||||
msgid "Maintenance plan"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid ""
|
||||
"Maintenance planning horizon. Only the maintenance requests inside the "
|
||||
"horizon will be created."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_action
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_equipment_action
|
||||
msgid "Maintenance plans"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_ids
|
||||
msgid "Maintenance requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "Message Delivery error"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_ids
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__month
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__month
|
||||
msgid "Month(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_monthly
|
||||
msgid "Monthly"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__my_activity_date_deadline
|
||||
msgid "My Activity Deadline"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__name
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_date_deadline
|
||||
msgid "Next Activity Deadline"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_summary
|
||||
msgid "Next Activity Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_id
|
||||
msgid "Next Activity Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__next_maintenance_date
|
||||
msgid "Next Maintenance Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__note
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__note
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__notes
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of Actions"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of errors"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of messages requiring action"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of messages with delivery error"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon period"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon step"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Planning Horizon"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid "Planning Horizon period"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Planning Horizon step"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Plans"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(description)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(plan)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Recurrence"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_user_id
|
||||
msgid "Responsible User"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__search_equipment_id
|
||||
msgid "Search Equipment"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some maintenance plan's company is incompatible with the company of this "
|
||||
"equipment."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Start Maintenance Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid ""
|
||||
"Status based on activities\n"
|
||||
"Overdue: Due date is already passed\n"
|
||||
"Today: Activity date is today\n"
|
||||
"Planned: Future activities."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Team"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The maintenance plan %(kind)s of equipment %(eqpmnt)s has generated a "
|
||||
"request which is not done yet. You should either set the request as done, "
|
||||
"remove its maintenance kind or delete it first."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Type of the exception activity on record."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Under Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmnt)s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmt)s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(void)s plan (%(eqpmnt)s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Unspecified kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unsupported search operator"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website communication history"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__week
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__week
|
||||
msgid "Week(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_weekly
|
||||
msgid "Weekly"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__year
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__year
|
||||
msgid "Year(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_plan_equipment_kind_uniq
|
||||
msgid ""
|
||||
"You cannot define multiple times the same maintenance kind on an equipment "
|
||||
"maintenance plan."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#. odoo-python
|
||||
#: code:addons/maintenance_plan/hooks.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You have multiple preventive maintenance requests on equipment %(name)s next"
|
||||
" action date (%(date)s). Please leave only one preventive request on the "
|
||||
"date of equipment's next action to install the module."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "e.g. Calibration"
|
||||
msgstr ""
|
||||
|
|
@ -0,0 +1,699 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * maintenance_plan
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 15.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2022-12-03 13:44+0000\n"
|
||||
"Last-Translator: Pedro Castro Silva <pedrocs@exo.pt>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: pt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.14.1\n"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.report_maintenance_request_document
|
||||
msgid "<strong>Instructions:</strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
msgid "Action Needed"
|
||||
msgstr "Ação Necessária"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__active
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Active"
|
||||
msgstr "Ativo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__active
|
||||
msgid "Active Kind"
|
||||
msgstr "Tipo Ativo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_ids
|
||||
msgid "Activities"
|
||||
msgstr "Atividades"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Activity Exception Decoration"
|
||||
msgstr "Decoração da Atividade Excepcção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid "Activity State"
|
||||
msgstr "Estado da Atividade"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Activity Type Icon"
|
||||
msgstr "Ícone de Tipo de Atividade"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_domain
|
||||
msgid "Apply on"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Archived"
|
||||
msgstr "Arquivado"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_attachment_count
|
||||
msgid "Attachment Count"
|
||||
msgstr "Número de Anexos"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__company_id
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Criado por"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Criado em"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_open_count
|
||||
msgid "Current Maintenance"
|
||||
msgstr "Manutenção Atual"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Date from which the maintenance will we active"
|
||||
msgstr "Data a partir da qual a manutenção estará ativa"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__day
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__day
|
||||
msgid "Day(s)"
|
||||
msgstr "Dia(s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Describe the maintenance to do..."
|
||||
msgstr "Descrever a manutenção a fazer..."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__name
|
||||
msgid "Description"
|
||||
msgstr "Descrição"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__display_name
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nome a Apresentar"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__skip_notify_follower_on_requests
|
||||
msgid "Do not notify to follower when creating requests?"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Duration (hours)"
|
||||
msgstr "Duração (horas)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__equipment_id
|
||||
msgid "Equipment"
|
||||
msgstr "Equipamento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_follower_ids
|
||||
msgid "Followers"
|
||||
msgstr "Seguidores"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_partner_ids
|
||||
msgid "Followers (Partners)"
|
||||
msgstr "Seguidores (Parceiros)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Font awesome icon e.g. fa-tasks"
|
||||
msgstr "Ícone font awesome, por exemplo fa-tasks"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Frequency"
|
||||
msgstr "Frequência"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_with_domain
|
||||
msgid "Generate With Domain"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Generate requests for current threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__has_message
|
||||
msgid "Has Message"
|
||||
msgstr "Tem mensagem"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__id
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon"
|
||||
msgstr "Ícone"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon to indicate an exception activity."
|
||||
msgstr "Ícone para indicar uma exceção na atividade."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_unread
|
||||
msgid "If checked, new messages require your attention."
|
||||
msgstr "Se marcado, há novas mensagens que pedem a sua atenção."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "If checked, some messages have a delivery error."
|
||||
msgstr "Se estiver marcado, algumas mensagens têm um erro de entrega."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "If not clicked, the scheduled action will do it for you."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Inactive"
|
||||
msgstr "Inativo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Instructions"
|
||||
msgstr "Instruções"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Interval between each maintenance"
|
||||
msgstr "Intervalo entre cada manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_is_follower
|
||||
msgid "Is Follower"
|
||||
msgstr "É Seguidor"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind____last_update
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Última Modificação em"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Última atualização por"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Última Atualização em"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Let the event automatically repeat at that interval"
|
||||
msgstr "Deixar o evento repetir-se automaticamente naquele intervalo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Let the event automatically repeat at that interval step"
|
||||
msgstr "Deixe o evento se repetir automaticamente nessa etapa de intervalo"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_main_attachment_id
|
||||
msgid "Main Attachment"
|
||||
msgstr "Anexo Principal"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Maintenace Equipment must belong to the equipment's company"
|
||||
msgstr "O equipamento de manutenção deve pertencer à empresa do equipamento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_count
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance"
|
||||
msgstr "Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__search_maintenance_plan_count
|
||||
msgid "Maintenance All Plan Count"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_equipment
|
||||
msgid "Maintenance Equipment"
|
||||
msgstr "Equipamento de Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_kind
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_kind_id
|
||||
msgid "Maintenance Kind"
|
||||
msgstr "Tipo de Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance Plan"
|
||||
msgstr "Plano de Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_count
|
||||
msgid "Maintenance Plan Count"
|
||||
msgstr "Núm. de Planos de Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_m_plan_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Maintenance Plans"
|
||||
msgstr "Planos de Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_request
|
||||
msgid "Maintenance Request"
|
||||
msgstr "Pedido de Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.hr_equipment_request_action_from_plan
|
||||
msgid "Maintenance Requests"
|
||||
msgstr "Pedidos de Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_team_id
|
||||
msgid "Maintenance Team"
|
||||
msgstr "Equipa de Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_team_required
|
||||
msgid "Maintenance Team Required"
|
||||
msgstr "Equipa de Manutenção necessária"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Maintenance duration in hours"
|
||||
msgstr "Duração da manutenção em horas"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_kind_id
|
||||
msgid "Maintenance kind"
|
||||
msgstr "Tipo de manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_kind_name_uniq
|
||||
msgid "Maintenance kind name already exists."
|
||||
msgstr "O nome do tipo manutenção já existe."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_kind_action
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_maintenance_kind_configuration
|
||||
msgid "Maintenance kinds"
|
||||
msgstr "Tipos de manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_ids
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_plan_id
|
||||
msgid "Maintenance plan"
|
||||
msgstr "Plano de manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid ""
|
||||
"Maintenance planning horizon. Only the maintenance requests inside the "
|
||||
"horizon will be created."
|
||||
msgstr ""
|
||||
"Horizonte de planeamento da manutenção. Somente as solicitações de "
|
||||
"manutenção dentro do horizonte serão criadas."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_action
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_equipment_action
|
||||
msgid "Maintenance plans"
|
||||
msgstr "Planos de manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_ids
|
||||
msgid "Maintenance requests"
|
||||
msgstr "Pedidos de manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "Message Delivery error"
|
||||
msgstr "Erro de Envio de Mensagem"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_ids
|
||||
msgid "Messages"
|
||||
msgstr "Mensagens"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__month
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__month
|
||||
msgid "Month(s)"
|
||||
msgstr "Mes(es)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_monthly
|
||||
msgid "Monthly"
|
||||
msgstr "Mensalmente"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__my_activity_date_deadline
|
||||
msgid "My Activity Deadline"
|
||||
msgstr "Prazo Limite da Minha Atividade"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__name
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_date_deadline
|
||||
msgid "Next Activity Deadline"
|
||||
msgstr "Prazo da Próxima Atividade"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_summary
|
||||
msgid "Next Activity Summary"
|
||||
msgstr "Resumo da Próxima Atividade"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_id
|
||||
msgid "Next Activity Type"
|
||||
msgstr "Tipo da Próxima Atividade"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__next_maintenance_date
|
||||
msgid "Next Maintenance Date"
|
||||
msgstr "Data da Próxima Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__note
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__note
|
||||
msgid "Note"
|
||||
msgstr "Nota"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__notes
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
msgid "Notes"
|
||||
msgstr "Notas"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of Actions"
|
||||
msgstr "Número de Ações"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of errors"
|
||||
msgstr "Número de erros"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of messages which requires an action"
|
||||
msgstr "Número de mensagens que requerem uma ação"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of messages with delivery error"
|
||||
msgstr "Número de mensagens com um erro de entrega"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_unread_counter
|
||||
msgid "Number of unread messages"
|
||||
msgstr "Número de mensagens não lidas"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon period"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon step"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Planning Horizon"
|
||||
msgstr "Horizonte de Planeamento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid "Planning Horizon period"
|
||||
msgstr "Período do horizonte de planeamento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Planning Horizon step"
|
||||
msgstr "Etapa do Horizonte de Planeamento"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Plans"
|
||||
msgstr "Planos"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(description)s"
|
||||
msgstr "Manutenção Preventiva (%(kind)s) - %(description)s"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(plan)s"
|
||||
msgstr "Manutenção Preventiva (%(kind)s) - %(plan)s"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Recurrence"
|
||||
msgstr "Recorrência"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_user_id
|
||||
msgid "Responsible User"
|
||||
msgstr "Utilizador Responsável"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__search_equipment_id
|
||||
msgid "Search Equipment"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some maintenance plan's company is incompatible with the company of this "
|
||||
"equipment."
|
||||
msgstr ""
|
||||
"A empresa de alguns planos de manutenção é incompatível com a empresa deste "
|
||||
"equipamento."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Start Maintenance Date"
|
||||
msgstr "Data de Início da manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid ""
|
||||
"Status based on activities\n"
|
||||
"Overdue: Due date is already passed\n"
|
||||
"Today: Activity date is today\n"
|
||||
"Planned: Future activities."
|
||||
msgstr ""
|
||||
"Estado com base nas atividades\n"
|
||||
"Em atraso: A data limite foi ultrapassada\n"
|
||||
"Hoje: A data da atividade é a atual\n"
|
||||
"Planeado: Atividades futuras."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Team"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The maintenance plan %(kind)s of equipment %(eqpmnt)s has generated a "
|
||||
"request which is not done yet. You should either set the request as done, "
|
||||
"remove its maintenance kind or delete it first."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Type of the exception activity on record."
|
||||
msgstr "Tipo de atividade de exceção no registo."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Under Maintenance"
|
||||
msgstr "Em Manutenção"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmnt)s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmt)s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(void)s plan (%(eqpmnt)s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_unread
|
||||
msgid "Unread Messages"
|
||||
msgstr "Mensagens Não Lidas"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_unread_counter
|
||||
msgid "Unread Messages Counter"
|
||||
msgstr "Contador de Mensagens Não Lidas"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Unspecified kind"
|
||||
msgstr "Tipo indeterminado"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unsupported search operator"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website Messages"
|
||||
msgstr "Mensagens do Website"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website communication history"
|
||||
msgstr "Histórico de Comunicação do Website"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__week
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__week
|
||||
msgid "Week(s)"
|
||||
msgstr "Semana(s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_weekly
|
||||
msgid "Weekly"
|
||||
msgstr "Semanalmente"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__year
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__year
|
||||
msgid "Year(s)"
|
||||
msgstr "Ano(s)"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_plan_equipment_kind_uniq
|
||||
msgid ""
|
||||
"You cannot define multiple times the same maintenance kind on an equipment "
|
||||
"maintenance plan."
|
||||
msgstr ""
|
||||
"Você não pode definir várias vezes o mesmo tipo de manutenção num plano de "
|
||||
"manutenção de equipamentos."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/hooks.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You have multiple preventive maintenance requests on equipment %(name)s next "
|
||||
"action date (%(date)s). Please leave only one preventive request on the date "
|
||||
"of equipment's next action to install the module."
|
||||
msgstr ""
|
||||
"Tem múltiplos pedidos de manutenção preventiva para o equipamento %(name)s e "
|
||||
"próxima data de ação (%(date)s). Por favor, deixe apenas uma solicitação "
|
||||
"preventiva na data da próxima ação do equipamento para instalar o módulo."
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "e.g. Calibration"
|
||||
msgstr "p. ex., Calibração"
|
||||
|
||||
#~ msgid "SMS Delivery error"
|
||||
#~ msgstr "Erro de entrega de SMS"
|
||||
|
||||
#~ msgid "Internal notes..."
|
||||
#~ msgstr "Notas Internas..."
|
||||
|
||||
#, python-format
|
||||
#~ msgid ""
|
||||
#~ "The maintenance plan %(kind)s of equipment %(plan)s has generated a "
|
||||
#~ "request which is not done yet. You should either set the request as done, "
|
||||
#~ "remove its maintenance kind or delete it first."
|
||||
#~ msgstr ""
|
||||
#~ "O plano de manutenção %(kind)s do equipamento %(plan)s gerou um pedido "
|
||||
#~ "que ainda não foi efetuado. Deve definir o pedido como feito, remover o "
|
||||
#~ "seu tipo de manutenção ou eliminá-lo primeiro."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Unnamed %(kind)s plan (%(equipment)s)"
|
||||
#~ msgstr "Plano %(kind)s sem nome (%(equipment)s)"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Unnamed %(kind)s plan (%(plan)s)"
|
||||
#~ msgstr "Plano %(kind)s sem nome (%(plan)s)"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Unnamed %(nothing)s plan (%(equipment)s)"
|
||||
#~ msgstr "Plano %(nothing)s sem nome (%(equipment)s)"
|
||||
|
|
@ -0,0 +1,656 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * maintenance_plan
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.report_maintenance_request_document
|
||||
msgid "<strong>Instructions:</strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
msgid "Action Needed"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__active
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__active
|
||||
msgid "Active Kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_ids
|
||||
msgid "Activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Activity Exception Decoration"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid "Activity State"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Activity Type Icon"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_domain
|
||||
msgid "Apply on"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Archived"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_attachment_count
|
||||
msgid "Attachment Count"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__company_id
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__create_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_open_count
|
||||
msgid "Current Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Date from which the maintenance will we active"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__day
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__day
|
||||
msgid "Day(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Describe the maintenance to do..."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__name
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__display_name
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__skip_notify_follower_on_requests
|
||||
msgid "Do not notify to follower when creating requests?"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Duration (hours)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__equipment_id
|
||||
msgid "Equipment"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_follower_ids
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_partner_ids
|
||||
msgid "Followers (Partners)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_type_icon
|
||||
msgid "Font awesome icon e.g. fa-tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Frequency"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__generate_with_domain
|
||||
msgid "Generate With Domain"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Generate requests for current threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__has_message
|
||||
msgid "Has Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__id
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_icon
|
||||
msgid "Icon to indicate an exception activity."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_unread
|
||||
msgid "If checked, new messages require your attention."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "If checked, some messages have a delivery error."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "If not clicked, the scheduled action will do it for you."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Instructions"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval
|
||||
msgid "Interval between each maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_is_follower
|
||||
msgid "Is Follower"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind____last_update
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_uid
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__write_date
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Let the event automatically repeat at that interval"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Let the event automatically repeat at that interval step"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_main_attachment_id
|
||||
msgid "Main Attachment"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Maintenace Equipment must belong to the equipment's company"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_count
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__search_maintenance_plan_count
|
||||
msgid "Maintenance All Plan Count"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_equipment
|
||||
msgid "Maintenance Equipment"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_kind
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_kind_id
|
||||
msgid "Maintenance Kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Maintenance Plan"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_count
|
||||
msgid "Maintenance Plan Count"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_m_plan_form
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Maintenance Plans"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model,name:maintenance_plan.model_maintenance_request
|
||||
msgid "Maintenance Request"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.hr_equipment_request_action_from_plan
|
||||
msgid "Maintenance Requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_team_id
|
||||
msgid "Maintenance Team"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_team_required
|
||||
msgid "Maintenance Team Required"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__duration
|
||||
msgid "Maintenance duration in hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_kind_id
|
||||
msgid "Maintenance kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_kind_name_uniq
|
||||
msgid "Maintenance kind name already exists."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_kind_action
|
||||
#: model:ir.ui.menu,name:maintenance_plan.menu_maintenance_kind_configuration
|
||||
msgid "Maintenance kinds"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__maintenance_plan_ids
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__maintenance_plan_id
|
||||
msgid "Maintenance plan"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid ""
|
||||
"Maintenance planning horizon. Only the maintenance requests inside the "
|
||||
"horizon will be created."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_action
|
||||
#: model:ir.actions.act_window,name:maintenance_plan.maintenance_plan_equipment_action
|
||||
msgid "Maintenance plans"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_ids
|
||||
msgid "Maintenance requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error
|
||||
msgid "Message Delivery error"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_ids
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__month
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__month
|
||||
msgid "Month(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_monthly
|
||||
msgid "Monthly"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__my_activity_date_deadline
|
||||
msgid "My Activity Deadline"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_kind__name
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_date_deadline
|
||||
msgid "Next Activity Deadline"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_summary
|
||||
msgid "Next Activity Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_type_id
|
||||
msgid "Next Activity Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__next_maintenance_date
|
||||
msgid "Next Maintenance Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__note
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_request__note
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_equipment__notes
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_request_view_form
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of Actions"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of errors"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_needaction_counter
|
||||
msgid "Number of messages which requires an action"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_has_error_counter
|
||||
msgid "Number of messages with delivery error"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__message_unread_counter
|
||||
msgid "Number of unread messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon period"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "P. Horizon step"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "Planning Horizon"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__maintenance_plan_horizon
|
||||
msgid "Planning Horizon period"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__planning_step
|
||||
msgid "Planning Horizon step"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Plans"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(description)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Preventive Maintenance (%(kind)s) - %(plan)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__interval_step
|
||||
msgid "Recurrence"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__activity_user_id
|
||||
msgid "Responsible User"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__search_equipment_id
|
||||
msgid "Search Equipment"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some maintenance plan's company is incompatible with the company of this "
|
||||
"equipment."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__start_maintenance_date
|
||||
msgid "Start Maintenance Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_state
|
||||
msgid ""
|
||||
"Status based on activities\n"
|
||||
"Overdue: Due date is already passed\n"
|
||||
"Today: Activity date is today\n"
|
||||
"Planned: Future activities."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.hr_equipment_view_form
|
||||
msgid "Team"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The maintenance plan %(kind)s of equipment %(eqpmnt)s has generated a "
|
||||
"request which is not done yet. You should either set the request as done, "
|
||||
"remove its maintenance kind or delete it first."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__activity_exception_decoration
|
||||
msgid "Type of the exception activity on record."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_search
|
||||
msgid "Under Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmnt)s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(kind)s plan (%(eqpmt)s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/tests/test_maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unnamed %(void)s plan (%(eqpmnt)s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_unread
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__message_unread_counter
|
||||
msgid "Unread Messages Counter"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_equipment.py:0
|
||||
#, python-format
|
||||
msgid "Unspecified kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/models/maintenance_plan.py:0
|
||||
#, python-format
|
||||
msgid "Unsupported search operator"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,field_description:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields,help:maintenance_plan.field_maintenance_plan__website_message_ids
|
||||
msgid "Website communication history"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__week
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__week
|
||||
msgid "Week(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:maintenance.kind,name:maintenance_plan.maintenance_kind_weekly
|
||||
msgid "Weekly"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__interval_step__year
|
||||
#: model:ir.model.fields.selection,name:maintenance_plan.selection__maintenance_plan__planning_step__year
|
||||
msgid "Year(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model:ir.model.constraint,message:maintenance_plan.constraint_maintenance_plan_equipment_kind_uniq
|
||||
msgid ""
|
||||
"You cannot define multiple times the same maintenance kind on an equipment "
|
||||
"maintenance plan."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: code:addons/maintenance_plan/hooks.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You have multiple preventive maintenance requests on equipment %(name)s next "
|
||||
"action date (%(date)s). Please leave only one preventive request on the date "
|
||||
"of equipment's next action to install the module."
|
||||
msgstr ""
|
||||
|
||||
#. module: maintenance_plan
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance_plan.maintenance_plan_view_form
|
||||
msgid "e.g. Calibration"
|
||||
msgstr ""
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
from . import maintenance_kind
|
||||
from . import maintenance_plan
|
||||
from . import maintenance_equipment
|
||||
from . import maintenance_request
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
# Copyright 2017 Camptocamp SA
|
||||
# Copyright 2019-20 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class MaintenanceEquipment(models.Model):
|
||||
|
||||
_inherit = "maintenance.equipment"
|
||||
|
||||
maintenance_plan_ids = fields.One2many(
|
||||
string="Maintenance plan",
|
||||
comodel_name="maintenance.plan",
|
||||
inverse_name="equipment_id",
|
||||
)
|
||||
maintenance_plan_count = fields.Integer(
|
||||
compute="_compute_maintenance_plan_count",
|
||||
store=True,
|
||||
)
|
||||
search_maintenance_plan_count = fields.Integer(
|
||||
compute="_compute_search_maintenance_plan_count",
|
||||
string="Maintenance All Plan Count",
|
||||
)
|
||||
maintenance_team_required = fields.Boolean(compute="_compute_team_required")
|
||||
notes = fields.Text()
|
||||
|
||||
@api.depends("maintenance_plan_ids", "maintenance_plan_ids.active")
|
||||
def _compute_maintenance_plan_count(self):
|
||||
for equipment in self:
|
||||
equipment.maintenance_plan_count = len(
|
||||
equipment.with_context(active_test=False).maintenance_plan_ids
|
||||
)
|
||||
|
||||
@api.depends("maintenance_plan_ids")
|
||||
def _compute_search_maintenance_plan_count(self):
|
||||
for equipment in self:
|
||||
equipment.search_maintenance_plan_count = (
|
||||
self.env["maintenance.plan"]
|
||||
.with_context(active_test=False)
|
||||
.search_count([("search_equipment_id", "=", equipment.id)])
|
||||
)
|
||||
|
||||
@api.depends("maintenance_plan_ids")
|
||||
def _compute_team_required(self):
|
||||
for equipment in self:
|
||||
equipment.maintenance_team_required = (
|
||||
len(
|
||||
equipment.maintenance_plan_ids.filtered(
|
||||
lambda r: not r.maintenance_team_id
|
||||
)
|
||||
)
|
||||
>= 1
|
||||
)
|
||||
|
||||
@api.constrains("company_id", "maintenance_plan_ids")
|
||||
def _check_company_id(self):
|
||||
for rec in self:
|
||||
if rec.company_id and not all(
|
||||
rec.company_id == p.company_id for p in rec.maintenance_plan_ids
|
||||
):
|
||||
raise ValidationError(
|
||||
_(
|
||||
"Some maintenance plan's company is incompatible with "
|
||||
"the company of this equipment."
|
||||
)
|
||||
)
|
||||
|
||||
def _prepare_requests_from_plan(self, maintenance_plan, next_maintenance_date):
|
||||
if self:
|
||||
return self._prepare_request_from_plan(
|
||||
maintenance_plan, next_maintenance_date
|
||||
)
|
||||
equipments = maintenance_plan._get_maintenance_equipments()
|
||||
return [
|
||||
equipment._prepare_request_from_plan(
|
||||
maintenance_plan, next_maintenance_date
|
||||
)
|
||||
for equipment in equipments
|
||||
]
|
||||
|
||||
def _prepare_request_from_plan(self, maintenance_plan, next_maintenance_date):
|
||||
team_id = maintenance_plan.maintenance_team_id.id or self.maintenance_team_id.id
|
||||
request_model = self.env["maintenance.request"]
|
||||
if not team_id:
|
||||
team_id = request_model._get_default_team_id()
|
||||
|
||||
description = self.name if self else maintenance_plan.name
|
||||
kind = maintenance_plan.maintenance_kind_id.name or _("Unspecified kind")
|
||||
name = _(
|
||||
"Preventive Maintenance (%(kind)s) - %(description)s",
|
||||
kind=kind,
|
||||
description=description,
|
||||
)
|
||||
|
||||
data = {
|
||||
"name": name,
|
||||
"request_date": next_maintenance_date,
|
||||
"schedule_date": next_maintenance_date,
|
||||
"category_id": self.category_id.id,
|
||||
"equipment_id": self.id,
|
||||
"maintenance_type": "preventive",
|
||||
"owner_user_id": self.owner_user_id.id or self.env.user.id,
|
||||
"user_id": self.technician_user_id.id,
|
||||
"maintenance_team_id": team_id,
|
||||
"maintenance_kind_id": maintenance_plan.maintenance_kind_id.id,
|
||||
"maintenance_plan_id": maintenance_plan.id,
|
||||
"duration": maintenance_plan.duration,
|
||||
"note": maintenance_plan.note,
|
||||
"company_id": maintenance_plan.company_id.id or self.company_id.id,
|
||||
}
|
||||
# This field comes from maintenance_timesheet for avoiding a glue module
|
||||
if "planned_hours" in request_model._fields:
|
||||
data["planned_hours"] = maintenance_plan.duration
|
||||
return data
|
||||
|
||||
def _create_new_request(self, mtn_plan):
|
||||
# Compute horizon date adding to today the planning horizon
|
||||
horizon_date = fields.Date.today() + mtn_plan.get_relativedelta(
|
||||
mtn_plan.maintenance_plan_horizon, mtn_plan.planning_step or "year"
|
||||
)
|
||||
# We check maintenance request already created and create until
|
||||
# planning horizon is met
|
||||
start_maintenance_date_plan = mtn_plan.start_maintenance_date
|
||||
furthest_maintenance_request = self.env["maintenance.request"].search(
|
||||
[
|
||||
("maintenance_plan_id", "=", mtn_plan.id),
|
||||
("request_date", ">=", start_maintenance_date_plan),
|
||||
],
|
||||
order="request_date desc",
|
||||
limit=1,
|
||||
)
|
||||
if furthest_maintenance_request:
|
||||
next_maintenance_date = (
|
||||
furthest_maintenance_request.request_date
|
||||
+ mtn_plan.get_relativedelta(
|
||||
mtn_plan.interval, mtn_plan.interval_step or "year"
|
||||
)
|
||||
)
|
||||
else:
|
||||
next_maintenance_date = mtn_plan.next_maintenance_date
|
||||
skip_notify_follower = mtn_plan.skip_notify_follower_on_requests
|
||||
# Skip assigned mail + Activity mail
|
||||
request_model = self.env["maintenance.request"].with_context(
|
||||
mail_activity_quick_update=skip_notify_follower,
|
||||
mail_auto_subscribe_no_notify=skip_notify_follower,
|
||||
)
|
||||
requests = request_model
|
||||
# Create maintenance request until we reach planning horizon
|
||||
while next_maintenance_date <= horizon_date:
|
||||
if next_maintenance_date >= fields.Date.today():
|
||||
vals = self._prepare_requests_from_plan(mtn_plan, next_maintenance_date)
|
||||
requests |= request_model.create(vals)
|
||||
next_maintenance_date = next_maintenance_date + mtn_plan.get_relativedelta(
|
||||
mtn_plan.interval, mtn_plan.interval_step or "year"
|
||||
)
|
||||
return requests
|
||||
|
||||
@api.model
|
||||
def _cron_generate_requests(self):
|
||||
"""
|
||||
Generates maintenance request on the next_maintenance_date or
|
||||
today if none exists
|
||||
"""
|
||||
for plan in (
|
||||
self.env["maintenance.plan"]
|
||||
.sudo()
|
||||
.search([("interval", ">", 0)])
|
||||
.filtered(lambda x: True if not x.equipment_id else x.equipment_id.active)
|
||||
):
|
||||
equipment = plan.equipment_id
|
||||
equipment._create_new_request(plan)
|
||||
|
||||
@api.depends(
|
||||
"maintenance_plan_ids.next_maintenance_date", "maintenance_ids.request_date"
|
||||
)
|
||||
def _compute_next_maintenance(self):
|
||||
"""Redefine the function to display next_action_date in kanban view"""
|
||||
for equipment in self:
|
||||
next_plan_dates = equipment.maintenance_plan_ids.mapped(
|
||||
"next_maintenance_date"
|
||||
)
|
||||
next_unplanned_dates = (
|
||||
self.env["maintenance.request"]
|
||||
.search(
|
||||
[
|
||||
("equipment_id", "=", equipment.id),
|
||||
("maintenance_kind_id", "=", None),
|
||||
("request_date", ">", fields.Date.context_today(self)),
|
||||
("stage_id.done", "!=", True),
|
||||
("close_date", "=", False),
|
||||
]
|
||||
)
|
||||
.mapped("request_date")
|
||||
)
|
||||
if len(next_plan_dates + next_unplanned_dates) <= 0:
|
||||
equipment.next_action_date = None
|
||||
else:
|
||||
equipment.next_action_date = min(next_plan_dates + next_unplanned_dates)
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# Copyright 2017 Camptocamp SA
|
||||
# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com).
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class MaintenanceKind(models.Model):
|
||||
|
||||
_name = "maintenance.kind"
|
||||
_description = "Maintenance Kind"
|
||||
|
||||
name = fields.Char(required=True, translate=True)
|
||||
active = fields.Boolean("Active Kind", required=True, default=True)
|
||||
|
||||
_sql_constraints = [
|
||||
("name_uniq", "unique (name)", "Maintenance kind name already exists.")
|
||||
]
|
||||
|
|
@ -0,0 +1,261 @@
|
|||
# Copyright 2017 Camptocamp SA
|
||||
# Copyright 2019-20 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from odoo.tools import safe_eval
|
||||
|
||||
|
||||
class MaintenancePlan(models.Model):
|
||||
_name = "maintenance.plan"
|
||||
_description = "Maintenance Plan"
|
||||
_inherit = ["mail.thread", "mail.activity.mixin"]
|
||||
|
||||
name = fields.Char("Description")
|
||||
active = fields.Boolean(default=True)
|
||||
equipment_id = fields.Many2one(
|
||||
string="Equipment", comodel_name="maintenance.equipment", ondelete="cascade"
|
||||
)
|
||||
company_id = fields.Many2one(
|
||||
comodel_name="res.company",
|
||||
default=lambda self: self.env.company,
|
||||
)
|
||||
maintenance_kind_id = fields.Many2one(
|
||||
string="Maintenance Kind", comodel_name="maintenance.kind", ondelete="restrict"
|
||||
)
|
||||
interval = fields.Integer(
|
||||
string="Frequency", default=1, help="Interval between each maintenance"
|
||||
)
|
||||
interval_step = fields.Selection(
|
||||
[
|
||||
("day", "Day(s)"),
|
||||
("week", "Week(s)"),
|
||||
("month", "Month(s)"),
|
||||
("year", "Year(s)"),
|
||||
],
|
||||
string="Recurrence",
|
||||
default="year",
|
||||
help="Let the event automatically repeat at that interval step",
|
||||
)
|
||||
duration = fields.Float(
|
||||
string="Duration (hours)", help="Maintenance duration in hours"
|
||||
)
|
||||
start_maintenance_date = fields.Date(
|
||||
default=fields.Date.context_today,
|
||||
help="Date from which the maintenance will we active",
|
||||
)
|
||||
next_maintenance_date = fields.Date(compute="_compute_next_maintenance", store=True)
|
||||
maintenance_plan_horizon = fields.Integer(
|
||||
string="Planning Horizon period",
|
||||
default=1,
|
||||
help="Maintenance planning horizon. Only the maintenance requests "
|
||||
"inside the horizon will be created.",
|
||||
)
|
||||
planning_step = fields.Selection(
|
||||
[
|
||||
("day", "Day(s)"),
|
||||
("week", "Week(s)"),
|
||||
("month", "Month(s)"),
|
||||
("year", "Year(s)"),
|
||||
],
|
||||
string="Planning Horizon step",
|
||||
default="year",
|
||||
help="Let the event automatically repeat at that interval",
|
||||
)
|
||||
note = fields.Html()
|
||||
maintenance_ids = fields.One2many(
|
||||
"maintenance.request", "maintenance_plan_id", string="Maintenance requests"
|
||||
)
|
||||
maintenance_count = fields.Integer(
|
||||
compute="_compute_maintenance_count", string="Maintenance", store=True
|
||||
)
|
||||
maintenance_open_count = fields.Integer(
|
||||
compute="_compute_maintenance_count", string="Current Maintenance", store=True
|
||||
)
|
||||
maintenance_team_id = fields.Many2one("maintenance.team")
|
||||
skip_notify_follower_on_requests = fields.Boolean(
|
||||
string="Do not notify to follower when creating requests?", default=True
|
||||
)
|
||||
generate_with_domain = fields.Boolean()
|
||||
generate_domain = fields.Char(string="Apply on")
|
||||
search_equipment_id = fields.Many2one(
|
||||
comodel_name="maintenance.equipment",
|
||||
compute="_compute_search_equipment",
|
||||
search="_search_search_equipment",
|
||||
)
|
||||
|
||||
@api.model
|
||||
def _search_search_equipment(self, operator, value):
|
||||
if operator != "=" or (not value and not isinstance(value, models.NewId)):
|
||||
raise ValueError(_("Unsupported search operator"))
|
||||
plans = self.search([("generate_with_domain", "=", True)])
|
||||
plan_ids = []
|
||||
equipment = self.env["maintenance.equipment"].browse(value)
|
||||
for plan in plans:
|
||||
if equipment.filtered_domain(
|
||||
safe_eval.safe_eval(
|
||||
plan.generate_domain or "[]", plan._get_eval_context()
|
||||
)
|
||||
):
|
||||
plan_ids.append(plan.id)
|
||||
return ["|", ("equipment_id", "=", value), ("id", "in", plan_ids)]
|
||||
|
||||
@api.depends("equipment_id")
|
||||
def _compute_search_equipment(self):
|
||||
for record in self:
|
||||
record.search_equipment_id = record.equipment_id
|
||||
|
||||
def _get_eval_context(self):
|
||||
"""Prepare the context used when evaluating python code
|
||||
:returns: dict -- evaluation context given to safe_eval
|
||||
"""
|
||||
return {
|
||||
"datetime": safe_eval.datetime,
|
||||
"dateutil": safe_eval.dateutil,
|
||||
"time": safe_eval.time,
|
||||
}
|
||||
|
||||
def name_get(self):
|
||||
result = []
|
||||
for plan in self:
|
||||
result.append(
|
||||
(
|
||||
plan.id,
|
||||
plan.name
|
||||
or _(
|
||||
"Unnamed %(kind)s plan (%(eqpmt)s)",
|
||||
kind=plan.maintenance_kind_id.name or "",
|
||||
eqpmt=plan.equipment_id.name,
|
||||
),
|
||||
)
|
||||
)
|
||||
return result
|
||||
|
||||
@api.depends("maintenance_ids.stage_id.done")
|
||||
def _compute_maintenance_count(self):
|
||||
for equipment in self:
|
||||
equipment.maintenance_count = len(equipment.maintenance_ids)
|
||||
equipment.maintenance_open_count = len(
|
||||
equipment.maintenance_ids.filtered(lambda x: not x.stage_id.done)
|
||||
)
|
||||
|
||||
def get_relativedelta(self, interval, step):
|
||||
if step == "day":
|
||||
return relativedelta(days=interval)
|
||||
elif step == "week":
|
||||
return relativedelta(weeks=interval)
|
||||
elif step == "month":
|
||||
return relativedelta(months=interval)
|
||||
elif step == "year":
|
||||
return relativedelta(years=interval)
|
||||
|
||||
@api.depends(
|
||||
"interval",
|
||||
"interval_step",
|
||||
"start_maintenance_date",
|
||||
"maintenance_ids.request_date",
|
||||
"maintenance_ids.close_date",
|
||||
)
|
||||
def _compute_next_maintenance(self):
|
||||
for plan in self.filtered(lambda x: x.interval > 0):
|
||||
|
||||
interval_timedelta = plan.get_relativedelta(
|
||||
plan.interval, plan.interval_step
|
||||
)
|
||||
|
||||
next_maintenance_todo = self.env["maintenance.request"].search(
|
||||
[
|
||||
("maintenance_plan_id", "=", plan.id),
|
||||
("stage_id.done", "!=", True),
|
||||
("close_date", "=", False),
|
||||
("request_date", ">=", plan.start_maintenance_date),
|
||||
],
|
||||
order="request_date asc",
|
||||
limit=1,
|
||||
)
|
||||
|
||||
if next_maintenance_todo:
|
||||
plan.next_maintenance_date = next_maintenance_todo.request_date
|
||||
else:
|
||||
last_maintenance_done = self.env["maintenance.request"].search(
|
||||
[
|
||||
("maintenance_plan_id", "=", plan.id),
|
||||
("request_date", ">=", plan.start_maintenance_date),
|
||||
],
|
||||
order="request_date desc",
|
||||
limit=1,
|
||||
)
|
||||
if last_maintenance_done:
|
||||
plan.next_maintenance_date = (
|
||||
last_maintenance_done.request_date + interval_timedelta
|
||||
)
|
||||
else:
|
||||
next_date = plan.start_maintenance_date
|
||||
while next_date < fields.Date.today():
|
||||
next_date = next_date + interval_timedelta
|
||||
plan.next_maintenance_date = next_date
|
||||
|
||||
@api.constrains("company_id", "equipment_id")
|
||||
def _check_company_id(self):
|
||||
for rec in self:
|
||||
if (
|
||||
rec.equipment_id.company_id
|
||||
and rec.company_id != rec.equipment_id.company_id
|
||||
):
|
||||
raise ValidationError(
|
||||
_("Maintenace Equipment must belong to the equipment's company")
|
||||
)
|
||||
|
||||
def unlink(self):
|
||||
"""Restrict deletion of maintenance plan should there be maintenance
|
||||
requests of this kind which are not done for its equipment"""
|
||||
for plan in self:
|
||||
request = plan.equipment_id.mapped("maintenance_ids").filtered(
|
||||
lambda r: (
|
||||
r.maintenance_kind_id == plan.maintenance_kind_id
|
||||
and not r.stage_id.done
|
||||
and r.maintenance_type == "preventive"
|
||||
)
|
||||
)
|
||||
if request:
|
||||
raise UserError(
|
||||
_(
|
||||
"The maintenance plan %(kind)s of equipment %(eqpmnt)s "
|
||||
"has generated a request which is not done "
|
||||
"yet. You should either set the request as "
|
||||
"done, remove its maintenance kind or "
|
||||
"delete it first.",
|
||||
kind=plan.maintenance_kind_id.name,
|
||||
eqpmnt=plan.equipment_id.name,
|
||||
)
|
||||
)
|
||||
return super().unlink()
|
||||
|
||||
_sql_constraints = [
|
||||
(
|
||||
"equipment_kind_uniq",
|
||||
"unique (equipment_id, maintenance_kind_id)",
|
||||
"You cannot define multiple times the same maintenance kind on an "
|
||||
"equipment maintenance plan.",
|
||||
)
|
||||
]
|
||||
|
||||
def button_manual_request_generation(self):
|
||||
"""Call the same method that the cron for generating manually the maintenance
|
||||
requests."""
|
||||
for plan in self:
|
||||
equipment = plan.equipment_id
|
||||
equipment._create_new_request(plan)
|
||||
|
||||
def _get_maintenance_equipments(self):
|
||||
self.ensure_one()
|
||||
if self.generate_with_domain and not self.equipment_id:
|
||||
return self.env["maintenance.equipment"].search(
|
||||
safe_eval.safe_eval(
|
||||
self.generate_domain or "[]", self._get_eval_context()
|
||||
)
|
||||
)
|
||||
return [self.equipment_id]
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright 2017 Camptocamp SA
|
||||
# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class MaintenanceRequest(models.Model):
|
||||
|
||||
_inherit = "maintenance.request"
|
||||
|
||||
maintenance_kind_id = fields.Many2one(
|
||||
string="Maintenance kind", comodel_name="maintenance.kind", ondelete="restrict"
|
||||
)
|
||||
|
||||
maintenance_plan_id = fields.Many2one(
|
||||
string="Maintenance plan", comodel_name="maintenance.plan", ondelete="restrict"
|
||||
)
|
||||
note = fields.Html()
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
* Akim Juillerat <akim.juillerat@camptocamp.com>
|
||||
* Matteo Mazzoni <matteo@appcademy.tech>
|
||||
* David Alonso <david.alonso@solvos.es>
|
||||
* Adrià Gil Sorribes <adria.gil@forgeflow.com>
|
||||
* Jordi Ballester Alomar <jordi.ballester@forgeflow.com>
|
||||
* Lois Rilo <lois.rilo@forgeflow.com>
|
||||
* Enric Tobella <enric.tobella@dixmit.com>
|
||||
* Alexei Rivera <arivera@archeti.com>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
This module extends the functionality of Odoo Maintenance module by allowing
|
||||
an equipment to have different preventive maintenance kinds.
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
Install the module.
|
||||
|
||||
Should you already use the maintenance module and have equipments with field
|
||||
'Preventive Maintenance Frequency' defined, a new maintenance plan will be
|
||||
automatically created on these equipments with maintenance kind 'Install'.
|
||||
|
||||
Moreover if a Request of type 'preventive' exists, whose stage isn't marked as
|
||||
'Request done', and has a Request Date matching the equipment's
|
||||
'Next Preventive Maintenance', the request will be updated with the
|
||||
'Install' maintenance kind.
|
||||
|
||||
Make sure you don't have multiple 'preventive' requests at a stage which isn't
|
||||
marked as 'Request done' and on the same 'Request date' as the equipment or
|
||||
the module installation will fail with a User Error.
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
Instead of defining a period and duration for only one preventive maintenance
|
||||
per equipment, you can define multiple preventive maintenance kind for each
|
||||
equipment.
|
||||
|
||||
Maintenance Kinds have to be defined through the configuration menu. Their name
|
||||
have to be unique and can be set as active or inactive, should these not be
|
||||
used anymore.
|
||||
|
||||
On any equipment over the maintenance tab, the maintenance plan be accessible,
|
||||
allowing to add different maintenance kind with their
|
||||
own frequency and duration. The next maintenance date will then be computed
|
||||
automatically according to the start's date and the frequency defined, but the
|
||||
maintenance request won't be created automatically as is the case in Odoo's
|
||||
Maintenance module. In the plan there's also a field allowing the user to set the
|
||||
maintenance horizon, insert the instructions to follow on the maintenance that
|
||||
will be forwarded to the maintenance request generated from the plan.
|
||||
|
||||
This module uses the original Cron job of Odoo's Maintenance module to generate
|
||||
maintenance requests. To do so, it takes into account the planning horizon and
|
||||
generates all maintenance requests whose schedule date would fall inside that
|
||||
planning horizon. Therefore, the maintenance manager can have a proper planning
|
||||
of how many maintenance requests are programming for the future. Leaving planning
|
||||
horizon to 0 will only create those maintenance request that are scheduled for
|
||||
today.
|
||||
|
||||
We can also create maintenance requests from a plan using a domain for selecting the equipments.
|
||||
This way, we might have a single plan that will generate all the requests.
|
||||
In order to use it, we need to mark the `Generate with Domain` field.
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_maintenance_kind_user,access_maintenance_kind_user,model_maintenance_kind,base.group_user,1,0,0,0
|
||||
access_maintenance_plan_user,access_maintenance_plan_user,model_maintenance_plan,base.group_user,1,0,0,0
|
||||
access_maintenance_kind_manager,access_maintenance_kind_manager,model_maintenance_kind,maintenance.group_equipment_manager,1,1,1,1
|
||||
access_maintenance_plan_manager,access_maintenance_plan_manager,model_maintenance_plan,maintenance.group_equipment_manager,1,1,1,1
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo noupdate="0">
|
||||
<record id="maintenance_plan_comp_rule" model="ir.rule">
|
||||
<field name="name">Maintenance plan multi-company</field>
|
||||
<field name="model_id" ref="model_maintenance_plan" />
|
||||
<field name="global" eval="True" />
|
||||
<field
|
||||
name="domain_force"
|
||||
>['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_rule_user" model="ir.rule">
|
||||
<field
|
||||
name="name"
|
||||
>Users are allowed to access plan from equipments they follow</field>
|
||||
<field name="model_id" ref="model_maintenance_plan" />
|
||||
<field
|
||||
name="domain_force"
|
||||
>[('equipment_id.message_partner_ids', 'in', [user.partner_id.id])]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_user'))]" />
|
||||
</record>
|
||||
<record id="maintenance_plan_rule_admin_user" model="ir.rule">
|
||||
<field name="name">Administrator of maintenance plans</field>
|
||||
<field name="model_id" ref="model_maintenance_plan" />
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('maintenance.group_equipment_manager'))]" />
|
||||
</record>
|
||||
</odoo>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 9.2 KiB |
|
|
@ -0,0 +1,473 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
|
||||
<title>Maintenance Plan</title>
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger (goodger@python.org)
|
||||
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
.subscript {
|
||||
vertical-align: sub;
|
||||
font-size: smaller }
|
||||
|
||||
.superscript {
|
||||
vertical-align: super;
|
||||
font-size: smaller }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, div.attention, div.caution, div.danger, div.error,
|
||||
div.hint, div.important, div.note, div.tip, div.warning {
|
||||
margin: 2em ;
|
||||
border: medium outset ;
|
||||
padding: 1em }
|
||||
|
||||
div.admonition p.admonition-title, div.hint p.admonition-title,
|
||||
div.important p.admonition-title, div.note p.admonition-title,
|
||||
div.tip p.admonition-title {
|
||||
font-weight: bold ;
|
||||
font-family: sans-serif }
|
||||
|
||||
div.attention p.admonition-title, div.caution p.admonition-title,
|
||||
div.danger p.admonition-title, div.error p.admonition-title,
|
||||
div.warning p.admonition-title, .code .error {
|
||||
color: red ;
|
||||
font-weight: bold ;
|
||||
font-family: sans-serif }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
div.dedication {
|
||||
margin: 2em 5em ;
|
||||
text-align: center ;
|
||||
font-style: italic }
|
||||
|
||||
div.dedication p.topic-title {
|
||||
font-weight: bold ;
|
||||
font-style: normal }
|
||||
|
||||
div.figure {
|
||||
margin-left: 2em ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin: 0 0 0.5em 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
div.system-messages {
|
||||
margin: 5em }
|
||||
|
||||
div.system-messages h1 {
|
||||
color: red }
|
||||
|
||||
div.system-message {
|
||||
border: medium outset ;
|
||||
padding: 1em }
|
||||
|
||||
div.system-message p.system-message-title {
|
||||
color: red ;
|
||||
font-weight: bold }
|
||||
|
||||
div.topic {
|
||||
margin: 2em }
|
||||
|
||||
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left, .figure.align-left, object.align-left, table.align-left {
|
||||
clear: left ;
|
||||
float: left ;
|
||||
margin-right: 1em }
|
||||
|
||||
img.align-right, .figure.align-right, object.align-right, table.align-right {
|
||||
clear: right ;
|
||||
float: right ;
|
||||
margin-left: 1em }
|
||||
|
||||
img.align-center, .figure.align-center, object.align-center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
table.align-center {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left }
|
||||
|
||||
.align-center {
|
||||
clear: both ;
|
||||
text-align: center }
|
||||
|
||||
.align-right {
|
||||
text-align: right }
|
||||
|
||||
/* reset inner alignment in figures */
|
||||
div.align-right {
|
||||
text-align: inherit }
|
||||
|
||||
/* div.align-center * { */
|
||||
/* text-align: left } */
|
||||
|
||||
.align-top {
|
||||
vertical-align: top }
|
||||
|
||||
.align-middle {
|
||||
vertical-align: middle }
|
||||
|
||||
.align-bottom {
|
||||
vertical-align: bottom }
|
||||
|
||||
ol.simple, ul.simple {
|
||||
margin-bottom: 1em }
|
||||
|
||||
ol.arabic {
|
||||
list-style: decimal }
|
||||
|
||||
ol.loweralpha {
|
||||
list-style: lower-alpha }
|
||||
|
||||
ol.upperalpha {
|
||||
list-style: upper-alpha }
|
||||
|
||||
ol.lowerroman {
|
||||
list-style: lower-roman }
|
||||
|
||||
ol.upperroman {
|
||||
list-style: upper-roman }
|
||||
|
||||
p.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
p.sidebar-title {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold ;
|
||||
font-size: larger }
|
||||
|
||||
p.sidebar-subtitle {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold }
|
||||
|
||||
p.topic-title {
|
||||
font-weight: bold }
|
||||
|
||||
pre.address {
|
||||
margin-bottom: 0 ;
|
||||
margin-top: 0 ;
|
||||
font: inherit }
|
||||
|
||||
pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
||||
margin-left: 2em ;
|
||||
margin-right: 2em }
|
||||
|
||||
pre.code .ln { color: grey; } /* line numbers */
|
||||
pre.code, code { background-color: #eeeeee }
|
||||
pre.code .comment, code .comment { color: #5C6576 }
|
||||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||||
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
||||
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
||||
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
||||
pre.code .inserted, code .inserted { background-color: #A3D289}
|
||||
|
||||
span.classifier {
|
||||
font-family: sans-serif ;
|
||||
font-style: oblique }
|
||||
|
||||
span.classifier-delimiter {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold }
|
||||
|
||||
span.interpreted {
|
||||
font-family: sans-serif }
|
||||
|
||||
span.option {
|
||||
white-space: nowrap }
|
||||
|
||||
span.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
/* "booktabs" style (no vertical lines) */
|
||||
table.docutils.booktabs {
|
||||
border: 0px;
|
||||
border-top: 2px solid;
|
||||
border-bottom: 2px solid;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
table.docutils.booktabs * {
|
||||
border: 0px;
|
||||
}
|
||||
table.docutils.booktabs th {
|
||||
border-bottom: thin solid;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="document" id="maintenance-plan">
|
||||
<h1 class="title">Maintenance Plan</h1>
|
||||
|
||||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! source digest: sha256:51d1395956daf1de19f24abe40f89528841450822d90006b04a75e26f1913828
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/maintenance/tree/16.0/maintenance_plan"><img alt="OCA/maintenance" src="https://img.shields.io/badge/github-OCA%2Fmaintenance-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/maintenance-16-0/maintenance-16-0-maintenance_plan"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/maintenance&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
||||
<p>This module extends the functionality of Odoo Maintenance module by allowing
|
||||
an equipment to have different preventive maintenance kinds.</p>
|
||||
<p><strong>Table of contents</strong></p>
|
||||
<div class="contents local topic" id="contents">
|
||||
<ul class="simple">
|
||||
<li><a class="reference internal" href="#installation" id="toc-entry-1">Installation</a></li>
|
||||
<li><a class="reference internal" href="#usage" id="toc-entry-2">Usage</a></li>
|
||||
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li>
|
||||
<li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a><ul>
|
||||
<li><a class="reference internal" href="#authors" id="toc-entry-5">Authors</a></li>
|
||||
<li><a class="reference internal" href="#contributors" id="toc-entry-6">Contributors</a></li>
|
||||
<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="installation">
|
||||
<h1><a class="toc-backref" href="#toc-entry-1">Installation</a></h1>
|
||||
<p>Install the module.</p>
|
||||
<p>Should you already use the maintenance module and have equipments with field
|
||||
‘Preventive Maintenance Frequency’ defined, a new maintenance plan will be
|
||||
automatically created on these equipments with maintenance kind ‘Install’.</p>
|
||||
<p>Moreover if a Request of type ‘preventive’ exists, whose stage isn’t marked as
|
||||
‘Request done’, and has a Request Date matching the equipment’s
|
||||
‘Next Preventive Maintenance’, the request will be updated with the
|
||||
‘Install’ maintenance kind.</p>
|
||||
<p>Make sure you don’t have multiple ‘preventive’ requests at a stage which isn’t
|
||||
marked as ‘Request done’ and on the same ‘Request date’ as the equipment or
|
||||
the module installation will fail with a User Error.</p>
|
||||
</div>
|
||||
<div class="section" id="usage">
|
||||
<h1><a class="toc-backref" href="#toc-entry-2">Usage</a></h1>
|
||||
<p>Instead of defining a period and duration for only one preventive maintenance
|
||||
per equipment, you can define multiple preventive maintenance kind for each
|
||||
equipment.</p>
|
||||
<p>Maintenance Kinds have to be defined through the configuration menu. Their name
|
||||
have to be unique and can be set as active or inactive, should these not be
|
||||
used anymore.</p>
|
||||
<p>On any equipment over the maintenance tab, the maintenance plan be accessible,
|
||||
allowing to add different maintenance kind with their
|
||||
own frequency and duration. The next maintenance date will then be computed
|
||||
automatically according to the start’s date and the frequency defined, but the
|
||||
maintenance request won’t be created automatically as is the case in Odoo’s
|
||||
Maintenance module. In the plan there’s also a field allowing the user to set the
|
||||
maintenance horizon, insert the instructions to follow on the maintenance that
|
||||
will be forwarded to the maintenance request generated from the plan.</p>
|
||||
<p>This module uses the original Cron job of Odoo’s Maintenance module to generate
|
||||
maintenance requests. To do so, it takes into account the planning horizon and
|
||||
generates all maintenance requests whose schedule date would fall inside that
|
||||
planning horizon. Therefore, the maintenance manager can have a proper planning
|
||||
of how many maintenance requests are programming for the future. Leaving planning
|
||||
horizon to 0 will only create those maintenance request that are scheduled for
|
||||
today.</p>
|
||||
<p>We can also create maintenance requests from a plan using a domain for selecting the equipments.
|
||||
This way, we might have a single plan that will generate all the requests.
|
||||
In order to use it, we need to mark the <cite>Generate with Domain</cite> field.</p>
|
||||
</div>
|
||||
<div class="section" id="bug-tracker">
|
||||
<h1><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h1>
|
||||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/maintenance/issues">GitHub Issues</a>.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||||
<a class="reference external" href="https://github.com/OCA/maintenance/issues/new?body=module:%20maintenance_plan%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||||
</div>
|
||||
<div class="section" id="credits">
|
||||
<h1><a class="toc-backref" href="#toc-entry-4">Credits</a></h1>
|
||||
<div class="section" id="authors">
|
||||
<h2><a class="toc-backref" href="#toc-entry-5">Authors</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Camptocamp SA</li>
|
||||
<li>ForgeFlow</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="contributors">
|
||||
<h2><a class="toc-backref" href="#toc-entry-6">Contributors</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Akim Juillerat <<a class="reference external" href="mailto:akim.juillerat@camptocamp.com">akim.juillerat@camptocamp.com</a>></li>
|
||||
<li>Matteo Mazzoni <<a class="reference external" href="mailto:matteo@appcademy.tech">matteo@appcademy.tech</a>></li>
|
||||
<li>David Alonso <<a class="reference external" href="mailto:david.alonso@solvos.es">david.alonso@solvos.es</a>></li>
|
||||
<li>Adrià Gil Sorribes <<a class="reference external" href="mailto:adria.gil@forgeflow.com">adria.gil@forgeflow.com</a>></li>
|
||||
<li>Jordi Ballester Alomar <<a class="reference external" href="mailto:jordi.ballester@forgeflow.com">jordi.ballester@forgeflow.com</a>></li>
|
||||
<li>Lois Rilo <<a class="reference external" href="mailto:lois.rilo@forgeflow.com">lois.rilo@forgeflow.com</a>></li>
|
||||
<li>Enric Tobella <<a class="reference external" href="mailto:enric.tobella@dixmit.com">enric.tobella@dixmit.com</a>></li>
|
||||
<li>Alexei Rivera <<a class="reference external" href="mailto:arivera@archeti.com">arivera@archeti.com</a>></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="maintainers">
|
||||
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
|
||||
<p>This module is maintained by the OCA.</p>
|
||||
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
|
||||
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||
mission is to support the collaborative development of Odoo features and
|
||||
promote its widespread use.</p>
|
||||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/maintenance/tree/16.0/maintenance_plan">OCA/maintenance</a> project on GitHub.</p>
|
||||
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
from . import test_maintenance_plan
|
||||
from . import test_maintenance_plan_domain
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
# Copyright 2017 Camptocamp SA
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
from freezegun import freeze_time
|
||||
|
||||
import odoo.tests.common as test_common
|
||||
|
||||
|
||||
class TestMaintenancePlanBase(test_common.TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
# HACK https://github.com/spulec/freezegun/issues/485
|
||||
freezer = freeze_time("2023-01-25 15:30:00")
|
||||
freezer.__enter__()
|
||||
cls.addClassCleanup(freezer.__exit__)
|
||||
# Remove this variable in v16 and put instead:
|
||||
# from odoo.addons.base.tests.common import DISABLED_MAIL_CONTEXT
|
||||
DISABLED_MAIL_CONTEXT = {
|
||||
"tracking_disable": True,
|
||||
"mail_create_nolog": True,
|
||||
"mail_create_nosubscribe": True,
|
||||
"mail_notrack": True,
|
||||
"no_reset_password": True,
|
||||
}
|
||||
cls.env = cls.env(context=dict(cls.env.context, **DISABLED_MAIL_CONTEXT))
|
||||
cls.maintenance_request_obj = cls.env["maintenance.request"]
|
||||
cls.maintenance_plan_obj = cls.env["maintenance.plan"]
|
||||
cls.maintenance_equipment_obj = cls.env["maintenance.equipment"]
|
||||
cls.cron = cls.env.ref("maintenance.maintenance_requests_cron")
|
||||
cls.weekly_kind = cls.env.ref("maintenance_plan.maintenance_kind_weekly")
|
||||
cls.done_stage = cls.env.ref("maintenance.stage_3")
|
||||
|
||||
cls.equipment_1 = cls.maintenance_equipment_obj.create({"name": "Laptop 1"})
|
||||
cls.maintenance_plan_1 = cls.maintenance_plan_obj.create(
|
||||
{
|
||||
"equipment_id": cls.equipment_1.id,
|
||||
"start_maintenance_date": "2023-01-25",
|
||||
"interval": 1,
|
||||
"interval_step": "month",
|
||||
"maintenance_plan_horizon": 2,
|
||||
"planning_step": "month",
|
||||
}
|
||||
)
|
||||
cls.maintenance_plan_2 = cls.maintenance_plan_obj.create(
|
||||
{
|
||||
"equipment_id": cls.equipment_1.id,
|
||||
"maintenance_kind_id": cls.weekly_kind.id,
|
||||
"interval": 1,
|
||||
"interval_step": "week",
|
||||
"maintenance_plan_horizon": 2,
|
||||
"planning_step": "month",
|
||||
}
|
||||
)
|
||||
cls.maintenance_plan_3 = cls.maintenance_plan_obj.create(
|
||||
{
|
||||
"name": "My custom plan",
|
||||
"equipment_id": cls.equipment_1.id,
|
||||
"interval": 2,
|
||||
"interval_step": "week",
|
||||
"maintenance_plan_horizon": 2,
|
||||
"planning_step": "month",
|
||||
}
|
||||
)
|
||||
cls.maintenance_plan_4 = cls.maintenance_plan_obj.create(
|
||||
{
|
||||
"name": "Plan without equipment",
|
||||
"maintenance_kind_id": cls.weekly_kind.id,
|
||||
"interval": 1,
|
||||
"interval_step": "week",
|
||||
"maintenance_plan_horizon": 2,
|
||||
"planning_step": "month",
|
||||
}
|
||||
)
|
||||
cls.maintenance_plan_5 = cls.maintenance_plan_obj.create(
|
||||
{
|
||||
"start_maintenance_date": "2023-01-25",
|
||||
"interval": 1,
|
||||
"interval_step": "month",
|
||||
"maintenance_plan_horizon": 2,
|
||||
"planning_step": "month",
|
||||
}
|
||||
)
|
||||
cls.report_obj = cls.env["ir.actions.report"]
|
||||
|
|
@ -0,0 +1,231 @@
|
|||
# Copyright 2017 Camptocamp SA
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo import _, fields
|
||||
|
||||
from .common import TestMaintenancePlanBase
|
||||
|
||||
|
||||
class TestMaintenancePlan(TestMaintenancePlanBase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.today_date = fields.Date.from_string("2023-01-25")
|
||||
|
||||
def test_name_get(self):
|
||||
self.assertEqual(
|
||||
self.maintenance_plan_1.name_get()[0][1],
|
||||
_(
|
||||
"Unnamed %(void)s plan (%(eqpmnt)s)",
|
||||
void="",
|
||||
eqpmnt=self.maintenance_plan_1.equipment_id.name,
|
||||
),
|
||||
)
|
||||
self.assertEqual(
|
||||
self.maintenance_plan_2.name_get()[0][1],
|
||||
_(
|
||||
"Unnamed %(kind)s plan (%(eqpmnt)s)",
|
||||
kind=self.maintenance_plan_2.maintenance_kind_id.name,
|
||||
eqpmnt=self.maintenance_plan_2.equipment_id.name,
|
||||
),
|
||||
)
|
||||
self.assertEqual(
|
||||
self.maintenance_plan_3.name_get()[0][1], self.maintenance_plan_3.name
|
||||
)
|
||||
|
||||
def test_next_maintenance_date_01(self):
|
||||
# We set start maintenance date tomorrow and check next maintenance
|
||||
# date has been correctly computed
|
||||
self.maintenance_plan_1.start_maintenance_date = "2023-01-24"
|
||||
# Check next maintenance date is 1 month from start date
|
||||
self.assertEqual(
|
||||
self.maintenance_plan_1.next_maintenance_date,
|
||||
fields.Date.from_string("2023-02-24"),
|
||||
)
|
||||
|
||||
def test_next_maintenance_date_02(self):
|
||||
self.cron.method_direct_trigger()
|
||||
# Check maintenance plan dates
|
||||
self.assertEqual(
|
||||
self.maintenance_plan_1.start_maintenance_date, self.today_date
|
||||
)
|
||||
self.assertEqual(self.maintenance_plan_1.next_maintenance_date, self.today_date)
|
||||
# Check information from generated_requests
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_1.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
self.assertEqual(len(generated_requests), 3)
|
||||
maintenance_1 = generated_requests[0]
|
||||
# First maintenance was planned 2023-01-25
|
||||
self.assertEqual(maintenance_1.request_date, self.today_date)
|
||||
# Complete request:
|
||||
maintenance_1.stage_id = self.done_stage
|
||||
# Check next one:
|
||||
maintenance_2 = generated_requests[1]
|
||||
# This should be expected 2023-02-25
|
||||
self.assertEqual(
|
||||
maintenance_2.request_date, fields.Date.from_string("2023-02-25")
|
||||
)
|
||||
# Complete request and Check next one:
|
||||
maintenance_2.stage_id = self.done_stage
|
||||
maintenance_3 = generated_requests[2]
|
||||
# This one should be expected 2023-03-25
|
||||
self.assertEqual(
|
||||
maintenance_3.request_date, fields.Date.from_string("2023-03-25")
|
||||
)
|
||||
# Move it to a date before `start_maintenance_date` (the request should
|
||||
# be ignored)
|
||||
past_date = fields.Date.from_string("2022-12-25")
|
||||
maintenance_3.request_date = past_date
|
||||
self.assertNotEqual(self.maintenance_plan_1.next_maintenance_date, past_date)
|
||||
self.assertEqual(
|
||||
self.maintenance_plan_1.next_maintenance_date,
|
||||
fields.Date.from_string("2023-03-25"),
|
||||
)
|
||||
# Move the request_date far into the future:
|
||||
future_date = fields.Date.from_string("2023-05-25")
|
||||
maintenance_3.request_date = future_date
|
||||
self.assertEqual(self.maintenance_plan_1.next_maintenance_date, future_date)
|
||||
# Complete request in that date, next expected date should be 1 month
|
||||
# after latest request done.:
|
||||
maintenance_3.stage_id = self.done_stage
|
||||
self.assertEqual(
|
||||
self.maintenance_plan_1.next_maintenance_date,
|
||||
fields.Date.from_string("2023-06-25"),
|
||||
)
|
||||
|
||||
def test_generate_requests(self):
|
||||
self.cron.method_direct_trigger()
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_1.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
self.assertEqual(len(generated_requests), 3)
|
||||
self.assertEqual(
|
||||
fields.Date.to_date(generated_requests[0].schedule_date), self.today_date
|
||||
)
|
||||
self.assertEqual(
|
||||
fields.Date.to_date(generated_requests[1].schedule_date),
|
||||
fields.Date.from_string("2023-02-25"),
|
||||
)
|
||||
self.assertEqual(
|
||||
fields.Date.to_date(generated_requests[2].schedule_date),
|
||||
fields.Date.from_string("2023-03-25"),
|
||||
)
|
||||
generated_request = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_4.id)], limit=1
|
||||
)
|
||||
self.assertEqual(
|
||||
generated_request.name,
|
||||
_(
|
||||
"Preventive Maintenance (%(kind)s) - %(plan)s",
|
||||
kind=self.weekly_kind.name,
|
||||
plan=self.maintenance_plan_4.name,
|
||||
),
|
||||
)
|
||||
|
||||
def test_generate_requests2(self):
|
||||
self.cron.method_direct_trigger()
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_1.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
|
||||
self.assertEqual(len(generated_requests), 3)
|
||||
# We set plan start_maintenanca_date to a future one. New requests should take
|
||||
# into account this new date.
|
||||
new_date = fields.Date.from_string("2023-04-25")
|
||||
self.maintenance_plan_1.next_maintenance_date = new_date
|
||||
self.maintenance_plan_1.maintenance_plan_horizon = 3
|
||||
self.cron.method_direct_trigger()
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_1.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
self.assertEqual(len(generated_requests), 4)
|
||||
self.assertEqual(generated_requests[-1].request_date, new_date)
|
||||
|
||||
def test_generate_requests_no_equipment(self):
|
||||
self.cron.method_direct_trigger()
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_5.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
|
||||
self.assertEqual(len(generated_requests), 3)
|
||||
|
||||
# We set plan start_maintenanca_date to a future one. New requests should take
|
||||
# into account this new date.
|
||||
|
||||
self.maintenance_plan_5.write(
|
||||
{
|
||||
"start_maintenance_date": fields.Date.to_string(
|
||||
self.today_date + relativedelta(weeks=9)
|
||||
),
|
||||
"maintenance_plan_horizon": 3,
|
||||
}
|
||||
)
|
||||
|
||||
self.cron.method_direct_trigger()
|
||||
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_5.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
|
||||
self.assertEqual(len(generated_requests), 4)
|
||||
self.assertEqual(
|
||||
generated_requests[-1].request_date,
|
||||
self.today_date + relativedelta(weeks=9),
|
||||
)
|
||||
self.assertFalse(generated_requests.mapped("equipment_id"))
|
||||
|
||||
def test_get_relativedelta(self):
|
||||
plan = self.maintenance_plan_1
|
||||
result = plan.get_relativedelta(1, "day")
|
||||
self.assertEqual(relativedelta(days=1), result)
|
||||
result = plan.get_relativedelta(1, "week")
|
||||
self.assertEqual(relativedelta(weeks=1), result)
|
||||
result = plan.get_relativedelta(1, "month")
|
||||
self.assertEqual(relativedelta(months=1), result)
|
||||
result = plan.get_relativedelta(1, "year")
|
||||
self.assertEqual(relativedelta(years=1), result)
|
||||
|
||||
def test_generate_requests_inactive_equipment(self):
|
||||
self.equipment_1.active = False
|
||||
self.cron.method_direct_trigger()
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_1.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
self.assertEqual(len(generated_requests), 0)
|
||||
self.equipment_1.active = True
|
||||
self.cron.method_direct_trigger()
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_1.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
self.assertEqual(len(generated_requests), 3)
|
||||
|
||||
def test_maintenance_request_report(self):
|
||||
self.cron.method_direct_trigger()
|
||||
generated_request = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_1.id)],
|
||||
order="schedule_date asc",
|
||||
limit=1,
|
||||
)
|
||||
generated_request.note = "TEST-INSTRUCTIONS"
|
||||
res = self.report_obj._render_qweb_text(
|
||||
"base_maintenance.report_maintenance_request",
|
||||
generated_request.ids,
|
||||
False,
|
||||
)
|
||||
self.assertRegex(str(res[0]), "TEST-INSTRUCTIONS")
|
||||
|
||||
def test_maintenance_plan_button_manual_request_generation(self):
|
||||
self.assertEqual(len(self.maintenance_plan_1.maintenance_ids), 0)
|
||||
self.maintenance_plan_1.button_manual_request_generation()
|
||||
self.assertEqual(len(self.maintenance_plan_1.maintenance_ids), 3)
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
# Copyright 2023 Dixmit
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
import json
|
||||
|
||||
from odoo.addons.maintenance_plan.tests.common import TestMaintenancePlanBase
|
||||
|
||||
|
||||
class TestMaintenancePlanDomain(TestMaintenancePlanBase):
|
||||
def test_generate_requests_no_domain(self):
|
||||
self.cron.method_direct_trigger()
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_5.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
|
||||
self.assertEqual(len(generated_requests), 3)
|
||||
self.assertFalse(generated_requests.mapped("equipment_id"))
|
||||
|
||||
def test_generate_requests_domain(self):
|
||||
equipment_2 = self.maintenance_equipment_obj.create({"name": "Laptop 2"})
|
||||
self.maintenance_plan_5.write(
|
||||
{
|
||||
"generate_with_domain": True,
|
||||
"generate_domain": json.dumps(
|
||||
[("id", "in", [equipment_2.id, self.equipment_1.id])]
|
||||
),
|
||||
}
|
||||
)
|
||||
self.cron.method_direct_trigger()
|
||||
generated_requests = self.maintenance_request_obj.search(
|
||||
[("maintenance_plan_id", "=", self.maintenance_plan_5.id)],
|
||||
order="schedule_date asc",
|
||||
)
|
||||
|
||||
self.assertEqual(len(generated_requests), 6)
|
||||
self.assertIn(equipment_2, generated_requests.mapped("equipment_id"))
|
||||
self.assertIn(self.equipment_1, generated_requests.mapped("equipment_id"))
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- equipment : views inheritance -->
|
||||
<record id="hr_equipment_view_form" model="ir.ui.view">
|
||||
<field name="name">equipment.form.inherit</field>
|
||||
<field name="inherit_id" ref="maintenance.hr_equipment_view_form" />
|
||||
<field name="model">maintenance.equipment</field>
|
||||
<field name="arch" type="xml">
|
||||
<div name="button_box" position="inside">
|
||||
<button
|
||||
name="%(maintenance_plan_equipment_action)d"
|
||||
type="action"
|
||||
class="oe_stat_button"
|
||||
icon="fa-list"
|
||||
>
|
||||
<field
|
||||
string="Plans"
|
||||
name="search_maintenance_plan_count"
|
||||
widget="statinfo"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<xpath expr="//group[@name='maintenance']" position="attributes">
|
||||
<attribute name="attrs">{'invisible': 1}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//group[@name='maintenance']/.." position="after">
|
||||
<field
|
||||
name="maintenance_plan_ids"
|
||||
nolabel="1"
|
||||
context="{'default_equipment_id': active_id, 'hide_equipment_id': 1}"
|
||||
>
|
||||
<tree>
|
||||
<field name="maintenance_kind_id" string="Kind" />
|
||||
<field name="maintenance_team_id" string="Team" />
|
||||
<field name="name" />
|
||||
<field name="start_maintenance_date" string="Start Date" />
|
||||
<field name="interval" />
|
||||
<field name="interval_step" />
|
||||
<field name="duration" />
|
||||
<field name="next_maintenance_date" />
|
||||
<field
|
||||
name="maintenance_plan_horizon"
|
||||
string="P. Horizon period"
|
||||
/>
|
||||
<field name="planning_step" string="P. Horizon step" />
|
||||
</tree>
|
||||
</field>
|
||||
</xpath>
|
||||
<field name="maintenance_team_id" position="after">
|
||||
<field name="maintenance_team_required" attrs="{'invisible': 1}" />
|
||||
</field>
|
||||
<field name="maintenance_team_id" position="attributes">
|
||||
<attribute
|
||||
name="attrs"
|
||||
>{'required': [('maintenance_team_required', '=', True)]}</attribute>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
<record id="hr_equipment_view_search" model="ir.ui.view">
|
||||
<field name="name">equipment.search-oxigen</field>
|
||||
<field name="model">maintenance.equipment</field>
|
||||
<field name="inherit_id" ref="maintenance.hr_equipment_view_search" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='owner_user_id']" position="after">
|
||||
<field name="maintenance_team_id" />
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<!-- request : views inheritance -->
|
||||
<record id="hr_equipment_request_view_form" model="ir.ui.view">
|
||||
<field name="name">equipment.request.form.inherit</field>
|
||||
<field name="model">maintenance.request</field>
|
||||
<field name="priority" eval="999" />
|
||||
<field name="inherit_id" ref="base_maintenance.equipment_request_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="maintenance_type" position="after">
|
||||
<field name="maintenance_kind_id" />
|
||||
</field>
|
||||
<!-- TODO: Use position="move" instead -->
|
||||
<xpath expr="//notebook/page[@name='description_page']" position="before">
|
||||
<page string="Instructions">
|
||||
<field
|
||||
name="note"
|
||||
placeholder="Describe the maintenance to do..."
|
||||
/>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath
|
||||
expr="//notebook/page[@name='description_page']"
|
||||
position="attributes"
|
||||
>
|
||||
<attribute name="string">Notes</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="maintenance.hr_equipment_action" model="ir.actions.act_window">
|
||||
<field name="context">{'hide_equipment_id': 1}</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_equipment_request_view_tree" model="ir.ui.view">
|
||||
<field name="name">equipment.request.tree</field>
|
||||
<field name="model">maintenance.request</field>
|
||||
<field name="inherit_id" ref="maintenance.hr_equipment_request_view_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="field[@name='request_date']" position="attributes">
|
||||
<attribute name="groups" />
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<record id="maintenance_kind_view_tree" model="ir.ui.view">
|
||||
<field name="name">maintenance.kind.tree</field>
|
||||
<field name="model">maintenance.kind</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="top">
|
||||
<field name="name" />
|
||||
<field name="active" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="maintenance_kind_action" model="ir.actions.act_window">
|
||||
<field name="name">Maintenance kinds</field>
|
||||
<field name="res_model">maintenance.kind</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="maintenance_kind_view_tree" />
|
||||
</record>
|
||||
<menuitem
|
||||
id="menu_maintenance_kind_configuration"
|
||||
name="Maintenance kinds"
|
||||
parent="maintenance.menu_maintenance_configuration"
|
||||
action="maintenance_kind_action"
|
||||
sequence="4"
|
||||
/>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,204 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<record id="hr_equipment_request_action_from_plan" model="ir.actions.act_window">
|
||||
<field name="name">Maintenance Requests</field>
|
||||
<field name="res_model">maintenance.request</field>
|
||||
<field name="binding_model_id" ref="model_maintenance_plan" />
|
||||
<field name="view_mode">kanban,tree,form,pivot,graph,calendar</field>
|
||||
<field name="context">{
|
||||
'default_maintenance_plan_id': active_id,
|
||||
}</field>
|
||||
<field name="domain">[('maintenance_plan_id', '=', active_id)]</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_view_form" model="ir.ui.view">
|
||||
<field name="name">maintenance.plan.form</field>
|
||||
<field name="model">maintenance.plan</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Maintenance Plan">
|
||||
<header>
|
||||
<button
|
||||
name="button_manual_request_generation"
|
||||
string="Generate requests for current threshold"
|
||||
help="If not clicked, the scheduled action will do it for you."
|
||||
type="object"
|
||||
attrs="{'invisible' : ['|', ('id', '=', False),('interval', '=', 0)]}"
|
||||
/>
|
||||
</header>
|
||||
<sheet>
|
||||
<widget
|
||||
name="web_ribbon"
|
||||
title="Archived"
|
||||
bg_color="bg-danger"
|
||||
attrs="{'invisible': [('active', '=', True)]}"
|
||||
/>
|
||||
<field name="active" attrs="{'invisible': 1}" />
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button
|
||||
name="%(hr_equipment_request_action_from_plan)d"
|
||||
type="action"
|
||||
class="oe_stat_button"
|
||||
icon="fa-ticket"
|
||||
>
|
||||
<field
|
||||
string="Maintenance"
|
||||
name="maintenance_count"
|
||||
widget="statinfo"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" />
|
||||
<h1>
|
||||
<field
|
||||
name="name"
|
||||
placeholder="e.g. Calibration"
|
||||
attrs="{'required': [('equipment_id', '=', False)]}"
|
||||
/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field
|
||||
name="equipment_id"
|
||||
invisible="context.get('hide_equipment_id', 0)"
|
||||
/>
|
||||
<field name="maintenance_kind_id" />
|
||||
<field
|
||||
name="maintenance_team_id"
|
||||
attrs="{'required': [('equipment_id', '=', False)]}"
|
||||
/>
|
||||
<field
|
||||
name="generate_with_domain"
|
||||
attrs="{'invisible': [('equipment_id', '!=', False)]}"
|
||||
/>
|
||||
<field
|
||||
name="generate_domain"
|
||||
widget="domain"
|
||||
options="{'model': 'maintenance.equipment', 'in_dialog': True}"
|
||||
attrs="{'invisible': ['|', ('equipment_id', '!=', False), ('generate_with_domain', '=', False)]}"
|
||||
/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="skip_notify_follower_on_requests" />
|
||||
<field
|
||||
name="company_id"
|
||||
groups="base.group_multi_company"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="start_maintenance_date" />
|
||||
<field name="next_maintenance_date" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="duration" />
|
||||
<label for="interval" />
|
||||
<div class="o_row">
|
||||
<field name="interval" />
|
||||
<field name="interval_step" />
|
||||
</div>
|
||||
<label
|
||||
for="maintenance_plan_horizon"
|
||||
string="Planning Horizon"
|
||||
/>
|
||||
<div class="o_row">
|
||||
<field name="maintenance_plan_horizon" />
|
||||
<field name="planning_step" />
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Instructions">
|
||||
<field
|
||||
name="note"
|
||||
placeholder="Describe the maintenance to do..."
|
||||
/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="o_attachment_preview" />
|
||||
<!-- Chatter -->
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" groups="base.group_user" />
|
||||
<field name="activity_ids" />
|
||||
<field name="message_ids" />
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_view_tree" model="ir.ui.view">
|
||||
<field name="name">maintenance.plan.tree</field>
|
||||
<field name="model">maintenance.plan</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree decoration-muted="active == False">
|
||||
<field name="equipment_id" />
|
||||
<field name="maintenance_kind_id" />
|
||||
<field name="maintenance_team_id" />
|
||||
<field name="name" />
|
||||
<field name="start_maintenance_date" />
|
||||
<field name="interval" />
|
||||
<field name="interval_step" />
|
||||
<field name="duration" />
|
||||
<field name="next_maintenance_date" />
|
||||
<field name="maintenance_plan_horizon" />
|
||||
<field name="planning_step" />
|
||||
<field name="active" invisible="1" />
|
||||
<field name="company_id" groups="base.group_multi_company" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_view_search" model="ir.ui.view">
|
||||
<field name="name">maintenance.plan.search</field>
|
||||
<field name="model">maintenance.plan</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Maintenance Plans">
|
||||
<field name="equipment_id" />
|
||||
<field name="maintenance_kind_id" />
|
||||
<field name="maintenance_team_id" />
|
||||
<field name="name" />
|
||||
<field name="company_id" groups="base.group_multi_company" />
|
||||
<field name="start_maintenance_date" />
|
||||
<filter string="Active" name="active" domain="[('active', '=',True)]" />
|
||||
<filter
|
||||
string="Inactive"
|
||||
name="archived"
|
||||
domain="[('active', '=',False)]"
|
||||
/>
|
||||
<filter
|
||||
string="Under Maintenance"
|
||||
name="under_maintenance"
|
||||
domain="[('maintenance_open_count', '>', 0)]"
|
||||
/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_action" model="ir.actions.act_window">
|
||||
<field name="name">Maintenance plans</field>
|
||||
<field name="res_model">maintenance.plan</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="maintenance_plan_view_tree" />
|
||||
<field name="domain">['|', ('active', '=', True), ('active', '=',
|
||||
False)]
|
||||
</field>
|
||||
</record>
|
||||
<record id="maintenance_plan_equipment_action" model="ir.actions.act_window">
|
||||
<field name="name">Maintenance plans</field>
|
||||
<field name="res_model">maintenance.plan</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="maintenance_plan_view_tree" />
|
||||
<field name="context">{
|
||||
'default_equipment_id': active_id, 'hide_equipment_id': 0
|
||||
}</field>
|
||||
<field name="domain">['|', ('active', '=', True), ('active', '=',
|
||||
False), ('search_equipment_id', '=', active_id)]
|
||||
</field>
|
||||
</record>
|
||||
<menuitem
|
||||
id="menu_m_plan_form"
|
||||
name="Maintenance Plans"
|
||||
parent="maintenance.menu_m_request"
|
||||
action="maintenance_plan_action"
|
||||
groups="maintenance.group_equipment_manager,base.group_user"
|
||||
/>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<template
|
||||
id="report_maintenance_request_document"
|
||||
inherit_id="base_maintenance.report_maintenance_request_document"
|
||||
>
|
||||
<xpath expr="//div[@id='description']" position="after">
|
||||
<div class="row mt32 mb32" id="note">
|
||||
<div t-if="doc.note" class="col-auto mw-100 mb-2">
|
||||
<strong>Instructions:</strong>
|
||||
<div class="m-0" t-field="doc.note" />
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
[project]
|
||||
name = "odoo-bringout-oca-maintenance-maintenance_plan"
|
||||
version = "16.0.0"
|
||||
description = "Maintenance Plan - Extends preventive maintenance planning"
|
||||
authors = [
|
||||
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
|
||||
]
|
||||
dependencies = [
|
||||
"odoo-bringout-oca-maintenance-base_maintenance>=16.0.0",
|
||||
"requests>=2.25.1"
|
||||
]
|
||||
readme = "README.md"
|
||||
requires-python = ">= 3.11"
|
||||
classifiers = [
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Topic :: Office/Business",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
homepage = "https://github.com/bringout/0"
|
||||
repository = "https://github.com/bringout/0"
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.metadata]
|
||||
allow-direct-references = true
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["maintenance_plan"]
|
||||
|
||||
[tool.rye]
|
||||
managed = true
|
||||
dev-dependencies = [
|
||||
"pytest>=8.4.1",
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue