diff --git a/fleet_vehicle_usage/README.rst b/fleet_vehicle_usage/README.rst new file mode 100644 index 00000000..829d89af --- /dev/null +++ b/fleet_vehicle_usage/README.rst @@ -0,0 +1,90 @@ +=================== +Fleet Vehicle Usage +=================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:0cf5d6f3aa19c8e7999d21d9011ece298d81de236f6775714cbad56cae750fa2 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Ffleet-lightgray.png?logo=github + :target: https://github.com/OCA/fleet/tree/18.0/fleet_vehicle_usage + :alt: OCA/fleet +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/fleet-18-0/fleet-18-0-fleet_vehicle_usage + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/fleet&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to record usages of fleet vehicles by employees, with +their dates, states and comments. + +**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 +------- + +* César Fernández +* Tecnativa + +Contributors +------------ + +- César Fernández Domínguez +- `Tecnativa `__: + + - Víctor Martínez + - Pedro M. Baeza + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-victoralmau| image:: https://github.com/victoralmau.png?size=40px + :target: https://github.com/victoralmau + :alt: victoralmau + +Current `maintainer `__: + +|maintainer-victoralmau| + +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_usage/__init__.py b/fleet_vehicle_usage/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/fleet_vehicle_usage/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/fleet_vehicle_usage/__manifest__.py b/fleet_vehicle_usage/__manifest__.py new file mode 100644 index 00000000..6b5a4b9f --- /dev/null +++ b/fleet_vehicle_usage/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2021 César Fernández Domínguez +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Fleet Vehicle Usage", + "version": "18.0.1.0.0", + "category": "Human Resources/Fleet", + "website": "https://github.com/OCA/fleet", + "author": "César Fernández, Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "depends": ["fleet"], + "installable": True, + "data": [ + "security/ir.model.access.csv", + "security/security.xml", + "data/ir_sequence_data.xml", + "views/fleet_vehicle_usage_view.xml", + "views/fleet_vehicle_view.xml", + ], + "maintainers": ["victoralmau"], +} diff --git a/fleet_vehicle_usage/data/ir_sequence_data.xml b/fleet_vehicle_usage/data/ir_sequence_data.xml new file mode 100644 index 00000000..3e493822 --- /dev/null +++ b/fleet_vehicle_usage/data/ir_sequence_data.xml @@ -0,0 +1,12 @@ + + + + Fleet Vehicle Usage + fleet.vehicle.usage + FU/ + 5 + 1 + 1 + + + diff --git a/fleet_vehicle_usage/i18n/es.po b/fleet_vehicle_usage/i18n/es.po new file mode 100644 index 00000000..333a4b39 --- /dev/null +++ b/fleet_vehicle_usage/i18n/es.po @@ -0,0 +1,405 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fleet_vehicle_usage +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-26 08:22+0000\n" +"PO-Revision-Date: 2024-12-20 09:06+0000\n" +"Last-Translator: Víctor Martínez \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_view_form +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_view_kanban +msgid "" +"In use" +msgstr "" +"En uso" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__message_needaction +msgid "Action Needed" +msgstr "Acción Necesaria" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_ids +msgid "Activities" +msgstr "Actividades" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Actividad Excepción Decoración" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_state +msgid "Activity State" +msgstr "Estado de Actividad" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_type_icon +msgid "Activity Type Icon" +msgstr "Icono de tipo de actividad" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__message_attachment_count +msgid "Attachment Count" +msgstr "Total de adjuntos" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields.selection,name:fleet_vehicle_usage.selection__fleet_vehicle_usage__state__cancel +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "Cancelled" +msgstr "Cancelado" + +#. module: fleet_vehicle_usage +#: model_terms:ir.actions.act_window,help:fleet_vehicle_usage.fleet_vehicle_usage_action +#: model_terms:ir.actions.act_window,help:fleet_vehicle_usage.fleet_vehicle_usage_action_from_vehicle +msgid "Click to create a Fleet Vehicle Usage." +msgstr "Haga clic para crear un uso de vehículo de flota." + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__company_id +msgid "Company" +msgstr "Compañía" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__partner_id +msgid "Destination" +msgstr "Destino" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__user_id +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "Driver" +msgstr "Conductor" + +#. module: fleet_vehicle_usage +#. odoo-python +#: code:addons/fleet_vehicle_usage/models/fleet_vehicle_usage.py:0 +#, python-format +msgid "Every driver can only drive a vehicle at once!" +msgstr "¡Cada conductor solo puede conducir un vehículo a la vez!" + +#. module: fleet_vehicle_usage +#. odoo-python +#: code:addons/fleet_vehicle_usage/models/fleet_vehicle_usage.py:0 +#, python-format +msgid "Every vehicle can only be picked once at the same time!" +msgstr "¡Cada vehículo solo se puede recoger una vez al mismo tiempo!" + +#. module: fleet_vehicle_usage +#: model:ir.actions.act_window,name:fleet_vehicle_usage.fleet_vehicle_usage_action +#: model:ir.actions.act_window,name:fleet_vehicle_usage.fleet_vehicle_usage_action_from_vehicle +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__name +msgid "Fleet Vehicle Usage" +msgstr "Uso de vehículo" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__message_follower_ids +msgid "Followers" +msgstr "Seguidores" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguidores (Socios)" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,help:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Icono de Font Awesome ej. fa-tasks" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__has_message +msgid "Has Message" +msgstr "Tiene mensaje" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__id +msgid "ID" +msgstr "ID" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_exception_icon +msgid "Icon" +msgstr "Icono" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,help:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "Icono para indicar una actividad de excepción." + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,help:fleet_vehicle_usage.field_fleet_vehicle_usage__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Si está marcado hay nuevos mensajes que requieren su atención." + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,help:fleet_vehicle_usage.field_fleet_vehicle_usage__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Si se encuentra marcado, algunos mensajes tienen error de envío." + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle__in_use +#: model:ir.model.fields.selection,name:fleet_vehicle_usage.selection__fleet_vehicle_usage__state__in_use +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "In Use" +msgstr "En uso" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_view_search +msgid "In use" +msgstr "En uso" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__message_is_follower +msgid "Is Follower" +msgstr "Es Seguidor" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__write_uid +msgid "Last Updated by" +msgstr "Ultima actualización por" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__write_date +msgid "Last Updated on" +msgstr "Fecha modificación" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__message_has_error +msgid "Message Delivery error" +msgstr "Error de Envío de Mensaje" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__message_ids +msgid "Messages" +msgstr "Mensajes" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "Mi fecha de límite de actividad" + +#. module: fleet_vehicle_usage +#. odoo-python +#: code:addons/fleet_vehicle_usage/models/fleet_vehicle_usage.py:0 +#: model:ir.model.fields.selection,name:fleet_vehicle_usage.selection__fleet_vehicle_usage__state__draft +#, python-format +msgid "New" +msgstr "Nuevo" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Fecha Límite de Actividad Siguiente" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_summary +msgid "Next Activity Summary" +msgstr "Resumen de actividad siguiente" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_type_id +msgid "Next Activity Type" +msgstr "Siguiente tipo de actividad" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "Not Returned" +msgstr "No devuelto" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__notes +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_form +msgid "Notes" +msgstr "Notas" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__message_needaction_counter +msgid "Number of Actions" +msgstr "Numero de Acciones" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__message_has_error_counter +msgid "Number of errors" +msgstr "Número de errores" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,help:fleet_vehicle_usage.field_fleet_vehicle_usage__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "Número de mensajes que requieren una acción" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,help:fleet_vehicle_usage.field_fleet_vehicle_usage__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Número de mensajes con error de entrega" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_form +msgid "Pick" +msgstr "Recoger" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__picking_user_id +msgid "Picked up by" +msgstr "Recogido por" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__date_picking +msgid "Picking Date" +msgstr "Fecha de recogida" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "Picking Date by Month" +msgstr "Fecha de recogida por mes" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "Picking Month" +msgstr "Mes de recogida" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields.selection,name:fleet_vehicle_usage.selection__fleet_vehicle_usage__state__reserved +msgid "Reserved" +msgstr "Reservado" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_user_id +msgid "Responsible User" +msgstr "Usuario Responsable" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_form +msgid "Return" +msgstr "Devolver" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__date_return +msgid "Return Date" +msgstr "Fecha de devolución" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields.selection,name:fleet_vehicle_usage.selection__fleet_vehicle_usage__state__returned +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "Returned" +msgstr "Devuelto" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__return_user_id +msgid "Returned by" +msgstr "Devuelto por" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__state +msgid "State" +msgstr "Estado" + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "Status" +msgstr "Estado" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,help:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" +"Estado en base a las actividades\n" +"Atrasada: La fecha de vencimiento ya ha pasado\n" +"Hoy: La fecha de la actividad es hoy\n" +"Planificada: Actividades futuras." + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "To Pick" +msgstr "Para recoger" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,help:fleet_vehicle_usage.field_fleet_vehicle_usage__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Tipo de actividad de excepción registrada." + +#. module: fleet_vehicle_usage +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_view_form +msgid "Usage" +msgstr "Uso" + +#. module: fleet_vehicle_usage +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle__usage_ids +#: model:ir.ui.menu,name:fleet_vehicle_usage.menu_fleet_vehicle_usage_action +msgid "Usages" +msgstr "Usos" + +#. module: fleet_vehicle_usage +#: model:ir.model,name:fleet_vehicle_usage.model_fleet_vehicle +#: model:ir.model.fields,field_description:fleet_vehicle_usage.field_fleet_vehicle_usage__vehicle_id +#: model_terms:ir.ui.view,arch_db:fleet_vehicle_usage.fleet_vehicle_usage_search +msgid "Vehicle" +msgstr "Vehículo" + +#. module: fleet_vehicle_usage +#: model:ir.model,name:fleet_vehicle_usage.model_fleet_vehicle_usage +msgid "Vehicle Usage" +msgstr "Uso de vehículo" + +#~ msgid "" +#~ " + + diff --git a/fleet_vehicle_usage/static/description/icon.png b/fleet_vehicle_usage/static/description/icon.png new file mode 100644 index 00000000..3a0328b5 Binary files /dev/null and b/fleet_vehicle_usage/static/description/icon.png differ diff --git a/fleet_vehicle_usage/static/description/index.html b/fleet_vehicle_usage/static/description/index.html new file mode 100644 index 00000000..6e66dfa5 --- /dev/null +++ b/fleet_vehicle_usage/static/description/index.html @@ -0,0 +1,432 @@ + + + + + +Fleet Vehicle Usage + + + +
+

