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,93 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association
================================
Maintenance Equipments Hierarchy
================================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:4ef0577cf50e199e325119f0c57939a0d1b3e83ae2a327e889d25e3f07668a0b
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-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_hierarchy
: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_hierarchy
: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 manage a hierarchy of equipments.
**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_hierarchy%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
-------
* ForgeFlow
Contributors
------------
- Adrià Gil Sorribes <adria.gil@forgeflow.com>
- Jordi Ballester Alomar <jordi.ballester@forgeflow.com>
- David Alonso <david.alonso@solvos.es>
- `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-dalonsod| image:: https://github.com/dalonsod.png?size=40px
:target: https://github.com/dalonsod
:alt: dalonsod
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-dalonsod|
This module is part of the `OCA/maintenance <https://github.com/OCA/maintenance/tree/18.0/maintenance_equipment_hierarchy>`_ 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,16 @@
# Copyright 2020 ForgeFlow S.L. (https://forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
{
"name": "Maintenance Equipments Hierarchy",
"summary": "Manage equipment hierarchy",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"maintainers": ["dalonsod"],
"website": "https://github.com/OCA/maintenance",
"category": "Equipments, Assets, Internal Hardware, Allocation Tracking",
"version": "18.0.1.0.0",
"license": "LGPL-3",
"depends": ["maintenance"],
"data": ["views/maintenance_equipment_views.xml"],
"demo": ["data/demo_maintenance_equipment_hierarchy.xml"],
}

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="equipment_computer9_1" model="maintenance.equipment">
<field name="name">HP Laptop battery</field>
<field name="category_id" ref="maintenance.equipment_computer" />
<field name="owner_user_id" ref="base.user_root" />
<field name="technician_user_id" ref="base.user_demo" />
<field name="assign_date" eval="time.strftime('%Y-%m-11')" />
<field name="serial_no">LP/303/28292090/BAT</field>
<field name="model">17-j059nr-bat</field>
<field name="parent_id" ref="maintenance.equipment_computer9" />
</record>
<record id="equipment_computer9_2" model="maintenance.equipment">
<field name="name">HP Laptop case</field>
<field name="category_id" ref="maintenance.equipment_computer" />
<field name="owner_user_id" ref="base.user_root" />
<field name="technician_user_id" ref="base.user_demo" />
<field name="assign_date" eval="time.strftime('%Y-%m-11')" />
<field name="serial_no">LP/303/28292090/CAS</field>
<field name="model">17-j059nr-cas</field>
<field name="parent_id" ref="maintenance.equipment_computer9" />
</record>
</odoo>

View File

@@ -0,0 +1,92 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_hierarchy
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-07-22 23:09+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: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_ids
msgid "Child Equipments"
msgstr "Equipamientos Hijos"
#. module: maintenance_equipment_hierarchy
#. odoo-python
#: code:addons/maintenance_equipment_hierarchy/models/maintenance_equipment.py:0
#, python-format
msgid "Child equipment of %s"
msgstr "Equipo infantil de %s"
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_form
msgid "Children"
msgstr "Hijos"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__complete_name
msgid "Complete Name"
msgstr "Nombre Completo"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__display_name
msgid "Display Name"
msgstr "Nombre a Mostrar"
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_1
msgid "HP Laptop battery"
msgstr "Batería de Portátil HP"
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_2
msgid "HP Laptop case"
msgstr "Funda de Portátil HP"
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_search
msgid "Has Children"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_left
msgid "Left Parent"
msgstr "Padre Izquierdo"
#. module: maintenance_equipment_hierarchy
#: model:ir.model,name:maintenance_equipment_hierarchy.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr "Equipamiento de mantenimiento"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_count
msgid "Number of child equipments"
msgstr "Número de Equipamientos Hijos"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_id
msgid "Parent Equipment"
msgstr "Equipo Padre"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_path
msgid "Parent Path"
msgstr "ruta parental"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_right
msgid "Right Parent"
msgstr "Padre derecho"
#~ msgid "Equipment"
#~ msgstr "Equipamiento"

View File

