From 5b38254d2517802677ae3d1b83b5e6423fca646f Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Tue, 20 Aug 2024 21:42:03 +0200 Subject: [PATCH 1/6] [ADD] sale_timesheet_timeline: Dates planning in sales order lines This module allows to plan in advance the start/end dates and assignees for the sales order lines that are services, and they are transferred to the created task (if any) when confirming the order. It includes a timeline view for pre-viewing and managing the planning. TT50569 --- sale_timesheet_timeline/README.rst | 94 ++++ sale_timesheet_timeline/__init__.py | 3 + sale_timesheet_timeline/__manifest__.py | 15 + sale_timesheet_timeline/i18n/es.po | 61 +++ .../i18n/sale_timesheet_timeline.pot | 61 +++ sale_timesheet_timeline/models/__init__.py | 3 + sale_timesheet_timeline/models/sale_order.py | 42 ++ .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 5 + sale_timesheet_timeline/readme/USAGE.rst | 8 + .../static/description/index.html | 443 ++++++++++++++++++ sale_timesheet_timeline/tests/__init__.py | 3 + .../tests/test_sale_timesheet_timeline.py | 50 ++ .../views/sale_order_views.xml | 98 ++++ 14 files changed, 889 insertions(+) create mode 100644 sale_timesheet_timeline/README.rst create mode 100644 sale_timesheet_timeline/__init__.py create mode 100644 sale_timesheet_timeline/__manifest__.py create mode 100644 sale_timesheet_timeline/i18n/es.po create mode 100644 sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot create mode 100644 sale_timesheet_timeline/models/__init__.py create mode 100644 sale_timesheet_timeline/models/sale_order.py create mode 100644 sale_timesheet_timeline/readme/CONTRIBUTORS.rst create mode 100644 sale_timesheet_timeline/readme/DESCRIPTION.rst create mode 100644 sale_timesheet_timeline/readme/USAGE.rst create mode 100644 sale_timesheet_timeline/static/description/index.html create mode 100644 sale_timesheet_timeline/tests/__init__.py create mode 100644 sale_timesheet_timeline/tests/test_sale_timesheet_timeline.py create mode 100644 sale_timesheet_timeline/views/sale_order_views.xml diff --git a/sale_timesheet_timeline/README.rst b/sale_timesheet_timeline/README.rst new file mode 100644 index 0000000000..11a801d0b5 --- /dev/null +++ b/sale_timesheet_timeline/README.rst @@ -0,0 +1,94 @@ +=================================== +Dates planning in sales order lines +=================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:8e9d8f28eaf13681b5d90efd20e8c336813f849dc5e60543e3cf6e9f83637e3d + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Ftimesheet-lightgray.png?logo=github + :target: https://github.com/OCA/timesheet/tree/16.0/sale_timesheet_timeline + :alt: OCA/timesheet +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/timesheet-16-0/timesheet-16-0-sale_timesheet_timeline + :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/timesheet&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to plan in advance the start/end dates and assignees for the sales +order lines that are services, and they are transferred to the created task (if any) +when confirming the order. + +It includes a timeline view for pre-viewing and managing the planning. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +#. Go to Sales > Orders > Quotations +#. Create a new record. +#. Add a line with a product of type "Service". +#. A new smart-button "Planning" will appear. +#. On optional fields, you will find 3 fields for setting manually the planning data: + "Task Start", "Task End" and "Task Assignees". +#. You can also click on the "Planning" button and plan the dates visually in the + timeline view. + +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 +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * 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. + +This module is part of the `OCA/timesheet `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_timesheet_timeline/__init__.py b/sale_timesheet_timeline/__init__.py new file mode 100644 index 0000000000..4b76c7b2d5 --- /dev/null +++ b/sale_timesheet_timeline/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/sale_timesheet_timeline/__manifest__.py b/sale_timesheet_timeline/__manifest__.py new file mode 100644 index 0000000000..b0a1d98e16 --- /dev/null +++ b/sale_timesheet_timeline/__manifest__.py @@ -0,0 +1,15 @@ +# Copyright 2024 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "Dates planning in sales order lines", + "version": "16.0.1.0.0", + "category": "Services/Project", + "website": "https://github.com/OCA/timesheet", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "application": False, + "depends": ["sale_timesheet", "project_timeline"], + "data": ["views/sale_order_views.xml"], +} diff --git a/sale_timesheet_timeline/i18n/es.po b/sale_timesheet_timeline/i18n/es.po new file mode 100644 index 0000000000..d238dfbcae --- /dev/null +++ b/sale_timesheet_timeline/i18n/es.po @@ -0,0 +1,61 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_timesheet_timeline +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-08-20 19:48+0000\n" +"PO-Revision-Date: 2024-08-20 19:48+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: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.view_order_form +msgid "Planning" +msgstr "Planificación" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order__any_service_line +msgid "Any Service Line" +msgstr "Cualquier línea de servicio" + +#. module: sale_timesheet_timeline +#: model:ir.model,name:sale_timesheet_timeline.model_sale_order +msgid "Sales Order" +msgstr "Pedido de venta" + +#. module: sale_timesheet_timeline +#: model:ir.model,name:sale_timesheet_timeline.model_sale_order_line +msgid "Sales Order Line" +msgstr "Línea de pedido de venta" + +#. module: sale_timesheet_timeline +#: model:ir.actions.act_window,name:sale_timesheet_timeline.action_sale_order_line_timeline +msgid "Sales Tasks Planning" +msgstr "Planificación de tareas de ventas" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_user_ids +msgid "Task Assignees" +msgstr "Asignados a la tarea" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_date_end +msgid "Task End" +msgstr "Fin de tarea" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_date_start +msgid "Task Start" +msgstr "Comienzo de tarea" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.view_sale_order_line_timeline +msgid "User" +msgstr "Usuario" diff --git a/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot b/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot new file mode 100644 index 0000000000..056578782e --- /dev/null +++ b/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot @@ -0,0 +1,61 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_timesheet_timeline +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-08-20 19:48+0000\n" +"PO-Revision-Date: 2024-08-20 19:48+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: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.view_order_form +msgid "Planning" +msgstr "" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order__any_service_line +msgid "Any Service Line" +msgstr "" + +#. module: sale_timesheet_timeline +#: model:ir.model,name:sale_timesheet_timeline.model_sale_order +msgid "Sales Order" +msgstr "" + +#. module: sale_timesheet_timeline +#: model:ir.model,name:sale_timesheet_timeline.model_sale_order_line +msgid "Sales Order Line" +msgstr "" + +#. module: sale_timesheet_timeline +#: model:ir.actions.act_window,name:sale_timesheet_timeline.action_sale_order_line_timeline +msgid "Sales Tasks Planning" +msgstr "" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_user_ids +msgid "Task Assignees" +msgstr "" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_date_end +msgid "Task End" +msgstr "" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_date_start +msgid "Task Start" +msgstr "" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.view_sale_order_line_timeline +msgid "User" +msgstr "" diff --git a/sale_timesheet_timeline/models/__init__.py b/sale_timesheet_timeline/models/__init__.py new file mode 100644 index 0000000000..b1ad204bde --- /dev/null +++ b/sale_timesheet_timeline/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import sale_order diff --git a/sale_timesheet_timeline/models/sale_order.py b/sale_timesheet_timeline/models/sale_order.py new file mode 100644 index 0000000000..6958b22f50 --- /dev/null +++ b/sale_timesheet_timeline/models/sale_order.py @@ -0,0 +1,42 @@ +# Copyright 2024 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import Command, fields, models + + +class SaleOrder(models.Model): + _inherit = "sale.order" + + any_service_line = fields.Boolean(compute="_compute_any_service_line") + + def _compute_any_service_line(self): + for record in self: + record.any_service_line = any( + [x.product_type == "service" for x in record.order_line] + ) + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + task_date_start = fields.Datetime("Task Start") + task_date_end = fields.Datetime("Task End") + task_user_ids = fields.Many2many( + comodel_name="res.users", + string="Task Assignees", + copy=True, + context={"active_test": False}, + domain="[('share', '=', False), ('active', '=', True)]", + ) + + def _timesheet_create_task_prepare_values(self, project): + # Transfer dates and assignees from sales order line + res = super()._timesheet_create_task_prepare_values(project) + if self.task_date_start: + res["planned_date_start"] = self.task_date_start + if self.task_date_end: + res["planned_date_end"] = self.task_date_end + res["date_deadline"] = self.task_date_end + if self.task_user_ids: + res["user_ids"] = [Command.link(x.id) for x in self.task_user_ids] + return res diff --git a/sale_timesheet_timeline/readme/CONTRIBUTORS.rst b/sale_timesheet_timeline/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..ca5645bacc --- /dev/null +++ b/sale_timesheet_timeline/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Tecnativa `_: + + * Pedro M. Baeza diff --git a/sale_timesheet_timeline/readme/DESCRIPTION.rst b/sale_timesheet_timeline/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..f60f247b74 --- /dev/null +++ b/sale_timesheet_timeline/readme/DESCRIPTION.rst @@ -0,0 +1,5 @@ +This module allows to plan in advance the start/end dates and assignees for the sales +order lines that are services, and they are transferred to the created task (if any) +when confirming the order. + +It includes a timeline view for pre-viewing and managing the planning. diff --git a/sale_timesheet_timeline/readme/USAGE.rst b/sale_timesheet_timeline/readme/USAGE.rst new file mode 100644 index 0000000000..a368ad39b5 --- /dev/null +++ b/sale_timesheet_timeline/readme/USAGE.rst @@ -0,0 +1,8 @@ +#. Go to Sales > Orders > Quotations +#. Create a new record. +#. Add a line with a product of type "Service". +#. A new smart-button "Planning" will appear. +#. On optional fields, you will find 3 fields for setting manually the planning data: + "Task Start", "Task End" and "Task Assignees". +#. You can also click on the "Planning" button and plan the dates visually in the + timeline view. diff --git a/sale_timesheet_timeline/static/description/index.html b/sale_timesheet_timeline/static/description/index.html new file mode 100644 index 0000000000..0c75153071 --- /dev/null +++ b/sale_timesheet_timeline/static/description/index.html @@ -0,0 +1,443 @@ + + + + + +Dates planning in sales order lines + + + +
+