Fleet Vehicle Usage

+ + +

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

+

This module allows to record usages of fleet vehicles by employees, with +their dates, states and comments.

+

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

+
    +
  • César Fernández
  • +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • César Fernández Domínguez
  • +
  • Tecnativa:
      +
    • Víctor Martínez
    • +
    • Pedro M. Baeza
    • +
    +
  • +
+
+
+

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.

+

Current maintainer:

+

victoralmau

+

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_usage/tests/__init__.py b/fleet_vehicle_usage/tests/__init__.py new file mode 100644 index 00000000..2c11a9c9 --- /dev/null +++ b/fleet_vehicle_usage/tests/__init__.py @@ -0,0 +1 @@ +from . import test_fleet_vehicle_usage diff --git a/fleet_vehicle_usage/tests/test_fleet_vehicle_usage.py b/fleet_vehicle_usage/tests/test_fleet_vehicle_usage.py new file mode 100644 index 00000000..6391e8eb --- /dev/null +++ b/fleet_vehicle_usage/tests/test_fleet_vehicle_usage.py @@ -0,0 +1,52 @@ +# 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.addons.base.tests.common import BaseCommon + + +class TestFleetVehicleUsage(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + 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, + "vehicle_type": "car", + } + ) + cls.vehicle = cls.env["fleet.vehicle"].create({"model_id": cls.model.id}) + cls.user = cls.env.ref("base.user_demo") + + def _create_fleet_vehicle_usage(self, vehicle): + return self.env["fleet.vehicle.usage"].create( + {"vehicle_id": vehicle.id, "user_id": self.user.id} + ) + + def test_fleet_vehicle_usage(self): + usage = self._create_fleet_vehicle_usage(self.vehicle) + self.assertFalse(self.vehicle.in_use) + usage.action_pick() + self.assertTrue(usage.date_picking) + self.assertTrue(self.vehicle.in_use) + usage.action_return() + self.assertTrue(usage.date_return) + self.assertFalse(self.vehicle.in_use) + + def test_fleet_vehicle_usage_constrain_1(self): + usage = self._create_fleet_vehicle_usage(self.vehicle) + usage.action_pick() + with self.assertRaises(UserError): + usage2 = self._create_fleet_vehicle_usage(self.vehicle) + usage2.action_pick() + + def test_fleet_vehicle_usage_constrain_2(self): + usage = self._create_fleet_vehicle_usage(self.vehicle) + usage.action_pick() + vehicle2 = self.vehicle.copy() + with self.assertRaises(UserError): + usage2 = self._create_fleet_vehicle_usage(vehicle2) + usage2.action_pick() diff --git a/fleet_vehicle_usage/views/fleet_vehicle_usage_view.xml b/fleet_vehicle_usage/views/fleet_vehicle_usage_view.xml new file mode 100644 index 00000000..35c4015d --- /dev/null +++ b/fleet_vehicle_usage/views/fleet_vehicle_usage_view.xml @@ -0,0 +1,213 @@ + + + + fleet.vehicle.usage.list + fleet.vehicle.usage + + + + + + + + + + + + + + fleet.vehicle.usage.form + fleet.vehicle.usage + +
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + fleet.vehicle.usage.search + fleet.vehicle.usage + + + + + + + + + + + + + + + + + + + + + + + Fleet Vehicle Usage + ir.actions.act_window + fleet.vehicle.usage + list,form + + + {'search_default_not_returned': 1} + +

Click to create a Fleet Vehicle Usage.

+
+
+ + + Fleet Vehicle Usage + ir.actions.act_window + fleet.vehicle.usage + list,form + + + {'default_vehicle_id': active_id, 'search_default_not_returned': 1} + [('vehicle_id', '=', active_id)] + +

Click to create a Fleet Vehicle Usage.

+
+
+
diff --git a/fleet_vehicle_usage/views/fleet_vehicle_view.xml b/fleet_vehicle_usage/views/fleet_vehicle_view.xml new file mode 100644 index 00000000..fb35a75f --- /dev/null +++ b/fleet_vehicle_usage/views/fleet_vehicle_view.xml @@ -0,0 +1,55 @@ + + + + fleet.vehicle.search + fleet.vehicle + + + + + + + + + + fleet.vehicle.kanban + fleet.vehicle + + + + + + + In use + + + + + fleet.vehicle.form + fleet.vehicle + + +
+
+ + + In use + + +
+