@@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_hierarchy
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-03-19 15:46+0000\n"
"Last-Translator: Sandrine (ACSONE) <sandrine.ravet@acsone.eu>\n"
"Language-Team: none\n"
"Language: fr_FR\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.3.2\n"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_ids
msgid "Child Equipments"
msgstr "Equipements enfants"
#. module: maintenance_equipment_hierarchy
#. odoo-python
#: code:addons/maintenance_equipment_hierarchy/models/maintenance_equipment.py:0
#, python-format
msgid "Child equipment of %s"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_form
msgid "Children"
msgstr "Enfants"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__complete_name
msgid "Complete Name"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__display_name
msgid "Display Name"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_1
msgid "HP Laptop battery"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_2
msgid "HP Laptop case"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_search
msgid "Has Children"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_left
msgid "Left Parent"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model,name:maintenance_equipment_hierarchy.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr "Equipement"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_count
msgid "Number of child equipments"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_id
msgid "Parent Equipment"
msgstr "Equipement parent"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_path
msgid "Parent Path"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_right
msgid "Right Parent"
msgstr ""

View File

@@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_hierarchy
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-05-24 11:35+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 4.17\n"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_ids
msgid "Child Equipments"
msgstr "Attrezzature discendenti"
#. module: maintenance_equipment_hierarchy
#. odoo-python
#: code:addons/maintenance_equipment_hierarchy/models/maintenance_equipment.py:0
#, python-format
msgid "Child equipment of %s"
msgstr "Attrezzatura figlia di %s"
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_form
msgid "Children"
msgstr "Figli"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__complete_name
msgid "Complete Name"
msgstr "Nome completo"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_1
msgid "HP Laptop battery"
msgstr "Batteria laptop HP"
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_2
msgid "HP Laptop case"
msgstr "Case laptop HP"
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_search
msgid "Has Children"
msgstr "Ha figli"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_left
msgid "Left Parent"
msgstr "Ascendente precedente"
#. module: maintenance_equipment_hierarchy
#: model:ir.model,name:maintenance_equipment_hierarchy.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr "Attrezzatura manutenzione"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_count
msgid "Number of child equipments"
msgstr "Numero di attrezzature discendenti"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_id
msgid "Parent Equipment"
msgstr "Attrezzatura ascendente"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_path
msgid "Parent Path"
msgstr "Percorso padre"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_right
msgid "Right Parent"
msgstr "Padre successivo"

View File

@@ -0,0 +1,85 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_hierarchy
#
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_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_ids
msgid "Child Equipments"
msgstr ""
#. module: maintenance_equipment_hierarchy
#. odoo-python
#: code:addons/maintenance_equipment_hierarchy/models/maintenance_equipment.py:0
msgid "Child equipment of %s"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_form
msgid "Children"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__complete_name
msgid "Complete Name"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__display_name
msgid "Display Name"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_1
msgid "HP Laptop battery"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_2
msgid "HP Laptop case"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_search
msgid "Has Children"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_left
msgid "Left Parent"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model,name:maintenance_equipment_hierarchy.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_count
msgid "Number of child equipments"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_id
msgid "Parent Equipment"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_path
msgid "Parent Path"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_right
msgid "Right Parent"
msgstr ""

View File

@@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_hierarchy
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-07-06 19:58+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 5.6.2\n"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_ids
msgid "Child Equipments"
msgstr "Equipamentos Descendentes"
#. module: maintenance_equipment_hierarchy
#. odoo-python
#: code:addons/maintenance_equipment_hierarchy/models/maintenance_equipment.py:0
#, python-format
msgid "Child equipment of %s"
msgstr "Equipamento descendente de %s"
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_form
msgid "Children"
msgstr "Descendentes"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__complete_name
msgid "Complete Name"
msgstr "Nome Completo"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__display_name
msgid "Display Name"
msgstr "Nome"
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_1
msgid "HP Laptop battery"
msgstr "Bateria de Portátil HP"
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_2
msgid "HP Laptop case"
msgstr "Capa para Portátil HP"
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_search
msgid "Has Children"
msgstr "Tem Descendentes"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_left
msgid "Left Parent"
msgstr "Ascendente Esquerdo"
#. module: maintenance_equipment_hierarchy
#: model:ir.model,name:maintenance_equipment_hierarchy.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr "Equipamento de Manutenção"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_count
msgid "Number of child equipments"
msgstr "Número de equipamentos descendentes"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_id
msgid "Parent Equipment"
msgstr "Equipamento Ascendentes"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_path
msgid "Parent Path"
msgstr "Caminho Ascendente"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_right
msgid "Right Parent"
msgstr "Ascendente Direito"

