From 6d0bb7c4bb975f9bbbdfe138946770941f1b0de8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?=
Date: Wed, 6 Mar 2024 17:07:18 +0100
Subject: [PATCH] [MIG] fleet_vehicle_log_fuel: Migration to 16.0
TT48096
---
fleet_vehicle_log_fuel/README.rst | 18 ++-
fleet_vehicle_log_fuel/__manifest__.py | 8 +-
fleet_vehicle_log_fuel/i18n/es.po | 72 ++++-------
.../i18n/fleet_vehicle_log_fuel.pot | 60 ++++-----
fleet_vehicle_log_fuel/i18n/it.po | 6 -
fleet_vehicle_log_fuel/i18n/pt_BR.po | 6 -
.../models/fleet_vehicle.py | 21 ++--
.../models/fleet_vehicle_log_fuel.py | 117 ++++++++++++------
.../readme/CONTRIBUTORS.rst | 5 +
.../security/fleet_security.xml | 5 +
.../static/description/index.html | 16 ++-
fleet_vehicle_log_fuel/tests/__init__.py | 1 +
fleet_vehicle_log_fuel/tests/common.py | 24 ++++
.../tests/test_fleet_vehicle_log_fuel.py | 94 ++++++++++++++
...s.xml => fleet_vehicle_log_fuel_views.xml} | 48 ++++---
.../views/fleet_vehicle_views.xml | 2 -
16 files changed, 330 insertions(+), 173 deletions(-)
create mode 100644 fleet_vehicle_log_fuel/tests/__init__.py
create mode 100644 fleet_vehicle_log_fuel/tests/common.py
create mode 100644 fleet_vehicle_log_fuel/tests/test_fleet_vehicle_log_fuel.py
rename fleet_vehicle_log_fuel/views/{fleet_vehicle_cost_views.xml => fleet_vehicle_log_fuel_views.xml} (83%)
diff --git a/fleet_vehicle_log_fuel/README.rst b/fleet_vehicle_log_fuel/README.rst
index 1e4518a7..6db09640 100644
--- a/fleet_vehicle_log_fuel/README.rst
+++ b/fleet_vehicle_log_fuel/README.rst
@@ -7,7 +7,7 @@ Fleet Vehicle Log Fuel
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:5c2c844dd3f4a8486251e46da663327385b9e7026e9370cc9e62d2bbb7175bdf
+ !! source digest: sha256:1c7da63ec09d49cf85859f6ca3a31fcb5ea46266d54e8b03fbffaf82d1c53ee3
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -17,13 +17,13 @@ Fleet Vehicle Log Fuel
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ffleet-lightgray.png?logo=github
- :target: https://github.com/OCA/fleet/tree/15.0/fleet_vehicle_log_fuel
+ :target: https://github.com/OCA/fleet/tree/16.0/fleet_vehicle_log_fuel
:alt: OCA/fleet
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/fleet-15-0/fleet-15-0-fleet_vehicle_log_fuel
+ :target: https://translation.odoo-community.org/projects/fleet-16-0/fleet-16-0-fleet_vehicle_log_fuel
: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/fleet&target_branch=15.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/fleet&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -41,7 +41,7 @@ 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -52,11 +52,17 @@ Authors
~~~~~~~
* ForgeFlow
+* Tecnativa
Contributors
~~~~~~~~~~~~
* Miquel Raïch
+* `Tecnativa `_:
+
+ * Víctor Martínez
+ * Pedro M. Baeza
+ * Carolina Fernandez
Maintainers
~~~~~~~~~~~
@@ -71,6 +77,6 @@ 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/fleet `_ project on GitHub.
+This module is part of the `OCA/fleet `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/fleet_vehicle_log_fuel/__manifest__.py b/fleet_vehicle_log_fuel/__manifest__.py
index a8577a60..17fab39f 100644
--- a/fleet_vehicle_log_fuel/__manifest__.py
+++ b/fleet_vehicle_log_fuel/__manifest__.py
@@ -4,9 +4,9 @@
{
"name": "Fleet Vehicle Log Fuel",
"summary": "Add Log Fuels for your vehicles.",
- "version": "15.0.2.0.0",
- "category": "Human Resources/Fleet",
- "author": "ForgeFlow, Odoo Community Association (OCA)",
+ "version": "16.0.1.0.0",
+ "category": "Fleet",
+ "author": "ForgeFlow, Tecnativa, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/fleet",
"license": "AGPL-3",
"depends": ["fleet"],
@@ -14,7 +14,7 @@
"security/ir.model.access.csv",
"security/fleet_security.xml",
"views/fleet_board_view.xml",
- "views/fleet_vehicle_cost_views.xml",
+ "views/fleet_vehicle_log_fuel_views.xml",
"views/fleet_vehicle_views.xml",
],
"installable": True,
diff --git a/fleet_vehicle_log_fuel/i18n/es.po b/fleet_vehicle_log_fuel/i18n/es.po
index d9fe97b5..100c696d 100644
--- a/fleet_vehicle_log_fuel/i18n/es.po
+++ b/fleet_vehicle_log_fuel/i18n/es.po
@@ -6,16 +6,16 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-14 10:08+0000\n"
-"PO-Revision-Date: 2023-10-12 11:38+0000\n"
+"POT-Creation-Date: 2024-03-07 07:33+0000\n"
+"PO-Revision-Date: 2024-03-07 08:35+0100\n"
"Last-Translator: Ivorra78 \n"
"Language-Team: \n"
"Language: es\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.0.1\n"
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_needaction
@@ -58,6 +58,11 @@ msgstr "Archivado"
msgid "Attachment Count"
msgstr "Conteo de archivos adjuntos"
+#. module: fleet_vehicle_log_fuel
+#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
+msgid "Cancel"
+msgstr "Cancelar"
+
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields.selection,name:fleet_vehicle_log_fuel.selection__fleet_vehicle_log_fuel__state__cancelled
msgid "Cancelled"
@@ -87,7 +92,7 @@ msgstr "Coste"
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_cost_report__cost_type
msgid "Cost Type"
-msgstr ""
+msgstr "Tipo de coste"
#. module: fleet_vehicle_log_fuel
#: model_terms:ir.actions.act_window,help:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_action
@@ -131,6 +136,7 @@ msgstr "Nombre mostrado"
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields.selection,name:fleet_vehicle_log_fuel.selection__fleet_vehicle_log_fuel__state__done
+#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
msgid "Done"
msgstr "Hecho"
@@ -140,6 +146,7 @@ msgid "Driver"
msgstr "Conductor"
#. module: fleet_vehicle_log_fuel
+#. odoo-python
#: code:addons/fleet_vehicle_log_fuel/models/fleet_vehicle_log_fuel.py:0
#, python-format
msgid "Emptying the odometer value of a vehicle is not allowed."
@@ -235,7 +242,6 @@ msgstr "Icono para indicar una actividad de excepción."
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_needaction
-#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_unread
msgid "If checked, new messages require your attention."
msgstr "Si está marcado hay nuevos mensajes que requieren su atención."
@@ -290,11 +296,6 @@ msgstr "Mensajes"
msgid "My Activity Deadline"
msgstr "Fecha Límite de Mi Actividad"
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__activity_calendar_event_id
-msgid "Next Activity Calendar Event"
-msgstr "Próximo evento del calendario de actividades"
-
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__activity_date_deadline
msgid "Next Activity Deadline"
@@ -328,7 +329,7 @@ msgstr "Número de errores"
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_needaction_counter
-msgid "Number of messages which requires an action"
+msgid "Number of messages requiring action"
msgstr "Número de mensajes que requieren una acción"
#. module: fleet_vehicle_log_fuel
@@ -336,11 +337,6 @@ msgstr "Número de mensajes que requieren una acción"
msgid "Number of messages with delivery error"
msgstr "Número de mensajes con error de envío"
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_unread_counter
-msgid "Number of unread messages"
-msgstr "Número de mensajes no leidos"
-
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__odometer_id
msgid "Odometer"
@@ -369,14 +365,25 @@ msgstr "Usuario responsable"
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields.selection,name:fleet_vehicle_log_fuel.selection__fleet_vehicle_log_fuel__state__running
+#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
msgid "Running"
msgstr "En proceso"
+#. module: fleet_vehicle_log_fuel
+#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__service_id
+msgid "Service"
+msgstr "Servicio"
+
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__service_type_id
msgid "Service Type"
msgstr "Tipo de Servicio"
+#. module: fleet_vehicle_log_fuel
+#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
+msgid "Set to Todo"
+msgstr "Marcar como Por hacer"
+
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__state
msgid "Stage"
@@ -415,21 +422,6 @@ msgstr "Tipo de actividad de excepción registrada."
msgid "Unit"
msgstr "Unidad"
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__odometer_unit
-msgid "Unit of the odometer "
-msgstr "Unidad del odómetro "
-
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_unread
-msgid "Unread Messages"
-msgstr "Mensajes sin leer"
-
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_unread_counter
-msgid "Unread Messages Counter"
-msgstr "Contador de mensajes sin leer"
-
#. module: fleet_vehicle_log_fuel
#: model:ir.model,name:fleet_vehicle_log_fuel.model_fleet_vehicle
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__vehicle_id
@@ -451,16 +443,6 @@ msgstr "Proveedor"
msgid "Vendor Reference"
msgstr "Referencia de proveedor"
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__website_message_ids
-msgid "Website Messages"
-msgstr "Mensajes de la Página web"
-
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__website_message_ids
-msgid "Website communication history"
-msgstr "Historial de la comunicación en la web"
-
#. module: fleet_vehicle_log_fuel
#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
msgid "Write here any other information related to the service completed."
@@ -472,9 +454,3 @@ msgstr ""
#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_view_form
msgid "show the fuel logs for this vehicle"
msgstr "mostrar los registros de combustible para este vehículo"
-
-#~ msgid "SMS Delivery error"
-#~ msgstr "Error en la entrega del SMS"
-
-#~ msgid "Followers (Channels)"
-#~ msgstr "Seguidores (Canales)"
diff --git a/fleet_vehicle_log_fuel/i18n/fleet_vehicle_log_fuel.pot b/fleet_vehicle_log_fuel/i18n/fleet_vehicle_log_fuel.pot
index e49758ba..d2a4d29e 100644
--- a/fleet_vehicle_log_fuel/i18n/fleet_vehicle_log_fuel.pot
+++ b/fleet_vehicle_log_fuel/i18n/fleet_vehicle_log_fuel.pot
@@ -4,8 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 15.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-03-07 07:33+0000\n"
+"PO-Revision-Date: 2024-03-07 07:33+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -54,6 +56,11 @@ msgstr ""
msgid "Attachment Count"
msgstr ""
+#. module: fleet_vehicle_log_fuel
+#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
+msgid "Cancel"
+msgstr ""
+
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields.selection,name:fleet_vehicle_log_fuel.selection__fleet_vehicle_log_fuel__state__cancelled
msgid "Cancelled"
@@ -127,6 +134,7 @@ msgstr ""
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields.selection,name:fleet_vehicle_log_fuel.selection__fleet_vehicle_log_fuel__state__done
+#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
msgid "Done"
msgstr ""
@@ -136,6 +144,7 @@ msgid "Driver"
msgstr ""
#. module: fleet_vehicle_log_fuel
+#. odoo-python
#: code:addons/fleet_vehicle_log_fuel/models/fleet_vehicle_log_fuel.py:0
#, python-format
msgid "Emptying the odometer value of a vehicle is not allowed."
@@ -229,7 +238,6 @@ msgstr ""
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_needaction
-#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_unread
msgid "If checked, new messages require your attention."
msgstr ""
@@ -284,11 +292,6 @@ msgstr ""
msgid "My Activity Deadline"
msgstr ""
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__activity_calendar_event_id
-msgid "Next Activity Calendar Event"
-msgstr ""
-
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__activity_date_deadline
msgid "Next Activity Deadline"
@@ -322,7 +325,7 @@ msgstr ""
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_needaction_counter
-msgid "Number of messages which requires an action"
+msgid "Number of messages requiring action"
msgstr ""
#. module: fleet_vehicle_log_fuel
@@ -330,11 +333,6 @@ msgstr ""
msgid "Number of messages with delivery error"
msgstr ""
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_unread_counter
-msgid "Number of unread messages"
-msgstr ""
-
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__odometer_id
msgid "Odometer"
@@ -363,14 +361,25 @@ msgstr ""
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields.selection,name:fleet_vehicle_log_fuel.selection__fleet_vehicle_log_fuel__state__running
+#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
msgid "Running"
msgstr ""
+#. module: fleet_vehicle_log_fuel
+#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__service_id
+msgid "Service"
+msgstr ""
+
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__service_type_id
msgid "Service Type"
msgstr ""
+#. module: fleet_vehicle_log_fuel
+#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
+msgid "Set to Todo"
+msgstr ""
+
#. module: fleet_vehicle_log_fuel
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__state
msgid "Stage"
@@ -405,21 +414,6 @@ msgstr ""
msgid "Unit"
msgstr ""
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__odometer_unit
-msgid "Unit of the odometer "
-msgstr ""
-
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_unread
-msgid "Unread Messages"
-msgstr ""
-
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__message_unread_counter
-msgid "Unread Messages Counter"
-msgstr ""
-
#. module: fleet_vehicle_log_fuel
#: model:ir.model,name:fleet_vehicle_log_fuel.model_fleet_vehicle
#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__vehicle_id
@@ -441,16 +435,6 @@ msgstr ""
msgid "Vendor Reference"
msgstr ""
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,field_description:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__website_message_ids
-msgid "Website Messages"
-msgstr ""
-
-#. module: fleet_vehicle_log_fuel
-#: model:ir.model.fields,help:fleet_vehicle_log_fuel.field_fleet_vehicle_log_fuel__website_message_ids
-msgid "Website communication history"
-msgstr ""
-
#. module: fleet_vehicle_log_fuel
#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_log_fuel_view_form
msgid "Write here any other information related to the service completed."
diff --git a/fleet_vehicle_log_fuel/i18n/it.po b/fleet_vehicle_log_fuel/i18n/it.po
index 66d2da62..098d0479 100644
--- a/fleet_vehicle_log_fuel/i18n/it.po
+++ b/fleet_vehicle_log_fuel/i18n/it.po
@@ -468,9 +468,3 @@ msgstr "Indicare qui ogni altra informazione relativa al servizio completato."
#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_view_form
msgid "show the fuel logs for this vehicle"
msgstr "visualizza i registri carburante per questo veicolo"
-
-#~ msgid "SMS Delivery error"
-#~ msgstr "Errore consegna SMS"
-
-#~ msgid "Followers (Channels)"
-#~ msgstr "Seguito da (canali)"
diff --git a/fleet_vehicle_log_fuel/i18n/pt_BR.po b/fleet_vehicle_log_fuel/i18n/pt_BR.po
index 05660d91..0daf6977 100644
--- a/fleet_vehicle_log_fuel/i18n/pt_BR.po
+++ b/fleet_vehicle_log_fuel/i18n/pt_BR.po
@@ -469,9 +469,3 @@ msgstr ""
#: model_terms:ir.ui.view,arch_db:fleet_vehicle_log_fuel.fleet_vehicle_view_form
msgid "show the fuel logs for this vehicle"
msgstr "mostrar os registros de combustível para este veículo"
-
-#~ msgid "SMS Delivery error"
-#~ msgstr "Erro no envio de SMS"
-
-#~ msgid "Followers (Channels)"
-#~ msgstr "Seguidores (Canais)"
diff --git a/fleet_vehicle_log_fuel/models/fleet_vehicle.py b/fleet_vehicle_log_fuel/models/fleet_vehicle.py
index 8c47375b..ac5465b8 100644
--- a/fleet_vehicle_log_fuel/models/fleet_vehicle.py
+++ b/fleet_vehicle_log_fuel/models/fleet_vehicle.py
@@ -2,21 +2,26 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-from odoo import fields, models
+from odoo import api, fields, models
class FleetVehicle(models.Model):
_inherit = "fleet.vehicle"
log_fuels = fields.One2many("fleet.vehicle.log.fuel", "vehicle_id", "Fuel Logs")
- fuel_count = fields.Integer(compute="_compute_count_all", string="Fuel Log Count")
-
- def _compute_count_all(self):
- super()._compute_count_all()
- LogFuel = self.env["fleet.vehicle.log.fuel"]
+ fuel_count = fields.Integer(compute="_compute_fuel_count", string="Fuel Log Count")
+
+ @api.depends("log_fuels")
+ def _compute_fuel_count(self):
+ res = self.env["fleet.vehicle.log.fuel"].read_group(
+ domain=[("vehicle_id", "in", self.ids)],
+ fields=["vehicle_id"],
+ groupby=["vehicle_id"],
+ )
+ res_dict = {x["vehicle_id"][0]: x["vehicle_id_count"] for x in res}
for record in self:
- record.fuel_count = LogFuel.search_count([("vehicle_id", "=", record.id)])
- return
+ record.fuel_count = res_dict.get(record.id, 0)
+ return res
def action_view_log_fuel(self):
action = self.env["ir.actions.act_window"]._for_xml_id(
diff --git a/fleet_vehicle_log_fuel/models/fleet_vehicle_log_fuel.py b/fleet_vehicle_log_fuel/models/fleet_vehicle_log_fuel.py
index 5b8bfa41..1ec855ab 100644
--- a/fleet_vehicle_log_fuel/models/fleet_vehicle_log_fuel.py
+++ b/fleet_vehicle_log_fuel/models/fleet_vehicle_log_fuel.py
@@ -1,4 +1,5 @@
# Copyright 2022 ForgeFlow S.L.
+# Copyright 2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import _, api, fields, models
@@ -11,28 +12,41 @@ class FleetVehicleLogFuel(models.Model):
_rec_name = "service_type_id"
_description = "Fuel log for vehicles"
+ READONLY_STATES = {
+ "running": [("readonly", True)],
+ "done": [("readonly", True)],
+ "cancel": [("readonly", True)],
+ }
+
active = fields.Boolean(default=True)
vehicle_id = fields.Many2one(
- "fleet.vehicle", "Vehicle", required=True, help="Vehicle concerned by this log"
+ "fleet.vehicle",
+ "Vehicle",
+ required=True,
+ help="Vehicle concerned by this log",
+ states=READONLY_STATES,
)
- amount = fields.Monetary("Cost")
- description = fields.Char()
+ amount = fields.Monetary("Cost", states=READONLY_STATES)
+ description = fields.Char(states=READONLY_STATES)
odometer_id = fields.Many2one(
"fleet.vehicle.odometer",
"Odometer",
help="Odometer measure of the vehicle at the moment of this log",
+ states=READONLY_STATES,
)
odometer = fields.Float(
compute="_compute_odometer",
+ store=True,
inverse="_inverse_odometer",
string="Odometer Value",
help="Odometer measure of the vehicle at the moment of this log",
+ states=READONLY_STATES,
)
- odometer_unit = fields.Selection(
- related="vehicle_id.odometer_unit", string="Unit", readonly=True
- )
+ odometer_unit = fields.Selection(related="vehicle_id.odometer_unit", string="Unit")
date = fields.Date(
- help="Date when the cost has been executed", default=fields.Date.context_today
+ help="Date when the cost has been executed",
+ default=fields.Date.context_today,
+ states=READONLY_STATES,
)
company_id = fields.Many2one(
"res.company", "Company", default=lambda self: self.env.company
@@ -42,11 +56,11 @@ class FleetVehicleLogFuel(models.Model):
"res.partner",
string="Driver",
compute="_compute_purchaser_id",
- readonly=False,
store=True,
+ states=READONLY_STATES,
)
- inv_ref = fields.Char("Vendor Reference")
- vendor_id = fields.Many2one("res.partner", "Vendor")
+ inv_ref = fields.Char("Vendor Reference", states=READONLY_STATES)
+ vendor_id = fields.Many2one("res.partner", "Vendor", states=READONLY_STATES)
notes = fields.Text()
service_type_id = fields.Many2one(
"fleet.service.type",
@@ -55,6 +69,7 @@ class FleetVehicleLogFuel(models.Model):
default=lambda self: self.env.ref(
"fleet.type_service_refueling", raise_if_not_found=False
),
+ states=READONLY_STATES,
)
state = fields.Selection(
[
@@ -66,8 +81,11 @@ class FleetVehicleLogFuel(models.Model):
default="todo",
string="Stage",
)
- liter = fields.Float()
- price_per_liter = fields.Float()
+ liter = fields.Float(states=READONLY_STATES)
+ price_per_liter = fields.Float(states=READONLY_STATES)
+ service_id = fields.Many2one(
+ comodel_name="fleet.vehicle.log.services", readonly=True, copy=False
+ )
@api.onchange("liter", "price_per_liter", "amount")
def _onchange_liter_price_amount(self):
@@ -89,38 +107,63 @@ def _onchange_liter_price_amount(self):
):
self.liter = round(amount / price_per_liter, 2)
+ @api.depends("odometer_id", "odometer_id.value")
def _compute_odometer(self):
- self.odometer = 0
- for record in self:
- if record.odometer_id:
- record.odometer = record.odometer_id.value
+ for record in self.filtered("odometer_id"):
+ record.odometer = record.odometer_id.value
def _inverse_odometer(self):
+ if any(not x.odometer for x in self):
+ raise UserError(
+ _("Emptying the odometer value of a vehicle is not allowed.")
+ )
for record in self:
- if not record.odometer:
- raise UserError(
- _("Emptying the odometer value of a vehicle is not allowed.")
- )
- odometer = self.env["fleet.vehicle.odometer"].create(
- {
- "value": record.odometer,
- "date": record.date or fields.Date.context_today(record),
- "vehicle_id": record.vehicle_id.id,
- }
+ self.odometer_id = self.env["fleet.vehicle.odometer"].create(
+ record._prepare_fleet_vehicle_odometer_vals()
)
- self.odometer_id = odometer
-
- @api.model_create_multi
- def create(self, vals_list):
- for data in vals_list:
- if "odometer" in data and not data["odometer"]:
- # if received value for odometer is 0, then remove it from the
- # data as it would result to the creation of an odometer log with 0,
- # which is to be avoided
- del data["odometer"]
- return super().create(vals_list)
@api.depends("vehicle_id")
def _compute_purchaser_id(self):
for service in self:
service.purchaser_id = service.vehicle_id.driver_id
+
+ def button_running(self):
+ self.filtered(lambda x: x.state == "todo").state = "running"
+ return True
+
+ def _prepare_fleet_vehicle_odometer_vals(self):
+ return {
+ "value": self.odometer,
+ "date": self.date or fields.Date.context_today(self),
+ "vehicle_id": self.vehicle_id.id,
+ }
+
+ def _prepare_fleet_vehicle_log_services_vals(self):
+ return {
+ "service_type_id": self.service_type_id.id,
+ "description": self.description,
+ "vehicle_id": self.vehicle_id.id,
+ "amount": self.amount,
+ "odometer": self.odometer,
+ "vendor_id": self.vendor_id.id if self.vendor_id else False,
+ "state": "done",
+ }
+
+ def button_todo(self):
+ records = self.filtered(lambda x: x.state == "cancelled")
+ records.state = "todo"
+ return True
+
+ def button_done(self):
+ for item in self.filtered(lambda x: x.state == "running"):
+ item.service_id = self.env["fleet.vehicle.log.services"].create(
+ self._prepare_fleet_vehicle_log_services_vals()
+ )
+ item.state = "done"
+ return True
+
+ def button_cancel(self):
+ records = self.filtered(lambda x: x.state in ["todo", "running", "done"])
+ records.mapped("service_id").sudo().unlink()
+ records.state = "cancelled"
+ return True
diff --git a/fleet_vehicle_log_fuel/readme/CONTRIBUTORS.rst b/fleet_vehicle_log_fuel/readme/CONTRIBUTORS.rst
index 37c5e66c..594100f4 100644
--- a/fleet_vehicle_log_fuel/readme/CONTRIBUTORS.rst
+++ b/fleet_vehicle_log_fuel/readme/CONTRIBUTORS.rst
@@ -1 +1,6 @@
* Miquel Raïch
+* `Tecnativa `_:
+
+ * Víctor Martínez
+ * Pedro M. Baeza
+ * Carolina Fernandez
diff --git a/fleet_vehicle_log_fuel/security/fleet_security.xml b/fleet_vehicle_log_fuel/security/fleet_security.xml
index 3a57e225..90191fe4 100644
--- a/fleet_vehicle_log_fuel/security/fleet_security.xml
+++ b/fleet_vehicle_log_fuel/security/fleet_security.xml
@@ -16,5 +16,10 @@
Administrator has all rights on vehicle's fuel log
+ [(1, '=', 1)]
+
+
+
+
diff --git a/fleet_vehicle_log_fuel/static/description/index.html b/fleet_vehicle_log_fuel/static/description/index.html
index 817cd41a..a8ddbc27 100644
--- a/fleet_vehicle_log_fuel/static/description/index.html
+++ b/fleet_vehicle_log_fuel/static/description/index.html
@@ -1,3 +1,4 @@
+
@@ -366,9 +367,9 @@ Fleet Vehicle Log Fuel
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:5c2c844dd3f4a8486251e46da663327385b9e7026e9370cc9e62d2bbb7175bdf
+!! source digest: sha256:1c7da63ec09d49cf85859f6ca3a31fcb5ea46266d54e8b03fbffaf82d1c53ee3
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module adds fuel logs in a similar way as services.
Table of contents
@@ -387,7 +388,7 @@
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 .
+
feedback .
Do not contact contributors directly about support or help with technical issues.
@@ -411,7 +419,7 @@
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/fleet project on GitHub.
+
This module is part of the OCA/fleet project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute .
diff --git a/fleet_vehicle_log_fuel/tests/__init__.py b/fleet_vehicle_log_fuel/tests/__init__.py
new file mode 100644
index 00000000..bab7a1ec
--- /dev/null
+++ b/fleet_vehicle_log_fuel/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_fleet_vehicle_log_fuel
diff --git a/fleet_vehicle_log_fuel/tests/common.py b/fleet_vehicle_log_fuel/tests/common.py
new file mode 100644
index 00000000..4ac4f8a0
--- /dev/null
+++ b/fleet_vehicle_log_fuel/tests/common.py
@@ -0,0 +1,24 @@
+# Copyright 2024 Tecnativa - Víctor Martínez
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl
+from odoo.addons.base.tests.common import BaseCommon
+
+
+class TestFleetVehicleLogFuelBase(BaseCommon):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.driver = cls.env["res.partner"].create({"name": "Test Driver"})
+ cls.brand = cls.env["fleet.vehicle.model.brand"].create({"name": "Test brand"})
+ cls.model = cls.env["fleet.vehicle.model"].create(
+ {
+ "name": "Test model",
+ "brand_id": cls.brand.id,
+ }
+ )
+ cls.vehicle = cls.env["fleet.vehicle"].create(
+ {
+ "model_id": cls.model.id,
+ "driver_id": cls.driver.id,
+ "license_plate": "TEST123",
+ }
+ )
diff --git a/fleet_vehicle_log_fuel/tests/test_fleet_vehicle_log_fuel.py b/fleet_vehicle_log_fuel/tests/test_fleet_vehicle_log_fuel.py
new file mode 100644
index 00000000..9b2e9694
--- /dev/null
+++ b/fleet_vehicle_log_fuel/tests/test_fleet_vehicle_log_fuel.py
@@ -0,0 +1,94 @@
+# Copyright 2024 Tecnativa - Víctor Martínez
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl
+from odoo.exceptions import UserError
+from odoo.tests import Form
+
+from .common import TestFleetVehicleLogFuelBase
+
+
+class TestFleetVehicleLogFuelMisc(TestFleetVehicleLogFuelBase):
+ def test_fleet_vehicle_log_fuel_process(self):
+ fuel_form = Form(
+ self.env["fleet.vehicle.log.fuel"].with_context(
+ default_vehicle_id=self.vehicle.id
+ )
+ )
+ with self.assertRaises(UserError):
+ fuel_form.odometer = 0
+ fuel_form.save()
+ fuel_form.odometer = 5000
+ fuel = fuel_form.save()
+ self.assertTrue(fuel.odometer_id)
+ self.assertEqual(self.vehicle.odometer, 5000)
+ self.assertEqual(self.vehicle.fuel_count, 1)
+ res = self.vehicle.action_view_log_fuel()
+ items = self.env[res["res_model"]].search(res["domain"])
+ self.assertIn(fuel, items)
+ fuel.button_running()
+ self.assertEqual(fuel.state, "running")
+ fuel.button_done()
+ self.assertEqual(fuel.state, "done")
+ self.assertTrue(fuel.service_id)
+ self.assertEqual(fuel.service_id.service_type_id, fuel.service_type_id)
+ self.assertEqual(fuel.service_id.state, "done")
+ fuel.button_cancel()
+ self.assertEqual(fuel.state, "cancelled")
+ self.assertFalse(fuel.service_id)
+ fuel.button_todo()
+ self.assertEqual(fuel.state, "todo")
+
+ def test_fleet_vehicle_log_fuel_onchange(self):
+ # Check amount
+ fuel_form_1 = Form(
+ self.env["fleet.vehicle.log.fuel"].with_context(
+ default_vehicle_id=self.vehicle.id
+ )
+ )
+ fuel_form_1.liter = 50
+ fuel_form_1.price_per_liter = 1.5
+ self.assertEqual(fuel_form_1.amount, 75)
+ # Check price_per_liter
+ fuel_form_2 = Form(
+ self.env["fleet.vehicle.log.fuel"].with_context(
+ default_vehicle_id=self.vehicle.id
+ )
+ )
+ fuel_form_2.amount = 75
+ fuel_form_2.liter = 50
+ self.assertEqual(fuel_form_2.price_per_liter, 1.5)
+ # Check liter
+ fuel_form_2 = Form(
+ self.env["fleet.vehicle.log.fuel"].with_context(
+ default_vehicle_id=self.vehicle.id
+ )
+ )
+ fuel_form_2.amount = 75
+ fuel_form_2.price_per_liter = 1.5
+ self.assertEqual(fuel_form_2.liter, 50)
+
+
+class TestFleetVehicleLogFuelReport(TestFleetVehicleLogFuelBase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ # Create log fuel + log service to check report after
+ fuel = cls.env["fleet.vehicle.log.fuel"].create(
+ {
+ "vehicle_id": cls.vehicle.id,
+ "date": "2024-01-01",
+ "amount": 75,
+ "price_per_liter": 1.5,
+ "liter": 50,
+ }
+ )
+ fuel.button_running()
+ fuel.button_done()
+
+ def test_fleet_vehicle_cost_report(self):
+ items = self.env["fleet.vehicle.cost.report"].search(
+ [("vehicle_id", "=", self.vehicle.id), ("date_start", "=", "2024-01-01")]
+ )
+ self.assertIn("fuel", items.mapped("cost_type"))
+ self.assertEqual(
+ sum(items.filtered(lambda x: x.cost_type == "fuel").mapped("cost")), 75
+ )
diff --git a/fleet_vehicle_log_fuel/views/fleet_vehicle_cost_views.xml b/fleet_vehicle_log_fuel/views/fleet_vehicle_log_fuel_views.xml
similarity index 83%
rename from fleet_vehicle_log_fuel/views/fleet_vehicle_cost_views.xml
rename to fleet_vehicle_log_fuel/views/fleet_vehicle_log_fuel_views.xml
index 30469293..317934e4 100644
--- a/fleet_vehicle_log_fuel/views/fleet_vehicle_cost_views.xml
+++ b/fleet_vehicle_log_fuel/views/fleet_vehicle_log_fuel_views.xml
@@ -8,11 +8,33 @@
+
-
+
-
+
@@ -57,7 +84,6 @@
-
fleet.vehicle.log.fuel.tree
fleet.vehicle.log.fuel
@@ -86,7 +112,6 @@
-
fleet.vehicle.log.fuel.kanban
fleet.vehicle.log.fuel
@@ -130,7 +155,6 @@
-
fleet.vehicle.log.fuel.graph
fleet.vehicle.log.fuel
@@ -142,8 +166,7 @@
-
-
+
fleet.vehicle.log.fuel.search
fleet.vehicle.log.fuel
@@ -160,7 +183,6 @@
-
Fuel Logs
fleet.vehicle.log.fuel
@@ -173,7 +195,6 @@
-
-
diff --git a/fleet_vehicle_log_fuel/views/fleet_vehicle_views.xml b/fleet_vehicle_log_fuel/views/fleet_vehicle_views.xml
index 51398046..b6d78702 100644
--- a/fleet_vehicle_log_fuel/views/fleet_vehicle_views.xml
+++ b/fleet_vehicle_log_fuel/views/fleet_vehicle_views.xml
@@ -1,6 +1,5 @@
-
fleet.vehicle.form
fleet.vehicle
@@ -19,5 +18,4 @@
-