From c6e432e0c6418487a456c1a9be8caf7f50cfd083 Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Fri, 15 Nov 2019 13:23:57 +0100 Subject: [PATCH 01/22] [11.0][ADD] maintenance_location --- maintenance_location/README.rst | 1 + maintenance_location/__init__.py | 1 + maintenance_location/__manifest__.py | 20 +++ maintenance_location/i18n/es.po | 136 ++++++++++++++++++ .../i18n/maintenance_location.pot | 135 +++++++++++++++++ maintenance_location/models/__init__.py | 4 + .../models/maintenance_equipment.py | 21 +++ .../models/maintenance_location.py | 56 ++++++++ .../models/maintenance_plan.py | 11 ++ .../models/maintenance_request.py | 17 +++ .../security/ir.model.access.csv | 3 + .../static/description/icon.png | Bin 0 -> 9455 bytes maintenance_location/tests/__init__.py | 1 + .../tests/test_maintenance_location.py | 32 +++++ .../views/maintenance_equipment.xml | 58 ++++++++ .../views/maintenance_location.xml | 60 ++++++++ .../views/maintenance_plan.xml | 40 ++++++ .../views/maintenance_request.xml | 51 +++++++ 18 files changed, 647 insertions(+) create mode 100644 maintenance_location/README.rst create mode 100644 maintenance_location/__init__.py create mode 100644 maintenance_location/__manifest__.py create mode 100644 maintenance_location/i18n/es.po create mode 100644 maintenance_location/i18n/maintenance_location.pot create mode 100644 maintenance_location/models/__init__.py create mode 100644 maintenance_location/models/maintenance_equipment.py create mode 100644 maintenance_location/models/maintenance_location.py create mode 100644 maintenance_location/models/maintenance_plan.py create mode 100644 maintenance_location/models/maintenance_request.py create mode 100644 maintenance_location/security/ir.model.access.csv create mode 100644 maintenance_location/static/description/icon.png create mode 100644 maintenance_location/tests/__init__.py create mode 100644 maintenance_location/tests/test_maintenance_location.py create mode 100644 maintenance_location/views/maintenance_equipment.xml create mode 100644 maintenance_location/views/maintenance_location.xml create mode 100644 maintenance_location/views/maintenance_plan.xml create mode 100644 maintenance_location/views/maintenance_request.xml diff --git a/maintenance_location/README.rst b/maintenance_location/README.rst new file mode 100644 index 000000000..af276a928 --- /dev/null +++ b/maintenance_location/README.rst @@ -0,0 +1 @@ +Define a location system for maintenance diff --git a/maintenance_location/__init__.py b/maintenance_location/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/maintenance_location/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py new file mode 100644 index 000000000..358b99c14 --- /dev/null +++ b/maintenance_location/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2019 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Maintenance Location", + "summary": """ + Define a location system for maintenance""", + "version": "11.0.1.0.0", + "license": "AGPL-3", + "author": "Creu Blanca,Odoo Community Association (OCA)", + "website": "www.creublanca.es", + "depends": ["maintenance_plan", "web_widget_child_selector"], + "data": [ + "views/maintenance_plan.xml", + "views/maintenance_equipment.xml", + "security/ir.model.access.csv", + "views/maintenance_request.xml", + "views/maintenance_location.xml", + ], +} diff --git a/maintenance_location/i18n/es.po b/maintenance_location/i18n/es.po new file mode 100644 index 000000000..4e3f9dd5e --- /dev/null +++ b/maintenance_location/i18n/es.po @@ -0,0 +1,136 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * maintenance_location +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-12-12 11:56+0000\n" +"PO-Revision-Date: 2019-12-12 13:00+0100\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"Language: es\n" +"X-Generator: Poedit 2.0.6\n" + +#. module: maintenance_location +#: model:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "Location name" +msgstr "Nombre de la ubicación" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_child_id +msgid "Child Locations" +msgstr "Ubicaciones Hijas" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_complete_name +msgid "Complete Name" +msgstr "Nombre completo" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: maintenance_location +#: model:ir.model,name:maintenance_location.model_maintenance_equipment +msgid "Equipment" +msgstr "Equipamiento" + +#. module: maintenance_location +#: code:addons/maintenance_location/models/maintenance_location.py:52 +#, python-format +msgid "Error ! You cannot create recursive Locations." +msgstr "Error! No puedes crear ubicaciones cíclicas." + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_id +msgid "ID" +msgstr "ID (identificación)" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location___last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_left +msgid "Left Parent" +msgstr "Padre izquierdo" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment_location_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request_location_id +msgid "Location" +msgstr "Ubicación" + +#. module: maintenance_location +#: model:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban +msgid "Location :" +msgstr "Location :" + +#. module: maintenance_location +#: model:ir.actions.act_window,name:maintenance_location.maintenance_location_act_window +#: model:ir.model,name:maintenance_location.model_maintenance_location +msgid "Maintenance Location" +msgstr "Ubicación" + +#. module: maintenance_location +#: model:ir.ui.menu,name:maintenance_location.maintenance_location_menu +msgid "Maintenance Locations" +msgstr "Ubicaciones" + +#. module: maintenance_location +#: model:ir.model,name:maintenance_location.model_maintenance_request +msgid "Maintenance Requests" +msgstr "Peticiones de mantenimiento" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_name +msgid "Name" +msgstr "Nombre" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_id +msgid "Parent Location" +msgstr "Ubicación padre" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_partner_id +msgid "Partner" +msgstr "Centro" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_right +msgid "Right Parent" +msgstr "Padre derecho" + +#. module: maintenance_location +#: model:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "e.g. Building A" +msgstr "p.e. Edificio A" diff --git a/maintenance_location/i18n/maintenance_location.pot b/maintenance_location/i18n/maintenance_location.pot new file mode 100644 index 000000000..ec990dd3a --- /dev/null +++ b/maintenance_location/i18n/maintenance_location.pot @@ -0,0 +1,135 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * maintenance_location +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-12-12 11:56+0000\n" +"PO-Revision-Date: 2019-12-12 11:56+0000\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_location +#: model:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "Location name" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_child_id +msgid "Child Locations" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_complete_name +msgid "Complete Name" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_create_uid +msgid "Created by" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_create_date +msgid "Created on" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_display_name +msgid "Display Name" +msgstr "" + +#. module: maintenance_location +#: model:ir.model,name:maintenance_location.model_maintenance_equipment +msgid "Equipment" +msgstr "" + +#. module: maintenance_location +#: code:addons/maintenance_location/models/maintenance_location.py:52 +#, python-format +msgid "Error ! You cannot create recursive Locations." +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_id +msgid "ID" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location___last_update +msgid "Last Modified on" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_write_date +msgid "Last Updated on" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_left +msgid "Left Parent" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment_location_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request_location_id +msgid "Location" +msgstr "" + +#. module: maintenance_location +#: model:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban +msgid "Location :" +msgstr "" + +#. module: maintenance_location +#: model:ir.actions.act_window,name:maintenance_location.maintenance_location_act_window +#: model:ir.model,name:maintenance_location.model_maintenance_location +msgid "Maintenance Location" +msgstr "" + +#. module: maintenance_location +#: model:ir.ui.menu,name:maintenance_location.maintenance_location_menu +msgid "Maintenance Locations" +msgstr "" + +#. module: maintenance_location +#: model:ir.model,name:maintenance_location.model_maintenance_request +msgid "Maintenance Requests" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_name +msgid "Name" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_id +msgid "Parent Location" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_partner_id +msgid "Partner" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_right +msgid "Right Parent" +msgstr "" + +#. module: maintenance_location +#: model:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "e.g. Building A" +msgstr "" + diff --git a/maintenance_location/models/__init__.py b/maintenance_location/models/__init__.py new file mode 100644 index 000000000..3b2481dc9 --- /dev/null +++ b/maintenance_location/models/__init__.py @@ -0,0 +1,4 @@ +from . import maintenance_location +from . import maintenance_request +from . import maintenance_equipment +from . import maintenance_plan diff --git a/maintenance_location/models/maintenance_equipment.py b/maintenance_location/models/maintenance_equipment.py new file mode 100644 index 000000000..2a4b1f61a --- /dev/null +++ b/maintenance_location/models/maintenance_equipment.py @@ -0,0 +1,21 @@ +# Copyright 2019 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class MaintenanceEquipment(models.Model): + + _inherit = "maintenance.equipment" + + location_id = fields.Many2one("maintenance.location") + + def _prepare_request_from_plan( + self, maintenance_plan, next_maintenance_date + ): + res = super()._prepare_request_from_plan( + maintenance_plan, next_maintenance_date + ) + location = maintenance_plan.location_id or self.location_id + res.update({"location_id": location.id}) + return res diff --git a/maintenance_location/models/maintenance_location.py b/maintenance_location/models/maintenance_location.py new file mode 100644 index 000000000..fe52651e7 --- /dev/null +++ b/maintenance_location/models/maintenance_location.py @@ -0,0 +1,56 @@ +# Copyright 2019 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError + + +class MaintenanceLocation(models.Model): + + _name = "maintenance.location" + _description = "Maintenance Location" + _parent_name = "parent_id" + _parent_store = True + _parent_order = "name" + _rec_name = "complete_name" + _order = "complete_name,id" + + name = fields.Char(required=True) + complete_name = fields.Char( + "Complete Name", compute="_compute_complete_name", store=True + ) + + partner_id = fields.Many2one("res.partner") + + parent_id = fields.Many2one( + "maintenance.location", + "Parent Location", + index=True, + ondelete="cascade", + ) + child_id = fields.One2many( + "maintenance.location", "parent_id", "Child Locations" + ) + parent_left = fields.Integer("Left Parent", index=1) + parent_right = fields.Integer("Right Parent", index=1) + + sequence = fields.Integer(string="Sequence", default=10) + + @api.depends("name", "parent_id.complete_name") + def _compute_complete_name(self): + for location in self: + if location.parent_id: + location.complete_name = "%s / %s" % ( + location.parent_id.complete_name, + location.name, + ) + else: + location.complete_name = location.name + + @api.constrains("parent_id") + def _check_category_recursion(self): + if not self._check_recursion(): + raise ValidationError( + _("Error ! You cannot create recursive Locations.") + ) + return True diff --git a/maintenance_location/models/maintenance_plan.py b/maintenance_location/models/maintenance_plan.py new file mode 100644 index 000000000..3a02e1f3e --- /dev/null +++ b/maintenance_location/models/maintenance_plan.py @@ -0,0 +1,11 @@ +# Copyright 2020 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class MaintenancePlan(models.Model): + + _inherit = "maintenance.plan" + + location_id = fields.Many2one("maintenance.location") diff --git a/maintenance_location/models/maintenance_request.py b/maintenance_location/models/maintenance_request.py new file mode 100644 index 000000000..442cd1f12 --- /dev/null +++ b/maintenance_location/models/maintenance_request.py @@ -0,0 +1,17 @@ +# Copyright 2019 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class MaintenanceRequest(models.Model): + + _inherit = "maintenance.request" + + location_id = fields.Many2one("maintenance.location") + + @api.onchange("equipment_id") + def _onchange_equipment_id(self): + for record in self.filtered("equipment_id"): + if record.equipment_id.location_id: + record.location_id = record.equipment_id.location_id diff --git a/maintenance_location/security/ir.model.access.csv b/maintenance_location/security/ir.model.access.csv new file mode 100644 index 000000000..0e7eb053f --- /dev/null +++ b/maintenance_location/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_maintenance_location,access_maintenance_location,model_maintenance_location,base.group_user,1,0,0,0 +access_maintenance_location_maintenance,access_maintenance_location_maintenance,model_maintenance_location,maintenance.group_equipment_manager,1,1,1,1 diff --git a/maintenance_location/static/description/icon.png b/maintenance_location/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/maintenance_location/tests/__init__.py b/maintenance_location/tests/__init__.py new file mode 100644 index 000000000..e76ac8f83 --- /dev/null +++ b/maintenance_location/tests/__init__.py @@ -0,0 +1 @@ +from . import test_maintenance_location diff --git a/maintenance_location/tests/test_maintenance_location.py b/maintenance_location/tests/test_maintenance_location.py new file mode 100644 index 000000000..2b338df92 --- /dev/null +++ b/maintenance_location/tests/test_maintenance_location.py @@ -0,0 +1,32 @@ +# Copyright 2019 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests.common import TransactionCase +from odoo.exceptions import ValidationError + + +class TestMaintenanceLocation(TransactionCase): + def setUp(self): + super().setUp() + self.location_1 = self.env["maintenance.location"].create( + {"name": "L1"} + ) + self.location_2 = self.env["maintenance.location"].create( + {"name": "L2", "parent_id": self.location_1.id} + ) + self.equipment = self.env["maintenance.equipment"].create( + {"name": "L2", "location_id": self.location_1.id} + ) + self.team = self.env["maintenance.team"].create({"name": "Team"}) + self.request = self.env["maintenance.request"].create( + {"name": "Request", "maintenance_team_id": self.team.id} + ) + + def test_maintenance_location(self): + self.assertEqual(self.location_2.complete_name, "L1 / L2") + with self.assertRaises(ValidationError): + self.location_1.write({"parent_id": self.location_2.id}) + + self.request.write({"equipment_id": self.equipment.id}) + self.request._onchange_equipment_id() + self.assertEqual(self.request.location_id.id, self.location_1.id) diff --git a/maintenance_location/views/maintenance_equipment.xml b/maintenance_location/views/maintenance_equipment.xml new file mode 100644 index 000000000..0695778cd --- /dev/null +++ b/maintenance_location/views/maintenance_equipment.xml @@ -0,0 +1,58 @@ + + + + + + + maintenance.equipment.form (in maintenance_location) + maintenance.equipment + + + + 1 + + + + + + + + + + + + maintenance.equipment.search (in maintenance_location) + maintenance.equipment + + + + + + + + + + maintenance.equipment.tree (in maintenance_location) + maintenance.equipment + + + + + + + + + + maintenance.equipment.tree (in maintenance_location) + maintenance.equipment + + +
+
+
+
+
+ +
diff --git a/maintenance_location/views/maintenance_location.xml b/maintenance_location/views/maintenance_location.xml new file mode 100644 index 000000000..d770c8d3a --- /dev/null +++ b/maintenance_location/views/maintenance_location.xml @@ -0,0 +1,60 @@ + + + + + + + maintenance.location.form (in cb_maintenance) + maintenance.location + +
+ +
+
+ + + +
+
+
+
+ + + maintenance.location.search (in cb_maintenance) + maintenance.location + + + + + + + + + maintenance.location.tree (in cb_maintenance) + maintenance.location + + + + + + + + + Maintenance Location + maintenance.location + tree,form + [] + {} + + + + Maintenance Locations + + + + + +
diff --git a/maintenance_location/views/maintenance_plan.xml b/maintenance_location/views/maintenance_plan.xml new file mode 100644 index 000000000..e53d087f1 --- /dev/null +++ b/maintenance_location/views/maintenance_plan.xml @@ -0,0 +1,40 @@ + + + + + + + maintenance.plan.form (in maintenance_location) + maintenance.plan + + + + + + + + + + maintenance.plan.search (in maintenance_location) + maintenance.plan + + + + + + + + + + maintenance.plan.tree (in maintenance_location) + maintenance.plan + + + + + + + + + diff --git a/maintenance_location/views/maintenance_request.xml b/maintenance_location/views/maintenance_request.xml new file mode 100644 index 000000000..dc3e182b7 --- /dev/null +++ b/maintenance_location/views/maintenance_request.xml @@ -0,0 +1,51 @@ + + + + + + + maintenance.request.form (in maintenance_location) + maintenance.request + + + + + + + + + + maintenance.request.search (in maintenance_location) + maintenance.request + + + + + + + + + + maintenance.request.tree (in maintenance_location) + maintenance.request + + + + + + + + + + maintenance.request.kanban (in maintenance_location) + maintenance.request + + + + Location :
+
+
+
+ +
From face7f58d0e08bcabf4608e926b15c1df46450ab Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Mon, 24 Feb 2020 13:46:59 +0100 Subject: [PATCH 02/22] [12.0][MIG] maintenance_location --- maintenance_location/__manifest__.py | 2 +- .../models/maintenance_equipment.py | 1 + .../models/maintenance_location.py | 10 ++--- .../models/maintenance_request.py | 4 +- .../tests/test_maintenance_location.py | 32 ++++++++++++-- .../views/maintenance_equipment.xml | 41 ++++++++++-------- .../views/maintenance_location.xml | 43 ++++++++----------- .../views/maintenance_plan.xml | 23 +++++----- .../views/maintenance_request.xml | 36 +++++++++------- 9 files changed, 109 insertions(+), 83 deletions(-) diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py index 358b99c14..5f764f6e2 100644 --- a/maintenance_location/__manifest__.py +++ b/maintenance_location/__manifest__.py @@ -5,7 +5,7 @@ "name": "Maintenance Location", "summary": """ Define a location system for maintenance""", - "version": "11.0.1.0.0", + "version": "12.0.1.0.0", "license": "AGPL-3", "author": "Creu Blanca,Odoo Community Association (OCA)", "website": "www.creublanca.es", diff --git a/maintenance_location/models/maintenance_equipment.py b/maintenance_location/models/maintenance_equipment.py index 2a4b1f61a..e4313e5a8 100644 --- a/maintenance_location/models/maintenance_equipment.py +++ b/maintenance_location/models/maintenance_equipment.py @@ -9,6 +9,7 @@ class MaintenanceEquipment(models.Model): _inherit = "maintenance.equipment" location_id = fields.Many2one("maintenance.location") + location = fields.Char(string="Location Old") def _prepare_request_from_plan( self, maintenance_plan, next_maintenance_date diff --git a/maintenance_location/models/maintenance_location.py b/maintenance_location/models/maintenance_location.py index fe52651e7..11e24c5d4 100644 --- a/maintenance_location/models/maintenance_location.py +++ b/maintenance_location/models/maintenance_location.py @@ -1,7 +1,7 @@ # Copyright 2019 Creu Blanca # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import api, fields, models, _ +from odoo import _, api, fields, models from odoo.exceptions import ValidationError @@ -31,8 +31,7 @@ class MaintenanceLocation(models.Model): child_id = fields.One2many( "maintenance.location", "parent_id", "Child Locations" ) - parent_left = fields.Integer("Left Parent", index=1) - parent_right = fields.Integer("Right Parent", index=1) + parent_path = fields.Char(index=True) sequence = fields.Integer(string="Sequence", default=10) @@ -40,9 +39,8 @@ class MaintenanceLocation(models.Model): def _compute_complete_name(self): for location in self: if location.parent_id: - location.complete_name = "%s / %s" % ( - location.parent_id.complete_name, - location.name, + location.complete_name = "{} / {}".format( + location.parent_id.complete_name, location.name, ) else: location.complete_name = location.name diff --git a/maintenance_location/models/maintenance_request.py b/maintenance_location/models/maintenance_request.py index 442cd1f12..7b8f76dfe 100644 --- a/maintenance_location/models/maintenance_request.py +++ b/maintenance_location/models/maintenance_request.py @@ -12,6 +12,6 @@ class MaintenanceRequest(models.Model): @api.onchange("equipment_id") def _onchange_equipment_id(self): - for record in self.filtered("equipment_id"): - if record.equipment_id.location_id: + for record in self: + if record.equipment_id and record.equipment_id.location_id: record.location_id = record.equipment_id.location_id diff --git a/maintenance_location/tests/test_maintenance_location.py b/maintenance_location/tests/test_maintenance_location.py index 2b338df92..1e8ae1ec6 100644 --- a/maintenance_location/tests/test_maintenance_location.py +++ b/maintenance_location/tests/test_maintenance_location.py @@ -1,13 +1,15 @@ # Copyright 2019 Creu Blanca # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo.tests.common import TransactionCase from odoo.exceptions import ValidationError +from odoo.tests.common import SavepointCase -class TestMaintenanceLocation(TransactionCase): - def setUp(self): - super().setUp() +class TestMaintenanceLocation(SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + self = cls self.location_1 = self.env["maintenance.location"].create( {"name": "L1"} ) @@ -22,6 +24,22 @@ def setUp(self): {"name": "Request", "maintenance_team_id": self.team.id} ) + self.equipment = self.env["maintenance.equipment"].create( + {"name": "Laptop", "location_id": self.location_1.id} + ) + + self.plan = self.env["maintenance.plan"].create( + { + "equipment_id": self.equipment.id, + "interval": 1, + "interval_step": "month", + "maintenance_plan_horizon": 2, + "planning_step": "month", + "maintenance_team_id": self.team.id, + "location_id": self.location_1.id, + } + ) + def test_maintenance_location(self): self.assertEqual(self.location_2.complete_name, "L1 / L2") with self.assertRaises(ValidationError): @@ -30,3 +48,9 @@ def test_maintenance_location(self): self.request.write({"equipment_id": self.equipment.id}) self.request._onchange_equipment_id() self.assertEqual(self.request.location_id.id, self.location_1.id) + + def test_request_creation(self): + request = self.equipment._create_new_request(self.plan) + self.assertTrue(request) + for r in request: + self.assertEqual(r.location_id.id, self.location_1.id) diff --git a/maintenance_location/views/maintenance_equipment.xml b/maintenance_location/views/maintenance_equipment.xml index 0695778cd..f4fe759b0 100644 --- a/maintenance_location/views/maintenance_equipment.xml +++ b/maintenance_location/views/maintenance_equipment.xml @@ -1,58 +1,63 @@ - + - - maintenance.equipment.form (in maintenance_location) maintenance.equipment - + 1 - + - + - - maintenance.equipment.search (in maintenance_location) + maintenance.equipment.search (in maintenance_location) maintenance.equipment - + - + - maintenance.equipment.tree (in maintenance_location) maintenance.equipment - + - + - maintenance.equipment.tree (in maintenance_location) maintenance.equipment - +
-
+
+ + +
-
diff --git a/maintenance_location/views/maintenance_location.xml b/maintenance_location/views/maintenance_location.xml index d770c8d3a..772ca76ce 100644 --- a/maintenance_location/views/maintenance_location.xml +++ b/maintenance_location/views/maintenance_location.xml @@ -1,47 +1,44 @@ - + - - maintenance.location.form (in cb_maintenance) maintenance.location -
- -
-
- - - -
-
+
+ +
+
+ + + +
+
- maintenance.location.search (in cb_maintenance) maintenance.location - + - maintenance.location.tree (in cb_maintenance) maintenance.location - + - Maintenance Location maintenance.location @@ -49,12 +46,10 @@ [] {} - Maintenance Locations - - - + + + -
diff --git a/maintenance_location/views/maintenance_plan.xml b/maintenance_location/views/maintenance_plan.xml index e53d087f1..e7ccc80ab 100644 --- a/maintenance_location/views/maintenance_plan.xml +++ b/maintenance_location/views/maintenance_plan.xml @@ -1,40 +1,39 @@ - + - - maintenance.plan.form (in maintenance_location) maintenance.plan - + - + - maintenance.plan.search (in maintenance_location) maintenance.plan - + - + - maintenance.plan.tree (in maintenance_location) maintenance.plan - + - + - diff --git a/maintenance_location/views/maintenance_request.xml b/maintenance_location/views/maintenance_request.xml index dc3e182b7..9027b49a3 100644 --- a/maintenance_location/views/maintenance_request.xml +++ b/maintenance_location/views/maintenance_request.xml @@ -1,51 +1,55 @@ - + - - maintenance.request.form (in maintenance_location) maintenance.request - + - + - maintenance.request.search (in maintenance_location) maintenance.request - + - + - maintenance.request.tree (in maintenance_location) maintenance.request - + - + - maintenance.request.kanban (in maintenance_location) maintenance.request - + - - Location :
+ + Location :
-
From 3a0bf0473b7d2ce3c7cc571cee8c8b8e18904b82 Mon Sep 17 00:00:00 2001 From: Olga Marco Date: Fri, 25 Jun 2021 08:44:52 +0200 Subject: [PATCH 03/22] [MIG] maintenance_location: Migration to 13.0 --- maintenance_location/__manifest__.py | 2 +- maintenance_location/models/maintenance_location.py | 3 ++- maintenance_location/tests/test_maintenance_location.py | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py index 5f764f6e2..37038a15f 100644 --- a/maintenance_location/__manifest__.py +++ b/maintenance_location/__manifest__.py @@ -5,7 +5,7 @@ "name": "Maintenance Location", "summary": """ Define a location system for maintenance""", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "license": "AGPL-3", "author": "Creu Blanca,Odoo Community Association (OCA)", "website": "www.creublanca.es", diff --git a/maintenance_location/models/maintenance_location.py b/maintenance_location/models/maintenance_location.py index 11e24c5d4..7ae4f0f02 100644 --- a/maintenance_location/models/maintenance_location.py +++ b/maintenance_location/models/maintenance_location.py @@ -40,7 +40,8 @@ def _compute_complete_name(self): for location in self: if location.parent_id: location.complete_name = "{} / {}".format( - location.parent_id.complete_name, location.name, + location.parent_id.complete_name, + location.name, ) else: location.complete_name = location.name diff --git a/maintenance_location/tests/test_maintenance_location.py b/maintenance_location/tests/test_maintenance_location.py index 1e8ae1ec6..cf94f146d 100644 --- a/maintenance_location/tests/test_maintenance_location.py +++ b/maintenance_location/tests/test_maintenance_location.py @@ -1,7 +1,7 @@ # Copyright 2019 Creu Blanca # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo.exceptions import ValidationError +from odoo.exceptions import UserError from odoo.tests.common import SavepointCase @@ -42,7 +42,7 @@ def setUpClass(cls): def test_maintenance_location(self): self.assertEqual(self.location_2.complete_name, "L1 / L2") - with self.assertRaises(ValidationError): + with self.assertRaises(UserError): self.location_1.write({"parent_id": self.location_2.id}) self.request.write({"equipment_id": self.equipment.id}) From 60ec0140ffaa3ef3e746384d1541283b2b2845e9 Mon Sep 17 00:00:00 2001 From: Kevin Luna Date: Tue, 8 Nov 2022 09:15:19 +0100 Subject: [PATCH 04/22] [IMP] maintenance_location: black, isort, prettier --- maintenance_location/__manifest__.py | 2 +- maintenance_location/models/maintenance_equipment.py | 4 +--- maintenance_location/models/maintenance_location.py | 8 ++------ maintenance_location/tests/test_maintenance_location.py | 4 +--- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py index 37038a15f..291b13bcf 100644 --- a/maintenance_location/__manifest__.py +++ b/maintenance_location/__manifest__.py @@ -8,7 +8,7 @@ "version": "13.0.1.0.0", "license": "AGPL-3", "author": "Creu Blanca,Odoo Community Association (OCA)", - "website": "www.creublanca.es", + "website": "https://github.com/tegin/cb-maintenance", "depends": ["maintenance_plan", "web_widget_child_selector"], "data": [ "views/maintenance_plan.xml", diff --git a/maintenance_location/models/maintenance_equipment.py b/maintenance_location/models/maintenance_equipment.py index e4313e5a8..dca47177b 100644 --- a/maintenance_location/models/maintenance_equipment.py +++ b/maintenance_location/models/maintenance_equipment.py @@ -11,9 +11,7 @@ class MaintenanceEquipment(models.Model): location_id = fields.Many2one("maintenance.location") location = fields.Char(string="Location Old") - def _prepare_request_from_plan( - self, maintenance_plan, next_maintenance_date - ): + def _prepare_request_from_plan(self, maintenance_plan, next_maintenance_date): res = super()._prepare_request_from_plan( maintenance_plan, next_maintenance_date ) diff --git a/maintenance_location/models/maintenance_location.py b/maintenance_location/models/maintenance_location.py index 7ae4f0f02..1328672a6 100644 --- a/maintenance_location/models/maintenance_location.py +++ b/maintenance_location/models/maintenance_location.py @@ -28,9 +28,7 @@ class MaintenanceLocation(models.Model): index=True, ondelete="cascade", ) - child_id = fields.One2many( - "maintenance.location", "parent_id", "Child Locations" - ) + child_id = fields.One2many("maintenance.location", "parent_id", "Child Locations") parent_path = fields.Char(index=True) sequence = fields.Integer(string="Sequence", default=10) @@ -49,7 +47,5 @@ def _compute_complete_name(self): @api.constrains("parent_id") def _check_category_recursion(self): if not self._check_recursion(): - raise ValidationError( - _("Error ! You cannot create recursive Locations.") - ) + raise ValidationError(_("Error ! You cannot create recursive Locations.")) return True diff --git a/maintenance_location/tests/test_maintenance_location.py b/maintenance_location/tests/test_maintenance_location.py index cf94f146d..25b7e8403 100644 --- a/maintenance_location/tests/test_maintenance_location.py +++ b/maintenance_location/tests/test_maintenance_location.py @@ -10,9 +10,7 @@ class TestMaintenanceLocation(SavepointCase): def setUpClass(cls): super().setUpClass() self = cls - self.location_1 = self.env["maintenance.location"].create( - {"name": "L1"} - ) + self.location_1 = self.env["maintenance.location"].create({"name": "L1"}) self.location_2 = self.env["maintenance.location"].create( {"name": "L2", "parent_id": self.location_1.id} ) From 0833bea7c960001246b34b71a278e3d6fa8b6a58 Mon Sep 17 00:00:00 2001 From: Kevin Luna Date: Tue, 8 Nov 2022 09:55:44 +0100 Subject: [PATCH 05/22] [MIG] maintenance_location: Migration to 14.0 --- maintenance_location/__manifest__.py | 4 ++-- maintenance_location/views/maintenance_equipment.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py index 291b13bcf..83c4d4f04 100644 --- a/maintenance_location/__manifest__.py +++ b/maintenance_location/__manifest__.py @@ -5,9 +5,9 @@ "name": "Maintenance Location", "summary": """ Define a location system for maintenance""", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "license": "AGPL-3", - "author": "Creu Blanca,Odoo Community Association (OCA)", + "author": "CreuBlanca,Odoo Community Association (OCA)", "website": "https://github.com/tegin/cb-maintenance", "depends": ["maintenance_plan", "web_widget_child_selector"], "data": [ diff --git a/maintenance_location/views/maintenance_equipment.xml b/maintenance_location/views/maintenance_equipment.xml index f4fe759b0..0db2c50cf 100644 --- a/maintenance_location/views/maintenance_equipment.xml +++ b/maintenance_location/views/maintenance_equipment.xml @@ -54,7 +54,7 @@
- +
From 3998676668f3c4b3cb3e8933841b127bdea89dbc Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Fri, 8 Sep 2023 09:38:22 +0200 Subject: [PATCH 06/22] [IMP] maintenance_location: Adapt to OCA --- maintenance_location/README.rst | 80 +++- maintenance_location/__manifest__.py | 2 +- maintenance_location/readme/CONTRIBUTORS.rst | 4 + maintenance_location/readme/DESCRIPTION.rst | 1 + .../static/description/index.html | 424 ++++++++++++++++++ .../views/maintenance_equipment.xml | 2 +- .../views/maintenance_request.xml | 6 +- 7 files changed, 513 insertions(+), 6 deletions(-) create mode 100644 maintenance_location/readme/CONTRIBUTORS.rst create mode 100644 maintenance_location/readme/DESCRIPTION.rst create mode 100644 maintenance_location/static/description/index.html diff --git a/maintenance_location/README.rst b/maintenance_location/README.rst index af276a928..11f55be69 100644 --- a/maintenance_location/README.rst +++ b/maintenance_location/README.rst @@ -1 +1,79 @@ -Define a location system for maintenance +==================== +Maintenance Location +==================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:2488123f61dfac3fdb543b1094f3ed92ad84a27c14af2520512ea4475d27ec7a + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmaintenance-lightgray.png?logo=github + :target: https://github.com/OCA/maintenance/tree/14.0/maintenance_location + :alt: OCA/maintenance +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/maintenance-14-0/maintenance-14-0-maintenance_location + :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=14.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Define a location system with hierarchy for maintenance equipments and requests. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* CreuBlanca + +Contributors +~~~~~~~~~~~~ + +* CreuBlanca + * Enric Tobella + * Kevin Luna + * Jaime Arroyo + +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 `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py index 83c4d4f04..a51908612 100644 --- a/maintenance_location/__manifest__.py +++ b/maintenance_location/__manifest__.py @@ -8,7 +8,7 @@ "version": "14.0.1.0.0", "license": "AGPL-3", "author": "CreuBlanca,Odoo Community Association (OCA)", - "website": "https://github.com/tegin/cb-maintenance", + "website": "https://github.com/OCA/maintenance", "depends": ["maintenance_plan", "web_widget_child_selector"], "data": [ "views/maintenance_plan.xml", diff --git a/maintenance_location/readme/CONTRIBUTORS.rst b/maintenance_location/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..3221219fa --- /dev/null +++ b/maintenance_location/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* CreuBlanca + * Enric Tobella + * Kevin Luna + * Jaime Arroyo diff --git a/maintenance_location/readme/DESCRIPTION.rst b/maintenance_location/readme/DESCRIPTION.rst new file mode 100644 index 000000000..6b5f20983 --- /dev/null +++ b/maintenance_location/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Define a location system with hierarchy for maintenance equipments and requests. diff --git a/maintenance_location/static/description/index.html b/maintenance_location/static/description/index.html new file mode 100644 index 000000000..5c6097715 --- /dev/null +++ b/maintenance_location/static/description/index.html @@ -0,0 +1,424 @@ + + + + + + +Maintenance Location + + + +
+

Maintenance Location

+ + +

Beta License: AGPL-3 OCA/maintenance Translate me on Weblate Try me on Runboat

+

Define a location system with hierarchy for maintenance equipments and requests.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • CreuBlanca
  • +
+
+
+

Contributors

+
    +
  • CreuBlanca +* Enric Tobella +* Kevin Luna +* Jaime Arroyo
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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 project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/maintenance_location/views/maintenance_equipment.xml b/maintenance_location/views/maintenance_equipment.xml index 0db2c50cf..db04ee6f1 100644 --- a/maintenance_location/views/maintenance_equipment.xml +++ b/maintenance_location/views/maintenance_equipment.xml @@ -32,7 +32,7 @@ maintenance.equipment - + diff --git a/maintenance_location/views/maintenance_request.xml b/maintenance_location/views/maintenance_request.xml index 9027b49a3..1a2cc48b0 100644 --- a/maintenance_location/views/maintenance_request.xml +++ b/maintenance_location/views/maintenance_request.xml @@ -7,7 +7,7 @@ maintenance.request - + maintenance.request - + Location :
-
+
From c14fe7c9fa6030fa3129d6130b5e0f1280002724 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Fri, 8 Sep 2023 12:15:24 +0200 Subject: [PATCH 07/22] [IMP] maintenance_location: Add new fields and behavior, remove widget_selection dependency --- maintenance_location/__manifest__.py | 2 +- maintenance_location/models/maintenance_equipment.py | 2 +- maintenance_location/models/maintenance_location.py | 5 ++++- maintenance_location/views/maintenance_equipment.xml | 10 +++------- maintenance_location/views/maintenance_location.xml | 6 ++++++ maintenance_location/views/maintenance_plan.xml | 6 +----- maintenance_location/views/maintenance_request.xml | 8 ++------ 7 files changed, 18 insertions(+), 21 deletions(-) diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py index a51908612..d4246c01b 100644 --- a/maintenance_location/__manifest__.py +++ b/maintenance_location/__manifest__.py @@ -9,7 +9,7 @@ "license": "AGPL-3", "author": "CreuBlanca,Odoo Community Association (OCA)", "website": "https://github.com/OCA/maintenance", - "depends": ["maintenance_plan", "web_widget_child_selector"], + "depends": ["maintenance_plan"], "data": [ "views/maintenance_plan.xml", "views/maintenance_equipment.xml", diff --git a/maintenance_location/models/maintenance_equipment.py b/maintenance_location/models/maintenance_equipment.py index dca47177b..7614226c7 100644 --- a/maintenance_location/models/maintenance_equipment.py +++ b/maintenance_location/models/maintenance_equipment.py @@ -8,7 +8,7 @@ class MaintenanceEquipment(models.Model): _inherit = "maintenance.equipment" - location_id = fields.Many2one("maintenance.location") + location_id = fields.Many2one("maintenance.location", tracking=True) location = fields.Char(string="Location Old") def _prepare_request_from_plan(self, maintenance_plan, next_maintenance_date): diff --git a/maintenance_location/models/maintenance_location.py b/maintenance_location/models/maintenance_location.py index 1328672a6..749778cb8 100644 --- a/maintenance_location/models/maintenance_location.py +++ b/maintenance_location/models/maintenance_location.py @@ -16,6 +16,7 @@ class MaintenanceLocation(models.Model): _order = "complete_name,id" name = fields.Char(required=True) + description = fields.Char() complete_name = fields.Char( "Complete Name", compute="_compute_complete_name", store=True ) @@ -30,8 +31,10 @@ class MaintenanceLocation(models.Model): ) child_id = fields.One2many("maintenance.location", "parent_id", "Child Locations") parent_path = fields.Char(index=True) - + latitude = fields.Float(digits=(16, 5)) + longitude = fields.Float(digits=(16, 5)) sequence = fields.Integer(string="Sequence", default=10) + active = fields.Boolean(default=True) @api.depends("name", "parent_id.complete_name") def _compute_complete_name(self): diff --git a/maintenance_location/views/maintenance_equipment.xml b/maintenance_location/views/maintenance_equipment.xml index db04ee6f1..d4c3e431f 100644 --- a/maintenance_location/views/maintenance_equipment.xml +++ b/maintenance_location/views/maintenance_equipment.xml @@ -10,13 +10,9 @@ 1 - - - + + + + + diff --git a/maintenance_location/views/maintenance_plan.xml b/maintenance_location/views/maintenance_plan.xml index e7ccc80ab..ba44e49c9 100644 --- a/maintenance_location/views/maintenance_plan.xml +++ b/maintenance_location/views/maintenance_plan.xml @@ -8,11 +8,7 @@ - + diff --git a/maintenance_location/views/maintenance_request.xml b/maintenance_location/views/maintenance_request.xml index 1a2cc48b0..6538f7eed 100644 --- a/maintenance_location/views/maintenance_request.xml +++ b/maintenance_location/views/maintenance_request.xml @@ -8,11 +8,7 @@ - + @@ -35,7 +31,7 @@ - + From d4915d90b54b5f1555eb5d157a7dc04f74b1892d Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 11 Dec 2023 08:55:58 +0000 Subject: [PATCH 08/22] [UPD] Update maintenance_location.pot --- maintenance_location/README.rst | 2 +- .../i18n/maintenance_location.pot | 121 +++++++++++++----- .../static/description/index.html | 31 +++-- 3 files changed, 104 insertions(+), 50 deletions(-) diff --git a/maintenance_location/README.rst b/maintenance_location/README.rst index 11f55be69..a4b91e8ff 100644 --- a/maintenance_location/README.rst +++ b/maintenance_location/README.rst @@ -7,7 +7,7 @@ Maintenance Location !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:2488123f61dfac3fdb543b1094f3ed92ad84a27c14af2520512ea4475d27ec7a + !! source digest: sha256:4bbadc3f945366acbd515935feaf10cdb5bb59efbfb63117a8fa5d17268cda05 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/maintenance_location/i18n/maintenance_location.pot b/maintenance_location/i18n/maintenance_location.pot index ec990dd3a..609e73f10 100644 --- a/maintenance_location/i18n/maintenance_location.pot +++ b/maintenance_location/i18n/maintenance_location.pot @@ -1,14 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * maintenance_location +# * maintenance_location # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-12 11:56+0000\n" -"PO-Revision-Date: 2019-12-12 11:56+0000\n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -16,82 +14,130 @@ msgstr "" "Plural-Forms: \n" #. module: maintenance_location -#: model:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view -msgid "Location name" +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "" +"
\n" +" Longitude:" +msgstr "" + +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_view_kanban +msgid "" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_child_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__active +msgid "Active" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__child_id msgid "Child Locations" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_complete_name +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__complete_name msgid "Complete Name" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_create_uid +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__create_uid msgid "Created by" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_create_date +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__create_date msgid "Created on" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_display_name -msgid "Display Name" +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__description +msgid "Description" msgstr "" #. module: maintenance_location -#: model:ir.model,name:maintenance_location.model_maintenance_equipment -msgid "Equipment" +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__display_name +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__display_name +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_plan__display_name +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request__display_name +msgid "Display Name" msgstr "" #. module: maintenance_location -#: code:addons/maintenance_location/models/maintenance_location.py:52 +#: code:addons/maintenance_location/models/maintenance_location.py:0 #, python-format msgid "Error ! You cannot create recursive Locations." msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_plan__id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request__id msgid "ID" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location___last_update +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment____last_update +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location____last_update +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_plan____last_update +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request____last_update msgid "Last Modified on" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_write_uid +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__write_uid msgid "Last Updated by" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_write_date +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__write_date msgid "Last Updated on" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_left -msgid "Left Parent" +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__latitude +msgid "Latitude" +msgstr "" + +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "Latitude:" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment_location_id -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request_location_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__location_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_plan__location_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request__location_id +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view msgid "Location" msgstr "" #. module: maintenance_location -#: model:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban +#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban msgid "Location :" msgstr "" +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__location +msgid "Location Old" +msgstr "" + +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "Location name" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__longitude +msgid "Longitude" +msgstr "" + +#. module: maintenance_location +#: model:ir.model,name:maintenance_location.model_maintenance_equipment +msgid "Maintenance Equipment" +msgstr "" + #. module: maintenance_location #: model:ir.actions.act_window,name:maintenance_location.maintenance_location_act_window #: model:ir.model,name:maintenance_location.model_maintenance_location @@ -103,33 +149,42 @@ msgstr "" msgid "Maintenance Locations" msgstr "" +#. module: maintenance_location +#: model:ir.model,name:maintenance_location.model_maintenance_plan +msgid "Maintenance Plan" +msgstr "" + #. module: maintenance_location #: model:ir.model,name:maintenance_location.model_maintenance_request -msgid "Maintenance Requests" +msgid "Maintenance Request" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_name +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__name msgid "Name" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__parent_id msgid "Parent Location" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_partner_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__parent_path +msgid "Parent Path" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__partner_id msgid "Partner" msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_right -msgid "Right Parent" +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__sequence +msgid "Sequence" msgstr "" #. module: maintenance_location -#: model:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view msgid "e.g. Building A" msgstr "" - diff --git a/maintenance_location/static/description/index.html b/maintenance_location/static/description/index.html index 5c6097715..5ea2f7fbc 100644 --- a/maintenance_location/static/description/index.html +++ b/maintenance_location/static/description/index.html @@ -1,20 +1,19 @@ - - + Maintenance Location -
-

Maintenance Location

+
+ + +Odoo Community Association + +
+

Maintenance Location

-

Beta License: AGPL-3 OCA/maintenance Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/maintenance Translate me on Weblate Try me on Runboat

Define a location system with hierarchy for maintenance equipments and requests.

Table of contents

@@ -385,7 +390,7 @@

Maintenance Location

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub 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 @@ -393,16 +398,16 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • CreuBlanca
  • Dixmit
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -433,5 +438,6 @@

Maintainers

+
From 3009ece7680dd29a8b2653ec654d85d0aaf8f34e Mon Sep 17 00:00:00 2001 From: Yann Papouin Date: Mon, 20 Oct 2025 10:05:52 +0200 Subject: [PATCH 18/22] [IMP] maintenance_location: pre-commit execution --- maintenance_location/models/maintenance_location.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/maintenance_location/models/maintenance_location.py b/maintenance_location/models/maintenance_location.py index cd72a3914..2d49a70d9 100644 --- a/maintenance_location/models/maintenance_location.py +++ b/maintenance_location/models/maintenance_location.py @@ -39,9 +39,8 @@ class MaintenanceLocation(models.Model): def _compute_complete_name(self): for location in self: if location.parent_id: - location.complete_name = "{} / {}".format( - location.parent_id.complete_name, - location.name, + location.complete_name = ( + f"{location.parent_id.complete_name} / {location.name}" ) else: location.complete_name = location.name From e6cc61870d13b4a67ae8477885ef57160ec374fc Mon Sep 17 00:00:00 2001 From: Yann Papouin Date: Mon, 20 Oct 2025 10:05:52 +0200 Subject: [PATCH 19/22] [MIG] maintenance_location: Migration to 18.0 --- maintenance_location/__manifest__.py | 2 +- .../models/maintenance_location.py | 4 ++-- .../views/maintenance_equipment.xml | 22 +++++++++---------- .../views/maintenance_location.xml | 12 +++++----- .../views/maintenance_plan.xml | 6 ++--- .../views/maintenance_request.xml | 10 ++++----- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py index df89d39db..0a081252c 100644 --- a/maintenance_location/__manifest__.py +++ b/maintenance_location/__manifest__.py @@ -5,7 +5,7 @@ "name": "Maintenance Location", "summary": """ Define a location system for maintenance""", - "version": "17.0.1.0.0", + "version": "18.0.1.0.0", "license": "AGPL-3", "author": "CreuBlanca, Dixmit,Odoo Community Association (OCA)", "website": "https://github.com/OCA/maintenance", diff --git a/maintenance_location/models/maintenance_location.py b/maintenance_location/models/maintenance_location.py index 2d49a70d9..c94da0f18 100644 --- a/maintenance_location/models/maintenance_location.py +++ b/maintenance_location/models/maintenance_location.py @@ -29,7 +29,7 @@ class MaintenanceLocation(models.Model): ondelete="cascade", ) child_id = fields.One2many("maintenance.location", "parent_id", "Child Locations") - parent_path = fields.Char(index=True, unaccent=False) + parent_path = fields.Char(index=True) latitude = fields.Float(digits=(16, 5)) longitude = fields.Float(digits=(16, 5)) sequence = fields.Integer(default=10) @@ -47,6 +47,6 @@ def _compute_complete_name(self): @api.constrains("parent_id") def _check_category_recursion(self): - if not self._check_recursion(): + if self._has_cycle(): raise ValidationError(_("Error ! You cannot create recursive Locations.")) return True diff --git a/maintenance_location/views/maintenance_equipment.xml b/maintenance_location/views/maintenance_equipment.xml index bdf29e9c2..2f987470d 100644 --- a/maintenance_location/views/maintenance_equipment.xml +++ b/maintenance_location/views/maintenance_equipment.xml @@ -3,7 +3,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - maintenance.equipment.form (in maintenance_location) + maintenance.equipment.form@maintenance_location maintenance.equipment @@ -13,7 +13,7 @@ - + - maintenance.equipment.search (in maintenance_location) + maintenance.equipment.search@maintenance_location maintenance.equipment @@ -34,7 +32,7 @@ - maintenance.equipment.tree (in maintenance_location) + maintenance.equipment.tree@maintenance_location maintenance.equipment @@ -44,16 +42,18 @@ - maintenance.equipment.tree (in maintenance_location) + maintenance.equipment.kanban@maintenance_location maintenance.equipment -
+
- - + + + &nbsp; +
-
+
diff --git a/maintenance_location/views/maintenance_location.xml b/maintenance_location/views/maintenance_location.xml index 311d11c8b..135268954 100644 --- a/maintenance_location/views/maintenance_location.xml +++ b/maintenance_location/views/maintenance_location.xml @@ -3,7 +3,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - maintenance.location.form (in cb_maintenance) + maintenance.location.form@maintenance_location maintenance.location
@@ -28,7 +28,7 @@ - maintenance.location.search (in cb_maintenance) + maintenance.location.search@maintenance_location maintenance.location @@ -37,18 +37,18 @@ - maintenance.location.tree (in cb_maintenance) + maintenance.location.tree@maintenance_location maintenance.location - + - + Maintenance Location maintenance.location - tree,form + list,form [] {} diff --git a/maintenance_location/views/maintenance_plan.xml b/maintenance_location/views/maintenance_plan.xml index ba44e49c9..f95d2e699 100644 --- a/maintenance_location/views/maintenance_plan.xml +++ b/maintenance_location/views/maintenance_plan.xml @@ -3,7 +3,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - maintenance.plan.form (in maintenance_location) + maintenance.plan.form@maintenance_location maintenance.plan @@ -13,7 +13,7 @@ - maintenance.plan.search (in maintenance_location) + maintenance.plan.search@maintenance_location maintenance.plan @@ -23,7 +23,7 @@ - maintenance.plan.tree (in maintenance_location) + maintenance.plan.tree@maintenance_location maintenance.plan diff --git a/maintenance_location/views/maintenance_request.xml b/maintenance_location/views/maintenance_request.xml index e6a849355..1ded7ce50 100644 --- a/maintenance_location/views/maintenance_request.xml +++ b/maintenance_location/views/maintenance_request.xml @@ -3,7 +3,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - maintenance.request.form (in maintenance_location) + maintenance.request.form@maintenance_location maintenance.request @@ -13,7 +13,7 @@ - maintenance.request.search (in maintenance_location) + maintenance.request.search@maintenance_location maintenance.request @@ -26,7 +26,7 @@ - maintenance.request.tree (in maintenance_location) + maintenance.request.tree@maintenance_location maintenance.request @@ -36,7 +36,7 @@ - maintenance.request.kanban (in maintenance_location) + maintenance.request.kanban@maintenance_location maintenance.request @@ -44,7 +44,7 @@ Location :
+ >Location:
From f836d3f4cf2ba9948567ea61f7bda78d0bd40339 Mon Sep 17 00:00:00 2001 From: Yann Papouin Date: Mon, 20 Oct 2025 12:15:26 +0200 Subject: [PATCH 20/22] [IMP] maintenance_location: Add location on request report --- maintenance_location/__manifest__.py | 3 ++- .../views/report_maintenance_request.xml | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 maintenance_location/views/report_maintenance_request.xml diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py index 0a081252c..9bd6b843d 100644 --- a/maintenance_location/__manifest__.py +++ b/maintenance_location/__manifest__.py @@ -11,10 +11,11 @@ "website": "https://github.com/OCA/maintenance", "depends": ["maintenance_plan"], "data": [ + "security/ir.model.access.csv", "views/maintenance_plan.xml", "views/maintenance_equipment.xml", - "security/ir.model.access.csv", "views/maintenance_request.xml", "views/maintenance_location.xml", + "views/report_maintenance_request.xml", ], } diff --git a/maintenance_location/views/report_maintenance_request.xml b/maintenance_location/views/report_maintenance_request.xml new file mode 100644 index 000000000..00eec4787 --- /dev/null +++ b/maintenance_location/views/report_maintenance_request.xml @@ -0,0 +1,16 @@ + + + + From 2c06e5ba832f91385271482371176544d5e63b98 Mon Sep 17 00:00:00 2001 From: Yann Papouin Date: Mon, 20 Oct 2025 12:15:49 +0200 Subject: [PATCH 21/22] [IMP] maintenance_location: Demo data added --- maintenance_location/__manifest__.py | 5 +++ .../demo/demo_maintenance_equipment.xml | 15 ++++++++ .../demo/demo_maintenance_location.xml | 34 +++++++++++++++++++ .../demo/demo_maintenance_plan.xml | 33 ++++++++++++++++++ 4 files changed, 87 insertions(+) create mode 100644 maintenance_location/demo/demo_maintenance_equipment.xml create mode 100644 maintenance_location/demo/demo_maintenance_location.xml create mode 100644 maintenance_location/demo/demo_maintenance_plan.xml diff --git a/maintenance_location/__manifest__.py b/maintenance_location/__manifest__.py index 9bd6b843d..e5e0f616e 100644 --- a/maintenance_location/__manifest__.py +++ b/maintenance_location/__manifest__.py @@ -18,4 +18,9 @@ "views/maintenance_location.xml", "views/report_maintenance_request.xml", ], + "demo": [ + "demo/demo_maintenance_location.xml", + "demo/demo_maintenance_plan.xml", + "demo/demo_maintenance_equipment.xml", + ], } diff --git a/maintenance_location/demo/demo_maintenance_equipment.xml b/maintenance_location/demo/demo_maintenance_equipment.xml new file mode 100644 index 000000000..86f72929e --- /dev/null +++ b/maintenance_location/demo/demo_maintenance_equipment.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/maintenance_location/demo/demo_maintenance_location.xml b/maintenance_location/demo/demo_maintenance_location.xml new file mode 100644 index 000000000..50f84e1ac --- /dev/null +++ b/maintenance_location/demo/demo_maintenance_location.xml @@ -0,0 +1,34 @@ + + + + Building A + Main office building + + + + Level 1 + + + + + Level 2 + + + + + Building B + Secondary building + + + + Warehouse + Storage and logistics area + + + + + Workshop + Maintenance and repair workshop + + + diff --git a/maintenance_location/demo/demo_maintenance_plan.xml b/maintenance_location/demo/demo_maintenance_plan.xml new file mode 100644 index 000000000..74a92c369 --- /dev/null +++ b/maintenance_location/demo/demo_maintenance_plan.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + From ae4e82168aad0463518a4adeffadf6376c7d8d82 Mon Sep 17 00:00:00 2001 From: Yann Papouin Date: Tue, 21 Oct 2025 13:41:52 +0200 Subject: [PATCH 22/22] [I18N] maintenance_plan: Translation manual update Fix oca-checks-po:po-duplicate-model-definition --- maintenance_location/i18n/es.po | 162 +++++++++++++----- maintenance_location/i18n/it.po | 48 +++--- .../i18n/maintenance_location.pot | 25 ++- 3 files changed, 163 insertions(+), 72 deletions(-) diff --git a/maintenance_location/i18n/es.po b/maintenance_location/i18n/es.po index 4e3f9dd5e..cd8488ba5 100644 --- a/maintenance_location/i18n/es.po +++ b/maintenance_location/i18n/es.po @@ -6,94 +6,144 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-12 11:56+0000\n" -"PO-Revision-Date: 2019-12-12 13:00+0100\n" +"POT-Creation-Date: 2025-10-21 09:56+0000\n" +"PO-Revision-Date: 2025-10-21 13:38+0200\n" "Last-Translator: <>\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: \n" -"Language: es\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 3.7\n" #. module: maintenance_location -#: model:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view -msgid "Location name" -msgstr "Nombre de la ubicación" +#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_view_kanban +msgid "&nbsp;" +msgstr "" + +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "" +"
\n" +" Longitude:" +msgstr "" + +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_view_kanban +msgid "" +msgstr "" + +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.report_maintenance_request_document +msgid "Location:" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__active +msgid "Active" +msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_child_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__child_id msgid "Child Locations" msgstr "Ubicaciones Hijas" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_complete_name +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__complete_name msgid "Complete Name" msgstr "Nombre completo" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_create_uid +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__create_uid msgid "Created by" msgstr "Creado por" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_create_date +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__create_date msgid "Created on" msgstr "Creado en" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_display_name -msgid "Display Name" -msgstr "Nombre mostrado" +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__description +msgid "Description" +msgstr "" #. module: maintenance_location -#: model:ir.model,name:maintenance_location.model_maintenance_equipment -msgid "Equipment" -msgstr "Equipamiento" +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__display_name +msgid "Display Name" +msgstr "Nombre mostrado" #. module: maintenance_location -#: code:addons/maintenance_location/models/maintenance_location.py:52 -#, python-format +#. odoo-python +#: code:addons/maintenance_location/models/maintenance_location.py:0 msgid "Error ! You cannot create recursive Locations." msgstr "Error! No puedes crear ubicaciones cíclicas." #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__id msgid "ID" msgstr "ID (identificación)" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location___last_update -msgid "Last Modified on" -msgstr "Última modificación en" - -#. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_write_uid +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__write_uid msgid "Last Updated by" msgstr "Última actualización de" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_write_date +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__write_date msgid "Last Updated on" msgstr "Última actualización en" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_left -msgid "Left Parent" -msgstr "Padre izquierdo" +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__latitude +msgid "Latitude" +msgstr "" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment_location_id -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request_location_id +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "Latitude:" +msgstr "" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__location_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_plan__location_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request__location_id +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view msgid "Location" msgstr "Ubicación" #. module: maintenance_location -#: model:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban -msgid "Location :" +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__location +#, fuzzy +#| msgid "Location :" +msgid "Location Old" +msgstr "Location :" + +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +msgid "Location name" +msgstr "Nombre de la ubicación" + +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban +#, fuzzy +#| msgid "Location :" +msgid "Location:" msgstr "Location :" +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__longitude +msgid "Longitude" +msgstr "" + +#. module: maintenance_location +#: model:ir.model,name:maintenance_location.model_maintenance_equipment +#, fuzzy +#| msgid "Maintenance Requests" +msgid "Maintenance Equipment" +msgstr "Peticiones de mantenimiento" + #. module: maintenance_location #: model:ir.actions.act_window,name:maintenance_location.maintenance_location_act_window #: model:ir.model,name:maintenance_location.model_maintenance_location @@ -105,32 +155,60 @@ msgstr "Ubicación" msgid "Maintenance Locations" msgstr "Ubicaciones" +#. module: maintenance_location +#: model:ir.model,name:maintenance_location.model_maintenance_plan +#, fuzzy +#| msgid "Maintenance Location" +msgid "Maintenance Plan" +msgstr "Ubicación" + #. module: maintenance_location #: model:ir.model,name:maintenance_location.model_maintenance_request -msgid "Maintenance Requests" +#, fuzzy +#| msgid "Maintenance Requests" +msgid "Maintenance Request" msgstr "Peticiones de mantenimiento" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_name +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__name msgid "Name" msgstr "Nombre" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__parent_id msgid "Parent Location" msgstr "Ubicación padre" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_partner_id +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__parent_path +#, fuzzy +#| msgid "Parent Location" +msgid "Parent Path" +msgstr "Ubicación padre" + +#. module: maintenance_location +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__partner_id msgid "Partner" msgstr "Centro" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location_parent_right -msgid "Right Parent" -msgstr "Padre derecho" +#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__sequence +msgid "Sequence" +msgstr "" #. module: maintenance_location -#: model:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view +#: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view msgid "e.g. Building A" msgstr "p.e. Edificio A" + +#~ msgid "Equipment" +#~ msgstr "Equipamiento" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificación en" + +#~ msgid "Left Parent" +#~ msgstr "Padre izquierdo" + +#~ msgid "Right Parent" +#~ msgstr "Padre derecho" diff --git a/maintenance_location/i18n/it.po b/maintenance_location/i18n/it.po index e20f612ca..bf4f38504 100644 --- a/maintenance_location/i18n/it.po +++ b/maintenance_location/i18n/it.po @@ -6,15 +6,21 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-12-19 15:34+0000\n" +"POT-Creation-Date: 2025-10-21 09:56+0000\n" +"PO-Revision-Date: 2025-10-21 13:39+0200\n" "Last-Translator: mymage \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" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" +"X-Generator: Poedit 3.7\n" + +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_view_kanban +msgid "&nbsp;" +msgstr "" #. module: maintenance_location #: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view @@ -30,6 +36,11 @@ msgstr "" msgid "" msgstr "" +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.report_maintenance_request_document +msgid "Location:" +msgstr "" + #. module: maintenance_location #: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__active msgid "Active" @@ -61,35 +72,21 @@ msgid "Description" msgstr "Descrizione" #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__display_name #: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__display_name -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_plan__display_name -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request__display_name msgid "Display Name" msgstr "Nome visualizzato" #. module: maintenance_location +#. odoo-python #: code:addons/maintenance_location/models/maintenance_location.py:0 -#, python-format msgid "Error ! You cannot create recursive Locations." msgstr "Errore! Non è possibile creare ubicazioni ricorsive." #. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__id #: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__id -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_plan__id -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request__id msgid "ID" msgstr "ID" -#. module: maintenance_location -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment____last_update -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location____last_update -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_plan____last_update -#: model:ir.model.fields,field_description:maintenance_location.field_maintenance_request____last_update -msgid "Last Modified on" -msgstr "Ultima modifica il" - #. module: maintenance_location #: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__write_uid msgid "Last Updated by" @@ -118,11 +115,6 @@ msgstr "Latitudine:" msgid "Location" msgstr "Ubicazione" -#. module: maintenance_location -#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban -msgid "Location :" -msgstr "Ubicazione:" - #. module: maintenance_location #: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__location msgid "Location Old" @@ -133,6 +125,13 @@ msgstr "Ubicazione vecchia" msgid "Location name" msgstr "Nome ubicazione" +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban +#, fuzzy +#| msgid "Location :" +msgid "Location:" +msgstr "Ubicazione:" + #. module: maintenance_location #: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__longitude msgid "Longitude" @@ -193,3 +192,6 @@ msgstr "Sequenza" #: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view msgid "e.g. Building A" msgstr "e.g. Fabbricato A" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" diff --git a/maintenance_location/i18n/maintenance_location.pot b/maintenance_location/i18n/maintenance_location.pot index fcab2f9ff..ebc62b9ce 100644 --- a/maintenance_location/i18n/maintenance_location.pot +++ b/maintenance_location/i18n/maintenance_location.pot @@ -4,8 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 17.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-10-21 09:56+0000\n" +"PO-Revision-Date: 2025-10-21 09:56+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -13,6 +15,11 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_view_kanban +msgid "&nbsp;" +msgstr "" + #. module: maintenance_location #: model_terms:ir.ui.view,arch_db:maintenance_location.maintenance_location_form_view msgid "" @@ -25,6 +32,11 @@ msgstr "" msgid "" msgstr "" +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.report_maintenance_request_document +msgid "Location:" +msgstr "" + #. module: maintenance_location #: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__active msgid "Active" @@ -63,7 +75,6 @@ msgstr "" #. module: maintenance_location #. odoo-python #: code:addons/maintenance_location/models/maintenance_location.py:0 -#, python-format msgid "Error ! You cannot create recursive Locations." msgstr "" @@ -100,11 +111,6 @@ msgstr "" msgid "Location" msgstr "" -#. module: maintenance_location -#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban -msgid "Location :" -msgstr "" - #. module: maintenance_location #: model:ir.model.fields,field_description:maintenance_location.field_maintenance_equipment__location msgid "Location Old" @@ -115,6 +121,11 @@ msgstr "" msgid "Location name" msgstr "" +#. module: maintenance_location +#: model_terms:ir.ui.view,arch_db:maintenance_location.hr_equipment_request_view_kanban +msgid "Location:" +msgstr "" + #. module: maintenance_location #: model:ir.model.fields,field_description:maintenance_location.field_maintenance_location__longitude msgid "Longitude"