View File

@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_hierarchy
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_ids
msgid "Child Equipments"
msgstr ""
#. module: maintenance_equipment_hierarchy
#. odoo-python
#: code:addons/maintenance_equipment_hierarchy/models/maintenance_equipment.py:0
#, python-format
msgid "Child equipment of %s"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_form
msgid "Children"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__complete_name
msgid "Complete Name"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__display_name
msgid "Display Name"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_1
msgid "HP Laptop battery"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:maintenance.equipment,name:maintenance_equipment_hierarchy.equipment_computer9_2
msgid "HP Laptop case"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_hierarchy.hr_equipment_view_search
msgid "Has Children"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_left
msgid "Left Parent"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model,name:maintenance_equipment_hierarchy.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__child_count
msgid "Number of child equipments"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_id
msgid "Parent Equipment"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_path
msgid "Parent Path"
msgstr ""
#. module: maintenance_equipment_hierarchy
#: model:ir.model.fields,field_description:maintenance_equipment_hierarchy.field_maintenance_equipment__parent_right
msgid "Right Parent"
msgstr ""

View File

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

View File

@@ -0,0 +1,68 @@
# Copyright 2020 ForgeFlow S.L. (https://forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
from odoo import api, fields, models
class MaintenanceEquipment(models.Model):
_inherit = "maintenance.equipment"
_parent_name = "parent_id"
_parent_store = True
_parent_order = "name"
parent_id = fields.Many2one(
"maintenance.equipment",
"Parent Equipment",
index=True,
ondelete="cascade",
tracking=True,
)
child_ids = fields.One2many(
"maintenance.equipment", "parent_id", "Child Equipments"
)
parent_left = fields.Integer("Left Parent", index=1)
parent_right = fields.Integer("Right Parent", index=1)
child_count = fields.Integer(
compute="_compute_child_count", string="Number of child equipments"
)
display_name = fields.Char(compute="_compute_display_name")
complete_name = fields.Char(
compute="_compute_complete_name", store=True, recursive=True
)
parent_path = fields.Char(index=True)
def name_get(self):
return [(equipment.id, equipment.complete_name) for equipment in self]
@api.depends("child_ids")
def _compute_child_count(self):
for equipment in self:
equipment.child_count = len(equipment.child_ids)
def _compute_display_name(self):
for equipment in self:
equipment.display_name = equipment.complete_name
@api.depends("name", "parent_id.complete_name") # recursive definition
def _compute_complete_name(self):
for equipment in self:
if equipment.parent_id:
parent_name = equipment.parent_id.complete_name
equipment.complete_name = parent_name + " / " + (equipment.name or "")
else:
equipment.complete_name = equipment.name
def preview_child_list(self):
return {
"name": self.env._("Child equipment of %s") % self.name,
"type": "ir.actions.act_window",
"res_model": "maintenance.equipment",
"view_mode": "list,form",
"path": "child-equipments",
"context": {
**self.env.context,
"default_parent_id": self.id,
"parent_id_editable": False,
},
"domain": [("parent_id", "=", self.id)],
}

View File

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

View File

@@ -0,0 +1,5 @@
- Adrià Gil Sorribes \<<adria.gil@forgeflow.com>\>
- Jordi Ballester Alomar \<<jordi.ballester@forgeflow.com>\>
- David Alonso \<<david.alonso@solvos.es>\>
- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io)
- Bhavesh Heliconia

View File

