Initial commit: Odoo 18.0-20251222 extra-addons
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled

This commit is contained in:
tocmo0nlord
2026-03-13 20:43:25 +00:00
parent 36e847a7df
commit adbe430761
9472 changed files with 1265727 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association
===========================
Maintenance Equipment Usage
===========================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:fb59eb35211a56c4edea67cc3ce2430fee9f06f3daf363e4a664b3d474940c8b
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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/license-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/18.0/maintenance_equipment_usage
:alt: OCA/maintenance
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/maintenance-18-0/maintenance-18-0-maintenance_equipment_usage
: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=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module allows to record usages of maintenante equipments by
employees, with their dates, states and comments.
**Table of contents**
.. contents::
:local:
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_equipment_usage%0Aversion:%2018.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
-------
* César Fernández
* Tecnativa
Contributors
------------
- César Fernández Domínguez
- `Tecnativa <https://www.tecnativa.com>`__:
- Víctor Martínez
- Pedro M. Baeza
- `Heliconia Solutions Pvt. Ltd. <https://www.heliconia.io>`__
- Bhavesh Heliconia
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.
.. |maintainer-victoralmau| image:: https://github.com/victoralmau.png?size=40px
:target: https://github.com/victoralmau
:alt: victoralmau
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-victoralmau|
This module is part of the `OCA/maintenance <https://github.com/OCA/maintenance/tree/18.0/maintenance_equipment_usage>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -0,0 +1 @@
from . import models

View File

@@ -0,0 +1,21 @@
# Copyright 2021 César Fernández Domínguez
# Copyright 2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Maintenance Equipment Usage",
"version": "18.0.1.0.0",
"category": "Maintenance",
"website": "https://github.com/OCA/maintenance",
"author": "César Fernández, Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": ["maintenance"],
"installable": True,
"data": [
"security/ir.model.access.csv",
"security/security.xml",
"data/ir_sequence_data.xml",
"views/maintenance_equipment_usage_views.xml",
"views/maintenance_equipment_view.xml",
],
"maintainers": ["victoralmau"],
}

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="sequence_maintenance_equipment_usage" model="ir.sequence">
<field name="name">Maintenance Equipment Usage</field>
<field name="code">maintenance.equipment.usage</field>
<field name="prefix">EU/</field>
<field name="padding">5</field>
<field name="number_next">1</field>
<field name="number_increment">1</field>
<field name="company_id" eval="False" />
</record>
</odoo>

View File

@@ -0,0 +1,415 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_usage
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-27 10:56+0000\n"
"PO-Revision-Date: 2025-01-10 10:06+0000\n"
"Last-Translator: Víctor Martínez <victor.martinez@tecnativa.com>\n"
"Language-Team: \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 5.6.2\n"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.hr_equipment_view_form
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.hr_equipment_view_kanban
msgid ""
"<span groups=\"maintenance.group_equipment_manager\" class=\"label label-"
"primary\" invisible=\"not in_use\">In use</span>"
msgstr ""
"<span groups=\"maintenance.group_equipment_manager\" class=\"label label-"
"primary\" invisible=\"not in_use\">En uso</span>"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction
msgid "Action Needed"
msgstr "Acción Necesaria"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_ids
msgid "Activities"
msgstr "Actividades"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr "Actividad Excepción Decoración"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_state
msgid "Activity State"
msgstr "Estado de Actividad"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_type_icon
msgid "Activity Type Icon"
msgstr "Icono de tipo de actividad"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_attachment_count
msgid "Attachment Count"
msgstr "Total adjuntos"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Cancel"
msgstr "Cancelar"
#. module: maintenance_equipment_usage
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__cancel
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Cancelled"
msgstr "Cancelado"
#. module: maintenance_equipment_usage
#: model_terms:ir.actions.act_window,help:maintenance_equipment_usage.maintenance_equipment_usage_action
#: model_terms:ir.actions.act_window,help:maintenance_equipment_usage.maintenance_equipment_usage_action_from_equipment
msgid "Click to create an Equipment Usage."
msgstr "Haga clic para crear un uso del equipo."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__company_id
msgid "Company"
msgstr "Compañía"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__create_date
msgid "Created on"
msgstr "Creado el"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__display_name
msgid "Display Name"
msgstr "Nombre mostrado"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Driver"
msgstr "Conductor"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__equipment_id
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Equipment"
msgstr "Equipo"
#. module: maintenance_equipment_usage
#: model:ir.actions.act_window,name:maintenance_equipment_usage.maintenance_equipment_usage_action
#: model:ir.actions.act_window,name:maintenance_equipment_usage.maintenance_equipment_usage_action_from_equipment
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__name
msgid "Equipment Usage"
msgstr "Uso del equipo"
#. module: maintenance_equipment_usage
#: model:ir.ui.menu,name:maintenance_equipment_usage.submenu_equipment_form
msgid "Equipments"
msgstr "Equipos"
#. module: maintenance_equipment_usage
#. odoo-python
#: code:addons/maintenance_equipment_usage/models/maintenance_equipment_usage.py:0
#, python-format
msgid "Every equipment can only be picked once at the same time!"
msgstr "¡Cada equipo solo se puede recoger una vez al mismo tiempo!"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_follower_ids
msgid "Followers"
msgstr "Seguidores"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_partner_ids
msgid "Followers (Partners)"
msgstr "Seguidores (Socios)"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr "Icono de Font Awesome ej. fa-tasks"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Group By..."
msgstr "Agrupar por..."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__has_message
msgid "Has Message"
msgstr "Tiene mensaje"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__id
msgid "ID"
msgstr "ID"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_icon
msgid "Icon"
msgstr "Icono"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr "Icono para indicar una actividad de excepción."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction
msgid "If checked, new messages require your attention."
msgstr "Si está marcado, los nuevos mensajes requieren su atención."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error
msgid "If checked, some messages have a delivery error."
msgstr "Si está marcado, algunos mensajes tienen un error de entrega."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment__in_use
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__in_use
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "In Use"
msgstr "En uso"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_is_follower
msgid "Is Follower"
msgstr "Es Seguidor"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__write_uid
msgid "Last Updated by"
msgstr "Modificado por"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__write_date
msgid "Last Updated on"
msgstr "Última modificación el"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__partner_id
msgid "Location"
msgstr "Ubicación"
#. module: maintenance_equipment_usage
#: model:ir.model,name:maintenance_equipment_usage.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr "Equipo de mantenimiento"
#. module: maintenance_equipment_usage
#: model:ir.model,name:maintenance_equipment_usage.model_maintenance_equipment_usage
msgid "Maintenance Equipment Usage"
msgstr "Uso de equipo de mantenimiento"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error
msgid "Message Delivery error"
msgstr "Mensaje de Entrega de error"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_ids
msgid "Messages"
msgstr "Mensajes"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr "Mi fecha de límite de actividad"
#. module: maintenance_equipment_usage
#. odoo-python
#: code:addons/maintenance_equipment_usage/models/maintenance_equipment_usage.py:0
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__draft
#, python-format
msgid "New"
msgstr "Nuevo"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_date_deadline
msgid "Next Activity Deadline"
msgstr "Fecha Límite de Actividad Siguiente"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_summary
msgid "Next Activity Summary"
msgstr "Resumen de actividad siguiente"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_type_id
msgid "Next Activity Type"
msgstr "Siguiente tipo de actividad"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Not Returned"
msgstr "No devuelto"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__notes
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Notes"
msgstr "Notas"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction_counter
msgid "Number of Actions"
msgstr "Numero de Acciones"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error_counter
msgid "Number of errors"
msgstr "Número de errores"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction_counter
msgid "Number of messages requiring action"
msgstr "Número de mensajes que requieren una acción"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr "Número de mensajes con error de entrega"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Pick"
msgstr "Recoger"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__picking_user_id
msgid "Picked up by"
msgstr "Recogido por"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__date_picking
msgid "Picking Date"
msgstr "Fecha de recogida"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Picking Date by Month"
msgstr "Fecha de recogida por mes"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Picking Month"
msgstr "Mes de recogida"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__rating_ids
msgid "Ratings"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__reserved
msgid "Reserved"
msgstr "Reservado"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_user_id
msgid "Responsible User"
msgstr "Usuario Responsable"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Return"
msgstr "Devolver"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__date_return
msgid "Return Date"
msgstr "Fecha de devolución"
#. module: maintenance_equipment_usage
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__returned
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Returned"
msgstr "Devuelto"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__return_user_id
msgid "Returned by"
msgstr "Devuelto por"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__state
msgid "State"
msgstr "Estado"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Status"
msgstr "Estado"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__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"
"Atrasado: La fecha de vencimiento ya ha pasado\n"
"Hoy: La fecha de la actividad es hoy\n"
"Planeado: Actividades futuras."
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "To Pick"
msgstr "Para recoger"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr "Tipo de actividad de excepción registrada."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment__usage_count
msgid "Usage Count"
msgstr "Nº usos"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment__usage_ids
#: model:ir.ui.menu,name:maintenance_equipment_usage.menu_maintenance_equipment_usage_action
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.hr_equipment_view_form
msgid "Usages"
msgstr "Usos"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__user_id
msgid "User"
msgstr "Usuario"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__website_message_ids
msgid "Website Messages"
msgstr "Mensajes del Sitio Web"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__website_message_ids
msgid "Website communication history"
msgstr "Historial de la comunicación en el sitio web"
#~ msgid ""
#~ "<span groups=\"maintenance.group_equipment_manager\" class=\"label label-"
#~ "primary\" attrs=\"{'invisible': [('in_use', '=', False)]}\">In use</span>"
#~ msgstr ""
#~ "<span groups=\"maintenance.group_equipment_manager\" class=\"label label-"
#~ "primary\" attrs=\"{'invisible': [('in_use', '=', False)]}\">En uso</span>"
#~ msgid "Last Modified on"
#~ msgstr "Última Modificación el"
#~ msgid "Main Attachment"
#~ msgstr "Adjunto Principal"

View File

@@ -0,0 +1,415 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_usage
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-01-10 14: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_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.hr_equipment_view_form
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.hr_equipment_view_kanban
msgid ""
"<span groups=\"maintenance.group_equipment_manager\" class=\"label label-"
"primary\" invisible=\"not in_use\">In use</span>"
msgstr ""
"<span groups=\"maintenance.group_equipment_manager\" class=\"label label-"
"primary\" invisible=\"not in_use\">In uso</span>"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction
msgid "Action Needed"
msgstr "Azione richiesta"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_ids
msgid "Activities"
msgstr "Attività"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr "Decorazione eccezione attività"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_state
msgid "Activity State"
msgstr "Stato attività"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_type_icon
msgid "Activity Type Icon"
msgstr "Icona tipo attività"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_attachment_count
msgid "Attachment Count"
msgstr "Conteggio allegati"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Cancel"
msgstr "Annulla"
#. module: maintenance_equipment_usage
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__cancel
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Cancelled"
msgstr "Annullata"
#. module: maintenance_equipment_usage
#: model_terms:ir.actions.act_window,help:maintenance_equipment_usage.maintenance_equipment_usage_action
#: model_terms:ir.actions.act_window,help:maintenance_equipment_usage.maintenance_equipment_usage_action_from_equipment
msgid "Click to create an Equipment Usage."
msgstr "Fare clic per creare un utilizzo attrezzatura."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__company_id
msgid "Company"
msgstr "Azienda"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__create_date
msgid "Created on"
msgstr "Creato il"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Driver"
msgstr "Driver"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__equipment_id
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Equipment"
msgstr "Attrezzatura"
#. module: maintenance_equipment_usage
#: model:ir.actions.act_window,name:maintenance_equipment_usage.maintenance_equipment_usage_action
#: model:ir.actions.act_window,name:maintenance_equipment_usage.maintenance_equipment_usage_action_from_equipment
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__name
msgid "Equipment Usage"
msgstr "Utilizzo attrezzatura"
#. module: maintenance_equipment_usage
#: model:ir.ui.menu,name:maintenance_equipment_usage.submenu_equipment_form
msgid "Equipments"
msgstr "Attrezzature"
#. module: maintenance_equipment_usage
#. odoo-python
#: code:addons/maintenance_equipment_usage/models/maintenance_equipment_usage.py:0
#, python-format
msgid "Every equipment can only be picked once at the same time!"
msgstr ""
"Ogni attrezzatura può essere prelevata una sola volta nello stesso momento!"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_follower_ids
msgid "Followers"
msgstr "Seguito da"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_partner_ids
msgid "Followers (Partners)"
msgstr "Seguito da (partner)"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr "Icona Font Awesome es. fa-tasks"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Group By..."
msgstr "Raggruppa per..."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__has_message
msgid "Has Message"
msgstr "Ha un messaggio"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__id
msgid "ID"
msgstr "ID"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_icon
msgid "Icon"
msgstr "Icona"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr "Icona per indicare un'attività eccezione."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction
msgid "If checked, new messages require your attention."
msgstr "Se selezionata, nuovi messaggi richiedono attenzione."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error
msgid "If checked, some messages have a delivery error."
msgstr "Se selezionata, alcuni messaggi hanno un errore di consegna."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment__in_use
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__in_use
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "In Use"
msgstr "In uso"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_is_follower
msgid "Is Follower"
msgstr "Segue"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento di"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__partner_id
msgid "Location"
msgstr "Ubicazione"
#. module: maintenance_equipment_usage
#: model:ir.model,name:maintenance_equipment_usage.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr "Attrezzatura manutenzione"
#. module: maintenance_equipment_usage
#: model:ir.model,name:maintenance_equipment_usage.model_maintenance_equipment_usage
msgid "Maintenance Equipment Usage"
msgstr "Utilizzo attrezzatura manutenzione"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error
msgid "Message Delivery error"
msgstr "Errore di consegna messaggio"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_ids
msgid "Messages"
msgstr "Messaggi"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr "Scadenza mia attività"
#. module: maintenance_equipment_usage
#. odoo-python
#: code:addons/maintenance_equipment_usage/models/maintenance_equipment_usage.py:0
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__draft
#, python-format
msgid "New"
msgstr "Nuova"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_date_deadline
msgid "Next Activity Deadline"
msgstr "Scadenza prossima attività"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_summary
msgid "Next Activity Summary"
msgstr "Riepilogo prossima attività"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_type_id
msgid "Next Activity Type"
msgstr "Tipo prossima attività"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Not Returned"
msgstr "Non rientrato"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__notes
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Notes"
msgstr "Note"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction_counter
msgid "Number of Actions"
msgstr "Numero di azioni"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error_counter
msgid "Number of errors"
msgstr "Numero di errori"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction_counter
msgid "Number of messages requiring action"
msgstr "Numero di messaggi che richiedono un'azione"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr "Numero di messaggi con errore di consegna"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Pick"
msgstr "Preleva"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__picking_user_id
msgid "Picked up by"
msgstr "Prelevato da"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__date_picking
msgid "Picking Date"
msgstr "Data prelievo"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Picking Date by Month"
msgstr "Data prelievo per mese"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Picking Month"
msgstr "Mese prelievo"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__rating_ids
msgid "Ratings"
msgstr "Valutazioni"
#. module: maintenance_equipment_usage
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__reserved
msgid "Reserved"
msgstr "Prenotata"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_user_id
msgid "Responsible User"
msgstr "Utente responsabile"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Return"
msgstr "Rientro"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__date_return
msgid "Return Date"
msgstr "Data rientro"
#. module: maintenance_equipment_usage
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__returned
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Returned"
msgstr "Rientrata"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__return_user_id
msgid "Returned by"
msgstr "Restituita da"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__state
msgid "State"
msgstr "Stato"
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Status"
msgstr "Stato"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__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_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "To Pick"
msgstr "Da prelevare"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr "Tipo di attività eccezione sul record."
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment__usage_count
msgid "Usage Count"
msgstr "Conteggo utilizzi"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment__usage_ids
#: model:ir.ui.menu,name:maintenance_equipment_usage.menu_maintenance_equipment_usage_action
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.hr_equipment_view_form
msgid "Usages"
msgstr "Uilizzi"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__user_id
msgid "User"
msgstr "Utente"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__website_message_ids
msgid "Website Messages"
msgstr "Messaggi sito web"
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__website_message_ids
msgid "Website communication history"
msgstr "Cronologia comunicazioni sito web"
#~ msgid ""
#~ "<span groups=\"maintenance.group_equipment_manager\" class=\"label label-"
#~ "primary\" attrs=\"{'invisible': [('in_use', '=', False)]}\">In use</span>"
#~ msgstr ""
#~ "<span groups=\"maintenance.group_equipment_manager\" class=\"label label-"
#~ "primary\" attrs=\"{'invisible': [('in_use', '=', False)]}\">In uso</span>"
#~ msgid "Last Modified on"
#~ msgstr "Ultima modifica il"
#~ msgid "Main Attachment"
#~ msgstr "Allegato principale"

View File

@@ -0,0 +1,390 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_usage
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.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_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.hr_equipment_view_form
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.hr_equipment_view_kanban
msgid ""
"<span groups=\"maintenance.group_equipment_manager\" class=\"label label-"
"primary\" invisible=\"not in_use\">In use</span>"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction
msgid "Action Needed"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_ids
msgid "Activities"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_state
msgid "Activity State"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_type_icon
msgid "Activity Type Icon"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_attachment_count
msgid "Attachment Count"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Cancel"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__cancel
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Cancelled"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.actions.act_window,help:maintenance_equipment_usage.maintenance_equipment_usage_action
#: model_terms:ir.actions.act_window,help:maintenance_equipment_usage.maintenance_equipment_usage_action_from_equipment
msgid "Click to create an Equipment Usage."
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__company_id
msgid "Company"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__create_uid
msgid "Created by"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__create_date
msgid "Created on"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__display_name
msgid "Display Name"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Driver"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__equipment_id
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Equipment"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.actions.act_window,name:maintenance_equipment_usage.maintenance_equipment_usage_action
#: model:ir.actions.act_window,name:maintenance_equipment_usage.maintenance_equipment_usage_action_from_equipment
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__name
msgid "Equipment Usage"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.ui.menu,name:maintenance_equipment_usage.submenu_equipment_form
msgid "Equipments"
msgstr ""
#. module: maintenance_equipment_usage
#. odoo-python
#: code:addons/maintenance_equipment_usage/models/maintenance_equipment_usage.py:0
msgid "Every equipment can only be picked once at the same time!"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_follower_ids
msgid "Followers"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Group By..."
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__has_message
msgid "Has Message"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__id
msgid "ID"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment__in_use
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__in_use
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "In Use"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__write_uid
msgid "Last Updated by"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__write_date
msgid "Last Updated on"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__partner_id
msgid "Location"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model,name:maintenance_equipment_usage.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model,name:maintenance_equipment_usage.model_maintenance_equipment_usage
msgid "Maintenance Equipment Usage"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error
msgid "Message Delivery error"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_ids
msgid "Messages"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr ""
#. module: maintenance_equipment_usage
#. odoo-python
#: code:addons/maintenance_equipment_usage/models/maintenance_equipment_usage.py:0
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__draft
msgid "New"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Not Returned"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__notes
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Notes"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction_counter
msgid "Number of Actions"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error_counter
msgid "Number of errors"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_needaction_counter
msgid "Number of messages requiring action"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Pick"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__picking_user_id
msgid "Picked up by"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__date_picking
msgid "Picking Date"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Picking Date by Month"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Picking Month"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__rating_ids
msgid "Ratings"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__reserved
msgid "Reserved"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_form
msgid "Return"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__date_return
msgid "Return Date"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields.selection,name:maintenance_equipment_usage.selection__maintenance_equipment_usage__state__returned
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Returned"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__return_user_id
msgid "Returned by"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__state
msgid "State"
msgstr ""
#. module: maintenance_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "Status"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__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_equipment_usage
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.maintenance_equipment_usage_search
msgid "To Pick"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment__usage_count
msgid "Usage Count"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment__usage_ids
#: model:ir.ui.menu,name:maintenance_equipment_usage.menu_maintenance_equipment_usage_action
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_usage.hr_equipment_view_form
msgid "Usages"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__user_id
msgid "User"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,field_description:maintenance_equipment_usage.field_maintenance_equipment_usage__website_message_ids
msgid "Website Messages"
msgstr ""
#. module: maintenance_equipment_usage
#: model:ir.model.fields,help:maintenance_equipment_usage.field_maintenance_equipment_usage__website_message_ids
msgid "Website communication history"
msgstr ""

View File

@@ -0,0 +1,2 @@
from . import maintenance_equipment
from . import maintenance_equipment_usage

View File

@@ -0,0 +1,32 @@
# Copyright 2022-2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class MaintenanceEquipment(models.Model):
_inherit = "maintenance.equipment"
usage_ids = fields.One2many(
comodel_name="maintenance.equipment.usage",
inverse_name="equipment_id",
string="Usages",
)
usage_count = fields.Integer(compute="_compute_usage_count")
in_use = fields.Boolean(compute="_compute_in_use", store=True)
@api.depends("usage_ids")
def _compute_usage_count(self):
res = self.env["maintenance.equipment.usage"].read_group(
domain=[("equipment_id", "in", self.ids)],
fields=["equipment_id"],
groupby=["equipment_id"],
)
res_dict = {x["equipment_id"][0]: x["equipment_id_count"] for x in res}
for rec in self:
rec.usage_count = res_dict.get(rec.id, 0)
@api.depends("usage_ids", "usage_ids.state")
def _compute_in_use(self):
for item in self:
item.in_use = any(usage.state == "in_use" for usage in item.usage_ids)

View File

@@ -0,0 +1,126 @@
# Copyright 2022-2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
from odoo.exceptions import UserError
class MaintenanceEquipmentUsage(models.Model):
_name = "maintenance.equipment.usage"
_description = "Maintenance Equipment Usage"
_inherit = ["mail.thread", "mail.activity.mixin"]
_order = "name desc"
name = fields.Char(
string="Equipment Usage",
copy=False,
readonly=True,
default=lambda self: self.env._("New"),
)
user_id = fields.Many2one(
comodel_name="res.users",
string="User",
required=True,
tracking=True,
)
picking_user_id = fields.Many2one(
comodel_name="res.users",
string="Picked up by",
tracking=True,
)
return_user_id = fields.Many2one(
comodel_name="res.users",
string="Returned by",
tracking=True,
)
date_picking = fields.Datetime(
string="Picking Date",
copy=False,
index=True,
tracking=True,
)
date_return = fields.Datetime(
string="Return Date",
copy=False,
index=True,
tracking=True,
)
equipment_id = fields.Many2one(
comodel_name="maintenance.equipment",
string="Equipment",
required=True,
tracking=True,
)
partner_id = fields.Many2one(
comodel_name="res.partner",
string="Location",
tracking=True,
)
state = fields.Selection(
selection=[
("draft", "New"),
("reserved", "Reserved"),
("in_use", "In Use"),
("returned", "Returned"),
("cancel", "Cancelled"),
],
readonly=True,
copy=False,
default="draft",
tracking=True,
)
company_id = fields.Many2one(
comodel_name="res.company",
string="Company",
required=True,
index=True,
default=lambda self: self.env.company.id,
tracking=True,
)
notes = fields.Text()
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
if not vals.get("name") or vals["name"] == self.env._("New"):
vals["name"] = self.env["ir.sequence"].next_by_code(
"maintenance.equipment.usage"
) or self.env._("New")
return super().create(vals_list)
def action_pick(self):
to_pick = self.filtered(lambda x: x.state in ("draft", "reserved"))
to_pick_with_date = to_pick.filtered(lambda x: not x.date_picking)
to_pick_with_date.date_picking = fields.Datetime.now()
to_pick.state = "in_use"
return True
def action_return(self):
to_return = self.filtered(lambda x: x.state == "in_use")
to_return_with_date = to_return.filtered(lambda x: not x.date_return)
to_return_with_date.date_return = fields.Datetime.now()
to_return.state = "returned"
return True
def action_cancel(self):
to_cancel = self.filtered(lambda x: x.state not in ("returned", "cancel"))
to_cancel.state = "cancel"
return True
@api.onchange("user_id")
def _onchange_user_id(self):
for usage in self:
usage.picking_user_id = usage.user_id
usage.return_user_id = usage.user_id
@api.constrains("state")
def _constrains_state(self):
"""Allow only one usage in use per equipment"""
for equipment in self.mapped("equipment_id"):
items = equipment.usage_ids.filtered(lambda x: x.state == "in_use")
if len(items) > 1:
raise UserError(
self.env._(
"Every equipment can only be picked once at the same time!"
)
)

View File

@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@@ -0,0 +1,7 @@
- César Fernández Domínguez
- [Tecnativa](https://www.tecnativa.com):
- Víctor Martínez
- Pedro M. Baeza
- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io)
- Bhavesh Heliconia

View File

@@ -0,0 +1,2 @@
This module allows to record usages of maintenante equipments by
employees, with their dates, states and comments.

View File

@@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_maintenance_equipment_usage,maintenance.equipment.usage,model_maintenance_equipment_usage,maintenance.group_equipment_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_maintenance_equipment_usage maintenance.equipment.usage model_maintenance_equipment_usage maintenance.group_equipment_manager 1 1 1 1

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="rule_maintenance_equipment_usage_multi_company" model="ir.rule">
<field name="name">Maintenance Equipment usage multi-company</field>
<field name="model_id" ref="model_maintenance_equipment_usage" />
<field name="global" eval="True" />
<field name="domain_force">[('company_id', 'in', [False] + company_ids)]</field>
</record>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,442 @@
<!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>README.rst</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
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: gray; } /* 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, pre.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">
<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
</a>
<div class="section" id="maintenance-equipment-usage">
<h1>Maintenance Equipment Usage</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:fb59eb35211a56c4edea67cc3ce2430fee9f06f3daf363e4a664b3d474940c8b
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/maintenance/tree/18.0/maintenance_equipment_usage"><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-18-0/maintenance-18-0-maintenance_equipment_usage"><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&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module allows to record usages of maintenante equipments by
employees, with their dates, states and comments.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-1">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-2">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-3">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-4">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-5">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h2><a class="toc-backref" href="#toc-entry-1">Bug Tracker</a></h2>
<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_equipment_usage%0Aversion:%2018.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">
<h2><a class="toc-backref" href="#toc-entry-2">Credits</a></h2>
<div class="section" id="authors">
<h3><a class="toc-backref" href="#toc-entry-3">Authors</a></h3>
<ul class="simple">
<li>César Fernández</li>
<li>Tecnativa</li>
</ul>
</div>
<div class="section" id="contributors">
<h3><a class="toc-backref" href="#toc-entry-4">Contributors</a></h3>
<ul class="simple">
<li>César Fernández Domínguez</li>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Víctor Martínez</li>
<li>Pedro M. Baeza</li>
</ul>
</li>
<li><a class="reference external" href="https://www.heliconia.io">Heliconia Solutions Pvt. Ltd.</a><ul>
<li>Bhavesh Heliconia</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h3><a class="toc-backref" href="#toc-entry-5">Maintainers</a></h3>
<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>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/victoralmau"><img alt="victoralmau" src="https://github.com/victoralmau.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/maintenance/tree/18.0/maintenance_equipment_usage">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>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
from . import test_maintenance_equipment_usage

View File

@@ -0,0 +1,65 @@
# Copyright 2022-2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.exceptions import UserError
from odoo.tests import Form, new_test_user
from odoo.addons.base.tests.common import BaseCommon
class TestMaintenanceEquipmentUsage(BaseCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.user = new_test_user(cls.env, login="test_basic_user")
cls.equipment = cls.env["maintenance.equipment"].create(
{"name": "Test equipment"}
)
cls.equipment_usage = cls._create_equipment_usage()
@classmethod
def _create_equipment_usage(cls):
equipment_usage_form = Form(cls.env["maintenance.equipment.usage"])
equipment_usage_form.equipment_id = cls.equipment
equipment_usage_form.user_id = cls.user
return equipment_usage_form.save()
def test_maintenance_equipment_full_process(self):
self.assertIn(self.equipment_usage, self.equipment.usage_ids)
self.assertFalse(self.equipment.in_use)
self.assertEqual(self.equipment_usage.state, "draft")
self.equipment_usage.action_pick()
self.assertTrue(self.equipment_usage.date_picking)
self.assertEqual(self.equipment_usage.state, "in_use")
self.assertTrue(self.equipment.in_use)
self.equipment_usage.action_return()
self.assertEqual(self.equipment_usage.state, "returned")
self.assertTrue(self.equipment_usage.date_return)
self.assertFalse(self.equipment.in_use)
def test_maintenance_equipment_cancel_process(self):
self.assertEqual(self.equipment_usage.state, "draft")
self.equipment_usage.action_cancel()
self.assertEqual(self.equipment_usage.state, "cancel")
def test_maintenance_equipment_multi(self):
self.equipment_usage.action_pick()
self.assertEqual(self.equipment_usage.state, "in_use")
equipment_usage2 = self._create_equipment_usage()
with self.assertRaises(UserError):
equipment_usage2.action_pick()
self.equipment_usage.action_cancel()
self.assertEqual(self.equipment_usage.state, "cancel")
equipment_usage2.action_pick()
self.assertEqual(equipment_usage2.state, "in_use")
def test_compute_usage_count(self):
equipment_usage2 = self.env["maintenance.equipment.usage"].create(
{"equipment_id": self.equipment.id, "user_id": self.user.id}
)
self.equipment._compute_usage_count()
self.assertEqual(self.equipment.usage_count, 2)
equipment_usage2.unlink()
self.equipment._compute_usage_count()
self.assertEqual(self.equipment.usage_count, 1)

View File

@@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="maintenance_equipment_usage_tree" model="ir.ui.view">
<field name="name">maintenance.equipment.usage.tree</field>
<field name="model">maintenance.equipment.usage</field>
<field name="arch" type="xml">
<list decoration-muted="state in ('done','cancel')">
<field name="name" />
<field name="equipment_id" />
<field name="user_id" />
<field name="partner_id" />
<field name="date_picking" />
<field name="date_return" />
<field name="state" />
</list>
</field>
</record>
<record id="maintenance_equipment_usage_form" model="ir.ui.view">
<field name="name">maintenance.equipment.usage.form</field>
<field name="model">maintenance.equipment.usage</field>
<field name="arch" type="xml">
<form>
<header>
<button
name="action_pick"
invisible="state not in ('draft','reserved')"
string="Pick"
type="object"
class="oe_highlight"
/>
<button
name="action_return"
invisible="state!='in_use'"
string="Return"
type="object"
class="oe_highlight"
/>
<button
name="action_cancel"
invisible="state not in ('draft','reserved','in_use')"
string="Cancel"
type="object"
/>
<field name="state" widget="statusbar" />
</header>
<sheet>
<div class="oe_title">
<h1>
<field name="name" nolabel="1" />
</h1>
</div>
<group>
<group>
<field
name="user_id"
readonly="state not in ('draft','reserved')"
/>
<field
name="equipment_id"
readonly="state not in ('draft','reserved')"
/>
</group>
<group>
<field
name="partner_id"
readonly="state not in ('draft','reserved')"
/>
<field
name="company_id"
readonly="state not in ('draft','reserved')"
groups="base.group_multi_company"
/>
</group>
</group>
<group>
<group>
<field name="create_date" invisible="1" />
<field
name="picking_user_id"
readonly="state not in ('draft','reserved')"
required="create_date"
/>
<field
name="return_user_id"
required="state=='in_use'"
readonly="state in ('returned','cancel')"
invisible="state not in ('in_use','returned','cancel')"
/>
</group>
<group>
<field
name="date_picking"
readonly="state not in ('draft','reserved')"
/>
<field
name="date_return"
readonly="state in ('returned','cancel')"
invisible="state not in ('in_use','returned','cancel')"
/>
</group>
</group>
<separator string="Notes" />
<field name="notes" />
</sheet>
<chatter />
</form>
</field>
</record>
<record id="maintenance_equipment_usage_search" model="ir.ui.view">
<field name="name">maintenance.equipment.usage.search</field>
<field name="model">maintenance.equipment.usage</field>
<field name="arch" type="xml">
<search>
<field name="name" />
<field name="user_id" />
<field name="equipment_id" />
<field name="picking_user_id" />
<field name="return_user_id" />
<filter
string="To Pick"
name="to_pick"
domain="[('state', 'in', ('draft', 'readonly'))]"
/>
<filter
string="In Use"
name="in_use"
domain="[('state', '=', 'in_use')]"
/>
<filter
string="Returned"
name="returned"
domain="[('state', '=', 'returned')]"
/>
<filter
string="Cancelled"
name="cancel"
domain="[('state', '=', 'cancel')]"
/>
<filter
string="Not Returned"
name="not_returned"
domain="[('state', 'not in', ('returned', 'cancel'))]"
/>
<group expand="0" string="Group By...">
<filter
name="group_by_user_id"
string="Driver"
domain="[]"
context="{'group_by':'user_id'}"
/>
<filter
name="group_by_equipment_id"
string="Equipment"
domain="[]"
context="{'group_by':'equipment_id'}"
/>
<filter
name="group_by_state"
string="Status"
domain="[]"
context="{'group_by':'state'}"
/>
<filter
name="group_by_date_picking"
string="Picking Month"
domain="[]"
context="{'group_by':'date_picking'}"
help="Picking Date by Month"
/>
</group>
</search>
</field>
</record>
<record id="maintenance_equipment_usage_action" model="ir.actions.act_window">
<field name="name">Equipment Usage</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">maintenance.equipment.usage</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="maintenance_equipment_usage_search" />
<field name="context">{'search_default_not_returned': 1}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Click to create an Equipment Usage.</p>
</field>
</record>
<menuitem
id="submenu_equipment_form"
name="Equipments"
parent="maintenance.menu_equipment_form"
action="maintenance.hr_equipment_action"
groups="maintenance.group_equipment_manager,base.group_user"
sequence="1"
/>
<menuitem
id="menu_maintenance_equipment_usage_action"
name="Usages"
action="maintenance_equipment_usage_action"
parent="maintenance.menu_equipment_form"
groups="maintenance.group_equipment_manager"
sequence="2"
/>
<record
id="maintenance_equipment_usage_action_from_equipment"
model="ir.actions.act_window"
>
<field name="name">Equipment Usage</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">maintenance.equipment.usage</field>
<field name="view_mode">list,form</field>
<field name="view_id" eval="False" />
<field name="search_view_id" ref="maintenance_equipment_usage_search" />
<field
name="context"
>{'default_equipment_id': active_id, 'search_default_not_returned': 1}</field>
<field name="domain">[('equipment_id', '=', active_id)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Click to create an Equipment Usage.</p>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="hr_equipment_view_kanban" model="ir.ui.view">
<field name="name">equipment.kanban</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_kanban" />
<field name="arch" type="xml">
<templates position="before">
<field name="in_use" groups="maintenance.group_equipment_manager" />
</templates>
<xpath expr="//t[@t-name='card']" position="inside">
<span
groups="maintenance.group_equipment_manager"
class="label label-primary"
invisible="not in_use"
>In use</span>
</xpath>
</field>
</record>
<record id="hr_equipment_view_form" model="ir.ui.view">
<field name="name">equipment.form</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_form" />
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button
class="oe_stat_button"
type="action"
name="%(maintenance_equipment_usage_action_from_equipment)d"
icon="fa-calendar"
groups="maintenance.group_equipment_manager"
>
<field string="Usages" name="usage_count" widget="statinfo" />
</button>
</div>
<xpath expr="//div[hasclass('oe_title')]" position="after">
<field name="in_use" invisible="1" />
<span
groups="maintenance.group_equipment_manager"
class="label label-primary"
invisible="not in_use"
>In use</span>
</xpath>
</field>
</record>
</odoo>