Dates planning in sales order lines

+ + +

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

+

This module allows to plan in advance the start/end dates and assignees for the sales +order lines that are services, and they are transferred to the created task (if any) +when confirming the order.

+

It includes a timeline view for pre-viewing and managing the planning.

+

Table of contents

+ +
+

Usage

+
    +
  1. Go to Sales > Orders > Quotations
  2. +
  3. Create a new record.
  4. +
  5. Add a line with a product of type “Service”.
  6. +
  7. A new smart-button “Planning” will appear.
  8. +
  9. On optional fields, you will find 3 fields for setting manually the planning data: +“Task Start”, “Task End” and “Task Assignees”.
  10. +
  11. You can also click on the “Planning” button and plan the dates visually in the +timeline view.
  12. +
+
+
+

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

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

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

+

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

+
+
+
+ + diff --git a/sale_timesheet_timeline/tests/__init__.py b/sale_timesheet_timeline/tests/__init__.py new file mode 100644 index 0000000000..287f790a02 --- /dev/null +++ b/sale_timesheet_timeline/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import test_sale_timesheet_timeline diff --git a/sale_timesheet_timeline/tests/test_sale_timesheet_timeline.py b/sale_timesheet_timeline/tests/test_sale_timesheet_timeline.py new file mode 100644 index 0000000000..12bd22e031 --- /dev/null +++ b/sale_timesheet_timeline/tests/test_sale_timesheet_timeline.py @@ -0,0 +1,50 @@ +# Copyright 2024 Tecnativa - Pedro M. Baeza +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). +from odoo import fields +from odoo.tests import Form, new_test_user + +from odoo.addons.base.tests.common import BaseCommon + + +class TestSaleTimesheetTimeline(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.partner = cls.env["res.partner"].create({"name": "Test partner"}) + cls.user = new_test_user(cls.env, login="test_user_st_timeline") + cls.project = cls.env["project.project"].create( + {"name": "Test project", "allow_billable": True} + ) + cls.product_task = cls.env["product.product"].create( + { + "name": "Test task product", + "detailed_type": "service", + "service_tracking": "task_global_project", + "service_policy": "ordered_prepaid", + "project_id": cls.project.id, + "uom_id": cls.env.ref("uom.product_uom_hour").id, + "uom_po_id": cls.env.ref("uom.product_uom_hour").id, + } + ) + order_form = Form(cls.env["sale.order"]) + order_form.partner_id = cls.partner + with order_form.order_line.new() as line_form: + line_form.product_id = cls.product_task + line_form.product_uom_qty = 10 + line_form.name = "This is a long description\nwith line feed" + line_form.task_date_start = "2024-08-01 00:00:00" + line_form.task_date_end = "2024-08-05 12:00:00" + line_form.task_user_ids.add(cls.user) + cls.order = order_form.save() + + def test_task_creation(self): + self.order.action_confirm() + task = self.project.task_ids + self.assertEqual( + task.planned_date_start, fields.Datetime.from_string("2024-08-01 00:00:00") + ) + self.assertEqual( + task.planned_date_end, fields.Datetime.from_string("2024-08-05 12:00:00") + ) + self.assertEqual(task.date_deadline, fields.Date.from_string("2024-08-05")) + self.assertEqual(task.user_ids, self.user) diff --git a/sale_timesheet_timeline/views/sale_order_views.xml b/sale_timesheet_timeline/views/sale_order_views.xml new file mode 100644 index 0000000000..70884e0959 --- /dev/null +++ b/sale_timesheet_timeline/views/sale_order_views.xml @@ -0,0 +1,98 @@ + + + + + sale.order.line + timeline + + + + + + + +
+ + User + + + + + + + +
+
+
+
+
+
+ + Sales Tasks Planning + sale.order.line + timeline + [('order_id', '=', active_id), ('product_type', '=', 'service')] + + + + sale.order + + + + + + + + + + + + + +
From 59132d129dff567830b71da2a29a92bfaf37d9a1 Mon Sep 17 00:00:00 2001 From: pilarvargas-tecnativa Date: Wed, 21 Aug 2024 09:05:21 +0200 Subject: [PATCH 2/6] [IMP] sale_timesheet_timeline: Add table to order portal view TT50569 --- sale_timesheet_timeline/README.rst | 7 ++ sale_timesheet_timeline/__manifest__.py | 2 +- sale_timesheet_timeline/i18n/es.po | 33 ++++++++- .../i18n/sale_timesheet_timeline.pot | 29 +++++++- .../readme/DESCRIPTION.rst | 2 + sale_timesheet_timeline/readme/ROADMAP.rst | 1 + .../static/description/index.html | 28 +++++--- .../views/sale_portal_templates.xml | 72 +++++++++++++++++++ 8 files changed, 158 insertions(+), 16 deletions(-) create mode 100644 sale_timesheet_timeline/readme/ROADMAP.rst create mode 100644 sale_timesheet_timeline/views/sale_portal_templates.xml diff --git a/sale_timesheet_timeline/README.rst b/sale_timesheet_timeline/README.rst index 11a801d0b5..57b4a5e209 100644 --- a/sale_timesheet_timeline/README.rst +++ b/sale_timesheet_timeline/README.rst @@ -34,6 +34,8 @@ when confirming the order. It includes a timeline view for pre-viewing and managing the planning. +In addition, this planning is shown in the order portal view. + **Table of contents** .. contents:: @@ -51,6 +53,11 @@ Usage #. You can also click on the "Planning" button and plan the dates visually in the timeline view. +Known issues / Roadmap +====================== + +- Timeline visualization in portal. + Bug Tracker =========== diff --git a/sale_timesheet_timeline/__manifest__.py b/sale_timesheet_timeline/__manifest__.py index b0a1d98e16..c6ed2da8eb 100644 --- a/sale_timesheet_timeline/__manifest__.py +++ b/sale_timesheet_timeline/__manifest__.py @@ -11,5 +11,5 @@ "installable": True, "application": False, "depends": ["sale_timesheet", "project_timeline"], - "data": ["views/sale_order_views.xml"], + "data": ["views/sale_order_views.xml", "views/sale_portal_templates.xml"], } diff --git a/sale_timesheet_timeline/i18n/es.po b/sale_timesheet_timeline/i18n/es.po index d238dfbcae..be65e7c06f 100644 --- a/sale_timesheet_timeline/i18n/es.po +++ b/sale_timesheet_timeline/i18n/es.po @@ -6,14 +6,16 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 19:48+0000\n" -"PO-Revision-Date: 2024-08-20 19:48+0000\n" +"POT-Creation-Date: 2024-08-21 07:09+0000\n" +"PO-Revision-Date: 2024-08-21 09:11+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: \n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: \n" +"X-Generator: Poedit 3.0.1\n" #. module: sale_timesheet_timeline #: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.view_order_form @@ -25,6 +27,21 @@ msgstr "Planificación" msgid "Any Service Line" msgstr "Cualquier línea de servicio" +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Assignees" +msgstr "Asignados" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "End" +msgstr "Fin" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Planning" +msgstr "Planificación" + #. module: sale_timesheet_timeline #: model:ir.model,name:sale_timesheet_timeline.model_sale_order msgid "Sales Order" @@ -40,6 +57,16 @@ msgstr "Línea de pedido de venta" msgid "Sales Tasks Planning" msgstr "Planificación de tareas de ventas" +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Start" +msgstr "Inicio" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Task" +msgstr "Tarea" + #. module: sale_timesheet_timeline #: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_user_ids msgid "Task Assignees" diff --git a/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot b/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot index 056578782e..389dc2b8c3 100644 --- a/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot +++ b/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 19:48+0000\n" -"PO-Revision-Date: 2024-08-20 19:48+0000\n" +"POT-Creation-Date: 2024-08-21 07:09+0000\n" +"PO-Revision-Date: 2024-08-21 07:09+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -25,6 +25,21 @@ msgstr "" msgid "Any Service Line" msgstr "" +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Assignees" +msgstr "" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "End" +msgstr "" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Planning" +msgstr "" + #. module: sale_timesheet_timeline #: model:ir.model,name:sale_timesheet_timeline.model_sale_order msgid "Sales Order" @@ -40,6 +55,16 @@ msgstr "" msgid "Sales Tasks Planning" msgstr "" +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Start" +msgstr "" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Task" +msgstr "" + #. module: sale_timesheet_timeline #: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_user_ids msgid "Task Assignees" diff --git a/sale_timesheet_timeline/readme/DESCRIPTION.rst b/sale_timesheet_timeline/readme/DESCRIPTION.rst index f60f247b74..7df014b161 100644 --- a/sale_timesheet_timeline/readme/DESCRIPTION.rst +++ b/sale_timesheet_timeline/readme/DESCRIPTION.rst @@ -3,3 +3,5 @@ order lines that are services, and they are transferred to the created task (if when confirming the order. It includes a timeline view for pre-viewing and managing the planning. + +In addition, this planning is shown in the order portal view. diff --git a/sale_timesheet_timeline/readme/ROADMAP.rst b/sale_timesheet_timeline/readme/ROADMAP.rst new file mode 100644 index 0000000000..96af7bc869 --- /dev/null +++ b/sale_timesheet_timeline/readme/ROADMAP.rst @@ -0,0 +1 @@ +- Timeline visualization in portal. diff --git a/sale_timesheet_timeline/static/description/index.html b/sale_timesheet_timeline/static/description/index.html index 0c75153071..a71e1f2ed3 100644 --- a/sale_timesheet_timeline/static/description/index.html +++ b/sale_timesheet_timeline/static/description/index.html @@ -373,15 +373,17 @@