@@ -0,0 +1 @@
This module allows to manage a hierarchy of equipments.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,437 @@
<!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-equipments-hierarchy">
<h1>Maintenance Equipments Hierarchy</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:4ef0577cf50e199e325119f0c57939a0d1b3e83ae2a327e889d25e3f07668a0b
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/license-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/maintenance/tree/18.0/maintenance_equipment_hierarchy"><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_hierarchy"><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 manage a hierarchy of equipments.</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_hierarchy%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>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h3><a class="toc-backref" href="#toc-entry-4">Contributors</a></h3>
<ul class="simple">
<li>Adrià Gil Sorribes &lt;<a class="reference external" href="mailto:adria.gil&#64;forgeflow.com">adria.gil&#64;forgeflow.com</a>&gt;</li>
<li>Jordi Ballester Alomar &lt;<a class="reference external" href="mailto:jordi.ballester&#64;forgeflow.com">jordi.ballester&#64;forgeflow.com</a>&gt;</li>
<li>David Alonso &lt;<a class="reference external" href="mailto:david.alonso&#64;solvos.es">david.alonso&#64;solvos.es</a>&gt;</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/dalonsod"><img alt="dalonsod" src="https://github.com/dalonsod.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_hierarchy">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_hierarchy

View File

@@ -0,0 +1,58 @@
# Copyright 2020 ForgeFlow S.L. (https://forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
from odoo.exceptions import UserError
from odoo.addons.base.tests.common import BaseCommon
class TestMaintenanceEquipmentHierarchy(BaseCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.Equipment = cls.env["maintenance.equipment"]
cls.equipment1 = cls.Equipment.create({"name": "Equipment 1"})
cls.equipment1_1 = cls.Equipment.create({"name": "Equipment 1.1"})
cls.equipment1_2 = cls.Equipment.create({"name": "Equipment 1.2"})
def test_01_hierarchy(self):
self.equipment1_1.parent_id = self.equipment1
res = self.equipment1.preview_child_list()
self.assertEqual(res["domain"], [("parent_id", "=", self.equipment1.id)])
def test_02_recursion(self):
with self.assertRaises(UserError):
self.equipment1.parent_id = self.equipment1
def test_03_name_get_display_complete(self):
self.equipment1_1.parent_id = self.equipment1
equipment1_1_complete_name = (
self.equipment1.name + " / " + self.equipment1_1.name
)
self.assertEqual(self.equipment1.name_get()[0][1], self.equipment1.name)
self.assertEqual(self.equipment1.complete_name, self.equipment1.name)
self.assertEqual(self.equipment1.display_name, self.equipment1.name)
self.assertEqual(self.equipment1_1.name_get()[0][1], equipment1_1_complete_name)
self.assertEqual(self.equipment1_1.complete_name, equipment1_1_complete_name)
self.assertEqual(self.equipment1_1.display_name, equipment1_1_complete_name)
def test_04_child_count_computation(self):
# Set parent-child relationships
self.equipment1_1.parent_id = self.equipment1
self.equipment1_2.parent_id = self.equipment1
# Test the child_count computation
self.equipment1._compute_child_count()
# Assert that the child_count is correct (2 children)
self.assertEqual(self.equipment1.child_count, 2)
# Remove one child and recompute
self.equipment1_1.parent_id = False
self.equipment1._compute_child_count()
# Assert that the child_count is updated (1 child)
self.assertEqual(self.equipment1.child_count, 1)

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<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
name="preview_child_list"
type="object"
class="oe_stat_button"
icon="fa-sitemap"
>
<field string="Children" name="child_count" widget="statinfo" />
</button>
</div>
<field name="category_id" position="before">
<field
name="parent_id"
readonly="not context.get('parent_id_editable', True)"
/>
</field>
</field>
</record>
<record id="hr_equipment_view_tree" model="ir.ui.view">
<field name="name">equipment.tree</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_tree" />
<field name="arch" type="xml">
<field name="name" position="after">
<field
name="parent_id"
column_invisible="not context.get('parent_id_editable', True)"
/>
</field>
</field>
</record>
<record id="hr_equipment_view_search" model="ir.ui.view">
<field name="name">equipment.search</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_search" />
<field name="arch" type="xml">
<field name="name" position="attributes">
<attribute
name="filter_domain"
>['|','|','|',('complete_name','ilike',self),('model','ilike',self),('serial_no','ilike',self),('partner_ref', 'ilike', self)]</attribute>
</field>
<filter name="under_maintenance" position="after">
<separator />
<filter
string="Has Children"
name="has_children"
domain="[('child_ids', '!=', False)]"
/>
</filter>
</field>
</record>
</odoo>