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,89 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association
============================
Maintenance Equipment Status
============================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:61996a948e76fb86d62d966c1924ddc9d5184ce2f2389025fae3c45f042d5504
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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_status
: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_status
: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 indicate status of an equipment.
**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_status%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 <adria.gil@forgeflow.com>
- Jordi Ballester Alomar <jordi.ballester@forgeflow.com>
- David Alonso <david.alonso@solvos.es>
- [APSL-Nagarro](https://apsl.tech):
- Antoni Marroig <amarroig@apsl.net>
- `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.
This module is part of the `OCA/maintenance <https://github.com/OCA/maintenance/tree/18.0/maintenance_equipment_status>`_ 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,20 @@
# Copyright 2020 ForgeFlow S.L. (https://forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
{
"name": "Maintenance Equipment Status",
"version": "18.0.1.0.0",
"category": "",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/maintenance",
"license": "LGPL-3",
"depends": ["base_maintenance"],
"data": [
"security/ir.model.access.csv",
"views/maintenance_equipment_status_views.xml",
"views/maintenance_equipment_views.xml",
],
"demo": ["data/demo_maintenance_equipment_status.xml"],
"installable": True,
"auto_install": False,
"application": False,
}

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="maintenance_equipment_status_1" model="maintenance.equipment.status">
<field name="name">New</field>
<field name="sequence" eval="5" />
</record>
<record id="maintenance_equipment_status_2" model="maintenance.equipment.status">
<field name="name">Working</field>
<field name="sequence" eval="10" />
</record>
<record id="maintenance_equipment_status_3" model="maintenance.equipment.status">
<field name="name">Retired</field>
<field name="sequence" eval="15" />
</record>
<record id="maintenance.equipment_monitor1" model="maintenance.equipment">
<field name="status_id" ref="maintenance_equipment_status_1" />
</record>
<record id="maintenance.equipment_monitor4" model="maintenance.equipment">
<field name="status_id" ref="maintenance_equipment_status_2" />
</record>
</odoo>

View File

@@ -0,0 +1,138 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_status
#
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_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__active
msgid "Active"
msgstr "Activo"
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_search
msgid "Archived"
msgstr "Archivado"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__category_ids
msgid "Categories"
msgstr "Categor??as"
#. module: maintenance_equipment_status
#: model_terms:ir.actions.act_window,help:maintenance_equipment_status.maintenance_equipment_status_action
msgid "Click to set a new status for your equipments."
msgstr "Hacer click para crear nuevos estados para los equipamientos."
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__create_date
msgid "Created on"
msgstr "Creado el"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__display_name
msgid "Display Name"
msgstr "Nombre a mostrar"
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_search
msgid "Equipment Status"
msgstr "Estado del Equipamiento"
#. module: maintenance_equipment_status
#: model:ir.actions.act_window,name:maintenance_equipment_status.maintenance_equipment_status_action
#: model:ir.ui.menu,name:maintenance_equipment_status.menu_maintenance_equipment_status_act
msgid "Equipment Statuses"
msgstr "Estados de Equipamiento"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__id
msgid "ID"
msgstr "ID"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__write_uid
msgid "Last Updated by"
msgstr "actualizado por última vez por"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__write_date
msgid "Last Updated on"
msgstr "última actualización el"
#. module: maintenance_equipment_status
#: model:ir.model,name:maintenance_equipment_status.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr "Equipo de Mantenimiento"
#. module: maintenance_equipment_status
#: model:ir.model,name:maintenance_equipment_status.model_maintenance_equipment_status
msgid "Maintenance Equipment Status"
msgstr "Estados de Equipo de mantenimiento"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__name
msgid "Name"
msgstr "Nombre"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__note
msgid "Note"
msgstr "Nota"
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
msgid "Notes"
msgstr "Notas"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__sequence
msgid "Sequence"
msgstr "Secuencia"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment__status_id
msgid "Status"
msgstr "Estado"
#. module: maintenance_equipment_status
#: model:ir.model.fields,help:maintenance_equipment_status.field_maintenance_equipment_status__category_ids
msgid ""
"When set, this status will only be applicable to the equipments under these "
"categories."
msgstr ""
"Si se establece, este estado solo se aplicara a equipamientos de estas "
"categor??as."
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
msgid "e.g. Operational"
msgstr "p. e. Operativo"
#~ msgid "Last Modified on"
#~ msgstr "??ltima modificaci??n en"
#~ msgid "Status name"
#~ msgstr "Nombre del Estado"
#~ msgid "Equipment"
#~ msgstr "Equipamiento"

View File

@@ -0,0 +1,132 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_status
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-07-12 12:09+0000\n"
"Last-Translator: Francesco Foresti <francesco.foresti@ooops404.com>\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_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__active
msgid "Active"
msgstr "Attivo"
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_search
msgid "Archived"
msgstr "In archivio"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__category_ids
msgid "Categories"
msgstr "Categorie"
#. module: maintenance_equipment_status
#: model_terms:ir.actions.act_window,help:maintenance_equipment_status.maintenance_equipment_status_action
msgid "Click to set a new status for your equipments."
msgstr "Fare clic per impostare un nuovo stato per le attrezzature."
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__create_date
msgid "Created on"
msgstr "Creato il"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_search
msgid "Equipment Status"
msgstr "Stato attrezzatura"
#. module: maintenance_equipment_status
#: model:ir.actions.act_window,name:maintenance_equipment_status.maintenance_equipment_status_action
#: model:ir.ui.menu,name:maintenance_equipment_status.menu_maintenance_equipment_status_act
msgid "Equipment Statuses"
msgstr "Stati attrezzatura"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__id
msgid "ID"
msgstr "ID"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento di"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: maintenance_equipment_status
#: model:ir.model,name:maintenance_equipment_status.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr "Attrezzatura manutenzione"
#. module: maintenance_equipment_status
#: model:ir.model,name:maintenance_equipment_status.model_maintenance_equipment_status
msgid "Maintenance Equipment Status"
msgstr "Stato attrezzatura manutenzione"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__name
msgid "Name"
msgstr "Nome"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__note
msgid "Note"
msgstr "Nota"
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
msgid "Notes"
msgstr "Note"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__sequence
msgid "Sequence"
msgstr "Sequenza"
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment__status_id
msgid "Status"
msgstr "Stato"
#. module: maintenance_equipment_status
#: model:ir.model.fields,help:maintenance_equipment_status.field_maintenance_equipment_status__category_ids
msgid ""
"When set, this status will only be applicable to the equipments under these "
"categories."
msgstr ""
"Quando impostato, questo stato potrà essere applicato solo alle attrezzature "
"di queste categorie."
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
msgid "e.g. Operational"
msgstr "es. Operativo"
#~ msgid "Last Modified on"
#~ msgstr "Ultima modifica il"

View File

@@ -0,0 +1,124 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_status
#
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_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__active
msgid "Active"
msgstr ""
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_search
msgid "Archived"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__category_ids
msgid "Categories"
msgstr ""
#. module: maintenance_equipment_status
#: model_terms:ir.actions.act_window,help:maintenance_equipment_status.maintenance_equipment_status_action
msgid "Click to set a new status for your equipments."
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__create_uid
msgid "Created by"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__create_date
msgid "Created on"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__display_name
msgid "Display Name"
msgstr ""
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_search
msgid "Equipment Status"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.actions.act_window,name:maintenance_equipment_status.maintenance_equipment_status_action
#: model:ir.ui.menu,name:maintenance_equipment_status.menu_maintenance_equipment_status_act
msgid "Equipment Statuses"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__id
msgid "ID"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__write_uid
msgid "Last Updated by"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__write_date
msgid "Last Updated on"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model,name:maintenance_equipment_status.model_maintenance_equipment
msgid "Maintenance Equipment"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model,name:maintenance_equipment_status.model_maintenance_equipment_status
msgid "Maintenance Equipment Status"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__name
msgid "Name"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__note
msgid "Note"
msgstr ""
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
msgid "Notes"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment_status__sequence
msgid "Sequence"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,field_description:maintenance_equipment_status.field_maintenance_equipment__status_id
msgid "Status"
msgstr ""
#. module: maintenance_equipment_status
#: model:ir.model.fields,help:maintenance_equipment_status.field_maintenance_equipment_status__category_ids
msgid ""
"When set, this status will only be applicable to the equipments under these "
"categories."
msgstr ""
#. module: maintenance_equipment_status
#: model_terms:ir.ui.view,arch_db:maintenance_equipment_status.maintenance_equipment_status_view_form
msgid "e.g. Operational"
msgstr ""

View File

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

View File

@@ -0,0 +1,14 @@
# Copyright 2020 ForgeFlow S.L. (https://forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
from odoo import fields, models
class MaintenanceEquipment(models.Model):
_inherit = "maintenance.equipment"
status_id = fields.Many2one(
string="Status",
comodel_name="maintenance.equipment.status",
tracking=True,
)

View File

@@ -0,0 +1,21 @@
# Copyright 2020 ForgeFlow S.L. (https://forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
from odoo import fields, models
class MaintenanceEquipmentStatus(models.Model):
_name = "maintenance.equipment.status"
_description = "Maintenance Equipment Status"
_order = "sequence"
active = fields.Boolean(default=True)
name = fields.Char()
note = fields.Text()
sequence = fields.Integer(default=10)
category_ids = fields.Many2many(
string="Categories",
comodel_name="maintenance.equipment.category",
help="When set, this status will only be applicable to the equipments "
"under these categories.",
)

View File

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

View File

@@ -0,0 +1,5 @@
To cotnfigure this module, you need to:
#. Maintenance > Configuration > Equipment Statuses
You can limit the usage of status to specific equipment categories.

View File

@@ -0,0 +1,7 @@
- Adriá Gil \<<adria.gil@forgeflow.com>\>
- Jordi Ballester Alomar \<<jordi.ballester@forgeflow.com>\>
- David Alonso \<<david.alonso@solvos.es>\>
- \[APSL-Nagarro\](<https://apsl.tech>):
- Antoni Marroig \<<amarroig@apsl.net>\>
- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io)
- Bhavesh Heliconia

View File

@@ -0,0 +1 @@
This module allows to indicate status of an equipment.

View File

@@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_maintenance_equipment_status,access_maintenance_equipment_status,model_maintenance_equipment_status,base.group_user,1,0,0,0
access_maintenance_equipment_status_admin,access_maintenance_equipment_status_admin,model_maintenance_equipment_status,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_status access_maintenance_equipment_status model_maintenance_equipment_status base.group_user 1 0 0 0
3 access_maintenance_equipment_status_admin access_maintenance_equipment_status_admin model_maintenance_equipment_status maintenance.group_equipment_manager 1 1 1 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,439 @@
<!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-status">
<h1>Maintenance Equipment Status</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:61996a948e76fb86d62d966c1924ddc9d5184ce2f2389025fae3c45f042d5504
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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_status"><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_status"><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 indicate status of an equipment.</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_status%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 &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>[APSL-Nagarro](<a class="reference external" href="https://apsl.tech">https://apsl.tech</a>):<ul>
<li>Antoni Marroig &lt;<a class="reference external" href="mailto:amarroig&#64;apsl.net">amarroig&#64;apsl.net</a>&gt;</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>This module is part of the <a class="reference external" href="https://github.com/OCA/maintenance/tree/18.0/maintenance_equipment_status">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_status

View File

@@ -0,0 +1,69 @@
from odoo import Command
from odoo.addons.base.tests.common import BaseCommon
class TestMaintenanceEquipment(BaseCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
# Create test categories
cls.category_1 = cls.env["maintenance.equipment.category"].create(
{"name": "Category 1"}
)
cls.category_2 = cls.env["maintenance.equipment.category"].create(
{"name": "Category 2"}
)
# Create test equipment statuses
cls.status_1 = cls.env["maintenance.equipment.status"].create(
{
"name": "Status 1",
"sequence": 10,
"category_ids": [Command.set([cls.category_1.id])],
}
)
cls.status_2 = cls.env["maintenance.equipment.status"].create(
{
"name": "Status 2",
"sequence": 20,
"category_ids": [Command.set([cls.category_1.id])],
}
)
def test_equipment_status_behavior(self):
# Check status is linked correctly to equipment
equipment = self.env["maintenance.equipment"].create(
{
"name": "Equipment 1",
"status_id": self.status_1.id,
}
)
self.assertEqual(equipment.status_id, self.status_1)
self.assertEqual(equipment.status_id.name, "Status 1")
# Check categories in status
self.assertIn(self.category_1, self.status_1.category_ids)
self.assertNotIn(self.category_2, self.status_1.category_ids)
# Check default active value
status_3 = self.env["maintenance.equipment.status"].create(
{
"name": "Status 3",
}
)
self.assertTrue(status_3.active, "The status should be active by default")
# Check explicit inactive value
status_4 = self.env["maintenance.equipment.status"].create(
{
"name": "Status 4",
"active": False,
}
)
self.assertFalse(status_4.active, "The status should be inactive")
# Check sequences
self.assertEqual(self.status_1.sequence, 10)
self.assertEqual(self.status_2.sequence, 20)

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="maintenance_equipment_status_view_form" model="ir.ui.view">
<field name="name">maintenance.equipment.status.form</field>
<field name="model">maintenance.equipment.status</field>
<field name="arch" type="xml">
<form string="Equipment Status">
<header />
<sheet>
<widget
name="web_ribbon"
title="Archived"
bg_color="bg-danger"
invisible="active"
/>
<div class="oe_title">
<label for="name" class="oe_edit_only" />
<h1>
<field name="name" placeholder="e.g. Operational" />
</h1>
</div>
<group name="categories">
<field name="category_ids" widget="many2many_tags" />
</group>
<group name="notes">
<div>
<separator string="Notes" />
<field name="note" nolabel="1" />
</div>
</group>
</sheet>
</form>
</field>
</record>
<record id="maintenance_equipment_status_view_tree" model="ir.ui.view">
<field name="name">maintenance.equipment.status.tree</field>
<field name="model">maintenance.equipment.status</field>
<field name="arch" type="xml">
<list>
<field name="sequence" widget="handle" />
<field name="name" />
<field name="category_ids" widget="many2many_tags" />
</list>
</field>
</record>
<record id="maintenance_equipment_status_view_search" model="ir.ui.view">
<field name="name">maintenance.equipment.status.search</field>
<field name="model">maintenance.equipment.status</field>
<field name="arch" type="xml">
<search string="Equipment Status">
<field name="name" />
<field name="category_ids" />
<filter
string="Archived"
name="inactive"
domain="[('active','=',False)]"
/>
</search>
</field>
</record>
<record id="maintenance_equipment_status_action" model="ir.actions.act_window">
<field name="name">Equipment Statuses</field>
<field name="res_model">maintenance.equipment.status</field>
<field
name="view_id"
ref="maintenance_equipment_status.maintenance_equipment_status_view_tree"
/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to set a new status for your equipments.
</p>
</field>
</record>
<menuitem
id="menu_maintenance_equipment_status_act"
name="Equipment Statuses"
action="maintenance_equipment_status_action"
parent="maintenance.menu_maintenance_configuration"
groups="maintenance.group_equipment_manager"
/>
</odoo>

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- equipment : views -->
<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">
<xpath expr="header" position="inside">
<field
name="status_id"
widget="statusbar"
options="{'clickable': '1'}"
domain="['|', ('category_ids', 'in', [category_id]), ('category_ids', '=', False)]"
/>
</xpath>
</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="status_id" />
</field>
</field>
</record>
<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">
<xpath expr="//progressbar[@field='activity_state']" position="before">
<field name="status_id" />
</xpath>
<xpath
expr="//div[@t-if='record.maintenance_open_count.raw_value']"
position="after"
>
<div class="badge badge-primary" t-if="record.status_id.value">
<t t-out="record.status_id.value" />
</div>
</xpath>
</field>
</record>
</odoo>