Dates planning in sales order lines

order lines that are services, and they are transferred to the created task (if any) when confirming the order.

It includes a timeline view for pre-viewing and managing the planning.

+

In addition, this planning is shown in the order portal view.

Table of contents

+
+

Known issues / Roadmap

+
    +
  • Timeline visualization in portal.
  • +
+
-

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 @@ -408,15 +416,15 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Tecnativa
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose diff --git a/sale_timesheet_timeline/views/sale_portal_templates.xml b/sale_timesheet_timeline/views/sale_portal_templates.xml new file mode 100644 index 0000000000..d357b76def --- /dev/null +++ b/sale_timesheet_timeline/views/sale_portal_templates.xml @@ -0,0 +1,72 @@ + + + From 023abd79565fc822bf8770c1d8a3f1c94aa12f8d Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 10 Oct 2024 16:23:53 +0000 Subject: [PATCH 3/6] [UPD] Update sale_timesheet_timeline.pot --- sale_timesheet_timeline/README.rst | 2 +- .../i18n/sale_timesheet_timeline.pot | 2 -- .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 13 ++++++++----- 4 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 sale_timesheet_timeline/static/description/icon.png diff --git a/sale_timesheet_timeline/README.rst b/sale_timesheet_timeline/README.rst index 57b4a5e209..146794cc20 100644 --- a/sale_timesheet_timeline/README.rst +++ b/sale_timesheet_timeline/README.rst @@ -7,7 +7,7 @@ Dates planning in sales order lines !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:8e9d8f28eaf13681b5d90efd20e8c336813f849dc5e60543e3cf6e9f83637e3d + !! source digest: sha256:8f9fea88f3275fcbe5a535f86aaff7a8ef2f645719f47dd5bbd4c6523269b371 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot b/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot index 389dc2b8c3..659a9299e8 100644 --- a/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot +++ b/sale_timesheet_timeline/i18n/sale_timesheet_timeline.pot @@ -6,8 +6,6 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-21 07:09+0000\n" -"PO-Revision-Date: 2024-08-21 07:09+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" diff --git a/sale_timesheet_timeline/static/description/icon.png b/sale_timesheet_timeline/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/sale_timesheet_timeline/static/description/index.html b/sale_timesheet_timeline/static/description/index.html index a71e1f2ed3..ac26b7e57d 100644 --- a/sale_timesheet_timeline/static/description/index.html +++ b/sale_timesheet_timeline/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -366,7 +367,7 @@

Dates planning in sales order lines

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:8e9d8f28eaf13681b5d90efd20e8c336813f849dc5e60543e3cf6e9f83637e3d +!! source digest: sha256:8f9fea88f3275fcbe5a535f86aaff7a8ef2f645719f47dd5bbd4c6523269b371 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module allows to plan in advance the start/end dates and assignees for the sales @@ -438,7 +439,9 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +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.

From 4138f2fe2500ae5da16fd4591ae750f13338b2bd Mon Sep 17 00:00:00 2001 From: mymage Date: Thu, 10 Oct 2024 19:57:41 +0000 Subject: [PATCH 4/6] Added translation using Weblate (Italian) --- sale_timesheet_timeline/i18n/it.po | 87 ++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sale_timesheet_timeline/i18n/it.po diff --git a/sale_timesheet_timeline/i18n/it.po b/sale_timesheet_timeline/i18n/it.po new file mode 100644 index 0000000000..4ea2baa81a --- /dev/null +++ b/sale_timesheet_timeline/i18n/it.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_timesheet_timeline +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-10-14 09:06+0000\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" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.view_order_form +msgid "Planning" +msgstr "Pianificazione" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order__any_service_line +msgid "Any Service Line" +msgstr "Ogni riga servizio" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Assignees" +msgstr "Assegnatari" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "End" +msgstr "Fine" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Planning" +msgstr "Pianificazione" + +#. module: sale_timesheet_timeline +#: model:ir.model,name:sale_timesheet_timeline.model_sale_order +msgid "Sales Order" +msgstr "Ordine di vendita" + +#. module: sale_timesheet_timeline +#: model:ir.model,name:sale_timesheet_timeline.model_sale_order_line +msgid "Sales Order Line" +msgstr "Riga ordine di vendita" + +#. module: sale_timesheet_timeline +#: model:ir.actions.act_window,name:sale_timesheet_timeline.action_sale_order_line_timeline +msgid "Sales Tasks Planning" +msgstr "Pianificazione attività vendite" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Start" +msgstr "Avvio" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.sale_order_portal_content +msgid "Task" +msgstr "Attività" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_user_ids +msgid "Task Assignees" +msgstr "Assegnatario attività" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_date_end +msgid "Task End" +msgstr "Fine attività" + +#. module: sale_timesheet_timeline +#: model:ir.model.fields,field_description:sale_timesheet_timeline.field_sale_order_line__task_date_start +msgid "Task Start" +msgstr "Inizio attività" + +#. module: sale_timesheet_timeline +#: model_terms:ir.ui.view,arch_db:sale_timesheet_timeline.view_sale_order_line_timeline +msgid "User" +msgstr "Utente" From f7b02fd4d7e206fbffc581614235d17ab546e42d Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Sat, 16 Nov 2024 11:21:08 -0500 Subject: [PATCH 5/6] [IMP] sale_timesheet_timeline: pre-commit stuff --- sale_timesheet_timeline/README.rst | 44 +++++++++---------- sale_timesheet_timeline/pyproject.toml | 3 ++ .../readme/CONTRIBUTORS.md | 3 ++ .../readme/CONTRIBUTORS.rst | 3 -- .../{DESCRIPTION.rst => DESCRIPTION.md} | 6 +-- .../readme/{ROADMAP.rst => ROADMAP.md} | 0 sale_timesheet_timeline/readme/USAGE.md | 8 ++++ sale_timesheet_timeline/readme/USAGE.rst | 8 ---- .../static/description/index.html | 20 ++++----- 9 files changed, 49 insertions(+), 46 deletions(-) create mode 100644 sale_timesheet_timeline/pyproject.toml create mode 100644 sale_timesheet_timeline/readme/CONTRIBUTORS.md delete mode 100644 sale_timesheet_timeline/readme/CONTRIBUTORS.rst rename sale_timesheet_timeline/readme/{DESCRIPTION.rst => DESCRIPTION.md} (59%) rename sale_timesheet_timeline/readme/{ROADMAP.rst => ROADMAP.md} (100%) create mode 100644 sale_timesheet_timeline/readme/USAGE.md delete mode 100644 sale_timesheet_timeline/readme/USAGE.rst diff --git a/sale_timesheet_timeline/README.rst b/sale_timesheet_timeline/README.rst index 146794cc20..58168d3e9c 100644 --- a/sale_timesheet_timeline/README.rst +++ b/sale_timesheet_timeline/README.rst @@ -17,20 +17,20 @@ Dates planning in sales order lines :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ftimesheet-lightgray.png?logo=github - :target: https://github.com/OCA/timesheet/tree/16.0/sale_timesheet_timeline + :target: https://github.com/OCA/timesheet/tree/17.0/sale_timesheet_timeline :alt: OCA/timesheet .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/timesheet-16-0/timesheet-16-0-sale_timesheet_timeline + :target: https://translation.odoo-community.org/projects/timesheet-17-0/timesheet-17-0-sale_timesheet_timeline :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/timesheet&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/timesheet&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module allows to plan in advance the start/end dates and assignees for the sales -order lines that are services, and they are transferred to the created task (if any) -when confirming the order. +This module allows to plan in advance the start/end dates and assignees +for the sales order lines that are services, and they are transferred to +the created task (if any) when confirming the order. It includes a timeline view for pre-viewing and managing the planning. @@ -44,19 +44,19 @@ In addition, this planning is shown in the order portal view. Usage ===== -#. Go to Sales > Orders > Quotations -#. Create a new record. -#. Add a line with a product of type "Service". -#. A new smart-button "Planning" will appear. -#. On optional fields, you will find 3 fields for setting manually the planning data: - "Task Start", "Task End" and "Task Assignees". -#. You can also click on the "Planning" button and plan the dates visually in the - timeline view. +1. Go to Sales > Orders > Quotations +2. Create a new record. +3. Add a line with a product of type "Service". +4. A new smart-button "Planning" will appear. +5. On optional fields, you will find 3 fields for setting manually the + planning data: "Task Start", "Task End" and "Task Assignees". +6. You can also click on the "Planning" button and plan the dates + visually in the timeline view. Known issues / Roadmap ====================== -- Timeline visualization in portal. +- Timeline visualization in portal. Bug Tracker =========== @@ -64,7 +64,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. @@ -72,19 +72,19 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* `Tecnativa `_: +- `Tecnativa `__: - * Pedro M. Baeza + - Pedro M. Baeza Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -96,6 +96,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/timesheet `_ project on GitHub. +This module is part of the `OCA/timesheet `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_timesheet_timeline/pyproject.toml b/sale_timesheet_timeline/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/sale_timesheet_timeline/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/sale_timesheet_timeline/readme/CONTRIBUTORS.md b/sale_timesheet_timeline/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..a9bd1355a4 --- /dev/null +++ b/sale_timesheet_timeline/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- [Tecnativa](https://www.tecnativa.com): + + > - Pedro M. Baeza diff --git a/sale_timesheet_timeline/readme/CONTRIBUTORS.rst b/sale_timesheet_timeline/readme/CONTRIBUTORS.rst deleted file mode 100644 index ca5645bacc..0000000000 --- a/sale_timesheet_timeline/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ -* `Tecnativa `_: - - * Pedro M. Baeza diff --git a/sale_timesheet_timeline/readme/DESCRIPTION.rst b/sale_timesheet_timeline/readme/DESCRIPTION.md similarity index 59% rename from sale_timesheet_timeline/readme/DESCRIPTION.rst rename to sale_timesheet_timeline/readme/DESCRIPTION.md index 7df014b161..7fee0964fe 100644 --- a/sale_timesheet_timeline/readme/DESCRIPTION.rst +++ b/sale_timesheet_timeline/readme/DESCRIPTION.md @@ -1,6 +1,6 @@ -This module allows to plan in advance the start/end dates and assignees for the sales -order lines that are services, and they are transferred to the created task (if any) -when confirming the order. +This module allows to plan in advance the start/end dates and assignees +for the sales order lines that are services, and they are transferred to +the created task (if any) when confirming the order. It includes a timeline view for pre-viewing and managing the planning. diff --git a/sale_timesheet_timeline/readme/ROADMAP.rst b/sale_timesheet_timeline/readme/ROADMAP.md similarity index 100% rename from sale_timesheet_timeline/readme/ROADMAP.rst rename to sale_timesheet_timeline/readme/ROADMAP.md diff --git a/sale_timesheet_timeline/readme/USAGE.md b/sale_timesheet_timeline/readme/USAGE.md new file mode 100644 index 0000000000..6136fd1e77 --- /dev/null +++ b/sale_timesheet_timeline/readme/USAGE.md @@ -0,0 +1,8 @@ +1. Go to Sales \> Orders \> Quotations +2. Create a new record. +3. Add a line with a product of type "Service". +4. A new smart-button "Planning" will appear. +5. On optional fields, you will find 3 fields for setting manually the + planning data: "Task Start", "Task End" and "Task Assignees". +6. You can also click on the "Planning" button and plan the dates + visually in the timeline view. diff --git a/sale_timesheet_timeline/readme/USAGE.rst b/sale_timesheet_timeline/readme/USAGE.rst deleted file mode 100644 index a368ad39b5..0000000000 --- a/sale_timesheet_timeline/readme/USAGE.rst +++ /dev/null @@ -1,8 +0,0 @@ -#. Go to Sales > Orders > Quotations -#. Create a new record. -#. Add a line with a product of type "Service". -#. A new smart-button "Planning" will appear. -#. On optional fields, you will find 3 fields for setting manually the planning data: - "Task Start", "Task End" and "Task Assignees". -#. You can also click on the "Planning" button and plan the dates visually in the - timeline view. diff --git a/sale_timesheet_timeline/static/description/index.html b/sale_timesheet_timeline/static/description/index.html index ac26b7e57d..203193a63c 100644 --- a/sale_timesheet_timeline/static/description/index.html +++ b/sale_timesheet_timeline/static/description/index.html @@ -369,10 +369,10 @@

Dates planning in sales order lines

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:8f9fea88f3275fcbe5a535f86aaff7a8ef2f645719f47dd5bbd4c6523269b371 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

-

This module allows to plan in advance the start/end dates and assignees for the sales -order lines that are services, and they are transferred to the created task (if any) -when confirming the order.

+

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

+

This module allows to plan in advance the start/end dates and assignees +for the sales order lines that are services, and they are transferred to +the created task (if any) when confirming the order.

It includes a timeline view for pre-viewing and managing the planning.

In addition, this planning is shown in the order portal view.

Table of contents

@@ -396,10 +396,10 @@

Usage

  • Create a new record.
  • Add a line with a product of type “Service”.
  • A new smart-button “Planning” will appear.
  • -
  • On optional fields, you will find 3 fields for setting manually the planning data: -“Task Start”, “Task End” and “Task Assignees”.
  • -
  • You can also click on the “Planning” button and plan the dates visually in the -timeline view.
  • +
  • On optional fields, you will find 3 fields for setting manually the +planning data: “Task Start”, “Task End” and “Task Assignees”.
  • +
  • You can also click on the “Planning” button and plan the dates +visually in the timeline view.
  • @@ -413,7 +413,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.

    @@ -445,7 +445,7 @@

    Maintainers

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

    +

    This module is part of the OCA/timesheet project on GitHub.

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

    From b4a9524818f5985dc68991c8405e8a7b9808d635 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Sat, 16 Nov 2024 11:23:01 -0500 Subject: [PATCH 6/6] [MIG] sale_timesheet_timeline: Migration to 17.0 --- sale_timesheet_timeline/__manifest__.py | 2 +- .../tests/test_sale_timesheet_timeline.py | 4 +++- .../views/sale_order_views.xml | 19 +++++++++++++------ 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/sale_timesheet_timeline/__manifest__.py b/sale_timesheet_timeline/__manifest__.py index c6ed2da8eb..5b148d1bd2 100644 --- a/sale_timesheet_timeline/__manifest__.py +++ b/sale_timesheet_timeline/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Dates planning in sales order lines", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "category": "Services/Project", "website": "https://github.com/OCA/timesheet", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/sale_timesheet_timeline/tests/test_sale_timesheet_timeline.py b/sale_timesheet_timeline/tests/test_sale_timesheet_timeline.py index 12bd22e031..3af0d327dd 100644 --- a/sale_timesheet_timeline/tests/test_sale_timesheet_timeline.py +++ b/sale_timesheet_timeline/tests/test_sale_timesheet_timeline.py @@ -46,5 +46,7 @@ def test_task_creation(self): self.assertEqual( task.planned_date_end, fields.Datetime.from_string("2024-08-05 12:00:00") ) - self.assertEqual(task.date_deadline, fields.Date.from_string("2024-08-05")) + self.assertEqual( + task.date_deadline, fields.Datetime.from_string("2024-08-05 12:00:00") + ) self.assertEqual(task.user_ids, self.user) diff --git a/sale_timesheet_timeline/views/sale_order_views.xml b/sale_timesheet_timeline/views/sale_order_views.xml index 70884e0959..e1c3beff8a 100644 --- a/sale_timesheet_timeline/views/sale_order_views.xml +++ b/sale_timesheet_timeline/views/sale_order_views.xml @@ -19,7 +19,11 @@
    - +
    @@ -65,18 +69,21 @@ @@ -86,7 +93,7 @@ type="action" class="oe_stat_button" icon="fa-tasks" - attrs="{'invisible': [('any_service_line', '=', False)]}" + invisible="not any_service_line" >
    Planning