From 2a2ffcc8f80838334ce52e7cbae33d3d058402c0 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Mon, 24 Jul 2023 12:07:24 +0630 Subject: [PATCH 01/17] [ADD] project_task_name_with_id --- project_task_name_with_id/README.rst | 81 ++++ project_task_name_with_id/__init__.py | 1 + project_task_name_with_id/__manifest__.py | 13 + project_task_name_with_id/models/__init__.py | 1 + .../models/project_task.py | 24 + .../readme/DESCRIPTION.rst | 5 + project_task_name_with_id/readme/USAGE.rst | 2 + .../static/description/index.html | 423 ++++++++++++++++++ project_task_name_with_id/tests/__init__.py | 1 + .../tests/test_project_task_id.py | 37 ++ .../views/project_task_views.xml | 92 ++++ 11 files changed, 680 insertions(+) create mode 100644 project_task_name_with_id/README.rst create mode 100644 project_task_name_with_id/__init__.py create mode 100644 project_task_name_with_id/__manifest__.py create mode 100644 project_task_name_with_id/models/__init__.py create mode 100644 project_task_name_with_id/models/project_task.py create mode 100644 project_task_name_with_id/readme/DESCRIPTION.rst create mode 100644 project_task_name_with_id/readme/USAGE.rst create mode 100644 project_task_name_with_id/static/description/index.html create mode 100644 project_task_name_with_id/tests/__init__.py create mode 100644 project_task_name_with_id/tests/test_project_task_id.py create mode 100644 project_task_name_with_id/views/project_task_views.xml diff --git a/project_task_name_with_id/README.rst b/project_task_name_with_id/README.rst new file mode 100644 index 0000000000..5801882e6e --- /dev/null +++ b/project_task_name_with_id/README.rst @@ -0,0 +1,81 @@ +========================= +Project Task Name with ID +========================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:30a8c67c55a13b33d14d24e26f196d3f244654a3947fc5111e39891cc0275d02 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fproject-lightgray.png?logo=github + :target: https://github.com/OCA/project/tree/16.0/project_task_name_with_id + :alt: OCA/project +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/project-16-0/project-16-0-project_task_name_with_id + :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/project&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the name_search() and name_get() methods of the project.task model +to search for, and display the ID of the task in the name field. + +This module will simplify your operations if they heavily rely on the task ID. For +instance, you can select a task by its ID when creating a timesheet record. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +The task's display name will change to a concatenation of its ID and task name (e.g., [ID] task_name). +You can search for the task using its ID in the Many2one field or in the search 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 +~~~~~~~ + +* Quartile Limited + +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/project `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/project_task_name_with_id/__init__.py b/project_task_name_with_id/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/project_task_name_with_id/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/project_task_name_with_id/__manifest__.py b/project_task_name_with_id/__manifest__.py new file mode 100644 index 0000000000..5b3fec18d6 --- /dev/null +++ b/project_task_name_with_id/__manifest__.py @@ -0,0 +1,13 @@ +# Copyright 2023 Quartile Limited +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Project Task Name with ID", + "category": "Project", + "version": "16.0.1.0.0", + "author": "Quartile Limited, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/project", + "license": "AGPL-3", + "depends": ["project"], + "data": ["views/project_task_views.xml"], + "installable": True, +} diff --git a/project_task_name_with_id/models/__init__.py b/project_task_name_with_id/models/__init__.py new file mode 100644 index 0000000000..edf2d36b9c --- /dev/null +++ b/project_task_name_with_id/models/__init__.py @@ -0,0 +1 @@ +from . import project_task diff --git a/project_task_name_with_id/models/project_task.py b/project_task_name_with_id/models/project_task.py new file mode 100644 index 0000000000..034107e790 --- /dev/null +++ b/project_task_name_with_id/models/project_task.py @@ -0,0 +1,24 @@ +# Copyright 2023 Quartile Limited +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class ProjectTask(models.Model): + _inherit = "project.task" + + @api.model + def name_search(self, name, args=None, operator="ilike", limit=100): + recs = self.search( + ["|", ("name", operator, name), ("id", operator, name)], limit=limit + ) + return recs.name_get() + + def name_get(self): + result = super().name_get() + new_result = [] + for task in result: + rec = self.browse(task[0]) + name = "[{}] {}".format(rec.id, task[1]) + new_result.append((rec.id, name)) + return new_result diff --git a/project_task_name_with_id/readme/DESCRIPTION.rst b/project_task_name_with_id/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..d3e0cbc715 --- /dev/null +++ b/project_task_name_with_id/readme/DESCRIPTION.rst @@ -0,0 +1,5 @@ +This module extends the name_search() and name_get() methods of the project.task model +to search for, and display the ID of the task in the name field. + +This module will simplify your operations if they heavily rely on the task ID. For +instance, you can select a task by its ID when creating a timesheet record. diff --git a/project_task_name_with_id/readme/USAGE.rst b/project_task_name_with_id/readme/USAGE.rst new file mode 100644 index 0000000000..e2b9296098 --- /dev/null +++ b/project_task_name_with_id/readme/USAGE.rst @@ -0,0 +1,2 @@ +The task's display name will change to a concatenation of its ID and task name (e.g., [ID] task_name). +You can search for the task using its ID in the Many2one field or in the search view. diff --git a/project_task_name_with_id/static/description/index.html b/project_task_name_with_id/static/description/index.html new file mode 100644 index 0000000000..16a5e3e490 --- /dev/null +++ b/project_task_name_with_id/static/description/index.html @@ -0,0 +1,423 @@ + + + + + + +Project Task Name with ID + + + +
+

Project Task Name with ID

+ + +

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

+

This module extends the name_search() and name_get() methods of the project.task model +to search for, and display the ID of the task in the name field.

+

This module will simplify your operations if they heavily rely on the task ID. For +instance, you can select a task by its ID when creating a timesheet record.

+

Table of contents

+ +
+

Usage

+

The task’s display name will change to a concatenation of its ID and task name (e.g., [ID] task_name). +You can search for the task using its ID in the Many2one field or in the search 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

+
    +
  • Quartile Limited
  • +
+
+
+

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

+

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

+
+
+
+ + diff --git a/project_task_name_with_id/tests/__init__.py b/project_task_name_with_id/tests/__init__.py new file mode 100644 index 0000000000..ea27e1fc5d --- /dev/null +++ b/project_task_name_with_id/tests/__init__.py @@ -0,0 +1 @@ +from . import test_project_task_id diff --git a/project_task_name_with_id/tests/test_project_task_id.py b/project_task_name_with_id/tests/test_project_task_id.py new file mode 100644 index 0000000000..2082fa2388 --- /dev/null +++ b/project_task_name_with_id/tests/test_project_task_id.py @@ -0,0 +1,37 @@ +# Copyright 2023 Quartile Limited +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +import re + +from odoo.tests.common import TransactionCase + + +class TestProjectTaskID(TransactionCase): + def setUp(self): + super(TestProjectTaskID, self).setUp() + self.ProjectTask = self.env["project.task"] + self.project_task = self.ProjectTask.create( + { + "name": "Test task", + } + ) + + def test_name_search(self): + # Test searching by name + tasks = self.ProjectTask.name_search("Test task") + self.assertEqual(len(tasks), 1) + self.assertEqual(tasks[0][0], self.project_task.id) + + # Test searching by ID + tasks = self.ProjectTask.name_search(str(self.project_task.id)) + self.assertEqual(len(tasks), 1) + self.assertEqual(tasks[0][0], self.project_task.id) + + def test_name_get(self): + # Test the new name_get method + name_get = self.project_task.name_get()[0] + self.assertEqual(name_get[0], self.project_task.id) + task_id = self.project_task.id + # Checking for the task ID and "Test task" anywhere in the string + pattern = re.compile(rf"\[{task_id}\].*Test task") + self.assertTrue(pattern.search(name_get[1])) diff --git a/project_task_name_with_id/views/project_task_views.xml b/project_task_name_with_id/views/project_task_views.xml new file mode 100644 index 0000000000..a7d8fa7080 --- /dev/null +++ b/project_task_name_with_id/views/project_task_views.xml @@ -0,0 +1,92 @@ + + + + project.task.tree + project.task + + + + show + + + + + project.task.kanban + project.task + + + + + 1 + + + + + + + + + + + + + + + + + + project.sharing.project.task.tree + project.task + + + + + + + + + project.sharing.project.task.view.kanban + project.task + + + + + 1 + + + + + + + + + + + + + + + project.task.search.form + project.task + + + + ['|', ('name', 'ilike', self), ('id', 'ilike', self)] + + + + From 9be544af105288d2a5fa49626d0598d0f714f36b Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 17 Apr 2024 07:45:17 +0000 Subject: [PATCH 02/17] [UPD] Update project_task_name_with_id.pot --- .../i18n/project_task_name_with_id.pot | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 project_task_name_with_id/i18n/project_task_name_with_id.pot diff --git a/project_task_name_with_id/i18n/project_task_name_with_id.pot b/project_task_name_with_id/i18n/project_task_name_with_id.pot new file mode 100644 index 0000000000..86accfceae --- /dev/null +++ b/project_task_name_with_id/i18n/project_task_name_with_id.pot @@ -0,0 +1,19 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_task_name_with_id +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: project_task_name_with_id +#: model:ir.model,name:project_task_name_with_id.model_project_task +msgid "Task" +msgstr "" From 34ed5cd99dc3cee770a55401063b0f9988168f6f Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 17 Apr 2024 07:49:08 +0000 Subject: [PATCH 03/17] [BOT] post-merge updates --- .../static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 project_task_name_with_id/static/description/icon.png diff --git a/project_task_name_with_id/static/description/icon.png b/project_task_name_with_id/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 From ab6181ada2003ce9a3e54e6e47a20e0d703d9d50 Mon Sep 17 00:00:00 2001 From: mymage Date: Fri, 19 Apr 2024 09:29:36 +0000 Subject: [PATCH 04/17] Added translation using Weblate (Italian) --- project_task_name_with_id/i18n/it.po | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 project_task_name_with_id/i18n/it.po diff --git a/project_task_name_with_id/i18n/it.po b/project_task_name_with_id/i18n/it.po new file mode 100644 index 0000000000..7467841c3b --- /dev/null +++ b/project_task_name_with_id/i18n/it.po @@ -0,0 +1,20 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_task_name_with_id +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\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" + +#. module: project_task_name_with_id +#: model:ir.model,name:project_task_name_with_id.model_project_task +msgid "Task" +msgstr "" From 672975571baac3ae22e8b19ef360ff0020db9afe Mon Sep 17 00:00:00 2001 From: mymage Date: Fri, 19 Apr 2024 09:29:53 +0000 Subject: [PATCH 05/17] Translated using Weblate (Italian) Currently translated at 100.0% (1 of 1 strings) Translation: project-16.0/project-16.0-project_task_name_with_id Translate-URL: https://translation.odoo-community.org/projects/project-16-0/project-16-0-project_task_name_with_id/it/ --- project_task_name_with_id/i18n/it.po | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/project_task_name_with_id/i18n/it.po b/project_task_name_with_id/i18n/it.po index 7467841c3b..72c417cf17 100644 --- a/project_task_name_with_id/i18n/it.po +++ b/project_task_name_with_id/i18n/it.po @@ -6,15 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-04-19 11:41+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 4.17\n" #. module: project_task_name_with_id #: model:ir.model,name:project_task_name_with_id.model_project_task msgid "Task" -msgstr "" +msgstr "Lavoro" From 35b63c7f329e5d43ce8af5bcaee35a82a867880f Mon Sep 17 00:00:00 2001 From: Lansana Barry Sow Date: Thu, 3 Apr 2025 14:59:06 +0200 Subject: [PATCH 06/17] [16.0][IMP] project_task_name_with_id: improve searching --- project_task_name_with_id/models/project_task.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/project_task_name_with_id/models/project_task.py b/project_task_name_with_id/models/project_task.py index 034107e790..eade114f4a 100644 --- a/project_task_name_with_id/models/project_task.py +++ b/project_task_name_with_id/models/project_task.py @@ -2,6 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo import api, models +from odoo.osv import expression class ProjectTask(models.Model): @@ -9,9 +10,10 @@ class ProjectTask(models.Model): @api.model def name_search(self, name, args=None, operator="ilike", limit=100): - recs = self.search( - ["|", ("name", operator, name), ("id", operator, name)], limit=limit + domain = expression.AND( + [args or [], ["|", ("name", operator, name), ("id", operator, name)]] ) + recs = self.search(domain, limit=limit) return recs.name_get() def name_get(self): From 0bfdddb1c3e7e3e98d387353532110351d21eee1 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 9 Apr 2025 06:40:30 +0000 Subject: [PATCH 07/17] [BOT] post-merge updates --- project_task_name_with_id/README.rst | 2 +- project_task_name_with_id/__manifest__.py | 2 +- .../static/description/index.html | 14 ++++++++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/project_task_name_with_id/README.rst b/project_task_name_with_id/README.rst index 5801882e6e..ee0cc246be 100644 --- a/project_task_name_with_id/README.rst +++ b/project_task_name_with_id/README.rst @@ -7,7 +7,7 @@ Project Task Name with ID !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:30a8c67c55a13b33d14d24e26f196d3f244654a3947fc5111e39891cc0275d02 + !! source digest: sha256:01488fcba536651c7bbbc53456bd9853024ef979d829b9dd06563c05429e8f89 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/project_task_name_with_id/__manifest__.py b/project_task_name_with_id/__manifest__.py index 5b3fec18d6..fe774cb001 100644 --- a/project_task_name_with_id/__manifest__.py +++ b/project_task_name_with_id/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Project Task Name with ID", "category": "Project", - "version": "16.0.1.0.0", + "version": "16.0.1.0.1", "author": "Quartile Limited, Odoo Community Association (OCA)", "website": "https://github.com/OCA/project", "license": "AGPL-3", diff --git a/project_task_name_with_id/static/description/index.html b/project_task_name_with_id/static/description/index.html index 16a5e3e490..85de464c15 100644 --- a/project_task_name_with_id/static/description/index.html +++ b/project_task_name_with_id/static/description/index.html @@ -1,4 +1,3 @@ - @@ -9,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. @@ -275,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 } @@ -301,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -367,7 +367,7 @@

Project Task Name with ID

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:30a8c67c55a13b33d14d24e26f196d3f244654a3947fc5111e39891cc0275d02 +!! source digest: sha256:01488fcba536651c7bbbc53456bd9853024ef979d829b9dd06563c05429e8f89 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module extends the name_search() and name_get() methods of the project.task model @@ -410,7 +410,9 @@

Authors

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 a4bc6aa333f0566b21ae53936ee576ab03144f08 Mon Sep 17 00:00:00 2001 From: Lansana Barry Sow Date: Thu, 10 Apr 2025 16:53:14 +0200 Subject: [PATCH 08/17] [IMP] project_task_name_with_id: pre-commit auto fixes --- project_task_name_with_id/README.rst | 29 ++++++++++--------- .../models/project_task.py | 2 +- project_task_name_with_id/pyproject.toml | 3 ++ .../readme/DESCRIPTION.md | 7 +++++ .../readme/DESCRIPTION.rst | 5 ---- project_task_name_with_id/readme/USAGE.md | 3 ++ project_task_name_with_id/readme/USAGE.rst | 2 -- .../static/description/index.html | 21 ++++++++------ .../tests/test_project_task_id.py | 2 +- 9 files changed, 43 insertions(+), 31 deletions(-) create mode 100644 project_task_name_with_id/pyproject.toml create mode 100644 project_task_name_with_id/readme/DESCRIPTION.md delete mode 100644 project_task_name_with_id/readme/DESCRIPTION.rst create mode 100644 project_task_name_with_id/readme/USAGE.md delete mode 100644 project_task_name_with_id/readme/USAGE.rst diff --git a/project_task_name_with_id/README.rst b/project_task_name_with_id/README.rst index ee0cc246be..382aec6688 100644 --- a/project_task_name_with_id/README.rst +++ b/project_task_name_with_id/README.rst @@ -17,22 +17,24 @@ Project Task Name with ID :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproject-lightgray.png?logo=github - :target: https://github.com/OCA/project/tree/16.0/project_task_name_with_id + :target: https://github.com/OCA/project/tree/17.0/project_task_name_with_id :alt: OCA/project .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/project-16-0/project-16-0-project_task_name_with_id + :target: https://translation.odoo-community.org/projects/project-17-0/project-17-0-project_task_name_with_id :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/project&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module extends the name_search() and name_get() methods of the project.task model -to search for, and display the ID of the task in the name field. +This module extends the name_search() and name_get() methods of the +project.task model to search for, and display the ID of the task in the +name field. -This module will simplify your operations if they heavily rely on the task ID. For -instance, you can select a task by its ID when creating a timesheet record. +This module will simplify your operations if they heavily rely on the +task ID. For instance, you can select a task by its ID when creating a +timesheet record. **Table of contents** @@ -42,8 +44,9 @@ instance, you can select a task by its ID when creating a timesheet record. Usage ===== -The task's display name will change to a concatenation of its ID and task name (e.g., [ID] task_name). -You can search for the task using its ID in the Many2one field or in the search view. +The task's display name will change to a concatenation of its ID and +task name (e.g., [ID] task_name). You can search for the task using its +ID in the Many2one field or in the search view. Bug Tracker =========== @@ -51,7 +54,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. @@ -59,12 +62,12 @@ Credits ======= Authors -~~~~~~~ +------- * Quartile Limited Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -76,6 +79,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/project `_ project on GitHub. +This module is part of the `OCA/project `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/project_task_name_with_id/models/project_task.py b/project_task_name_with_id/models/project_task.py index eade114f4a..005408bedc 100644 --- a/project_task_name_with_id/models/project_task.py +++ b/project_task_name_with_id/models/project_task.py @@ -21,6 +21,6 @@ def name_get(self): new_result = [] for task in result: rec = self.browse(task[0]) - name = "[{}] {}".format(rec.id, task[1]) + name = f"[{rec.id}] {task[1]}" new_result.append((rec.id, name)) return new_result diff --git a/project_task_name_with_id/pyproject.toml b/project_task_name_with_id/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/project_task_name_with_id/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/project_task_name_with_id/readme/DESCRIPTION.md b/project_task_name_with_id/readme/DESCRIPTION.md new file mode 100644 index 0000000000..5210ecf926 --- /dev/null +++ b/project_task_name_with_id/readme/DESCRIPTION.md @@ -0,0 +1,7 @@ +This module extends the name_search() and name_get() methods of the +project.task model to search for, and display the ID of the task in the +name field. + +This module will simplify your operations if they heavily rely on the +task ID. For instance, you can select a task by its ID when creating a +timesheet record. diff --git a/project_task_name_with_id/readme/DESCRIPTION.rst b/project_task_name_with_id/readme/DESCRIPTION.rst deleted file mode 100644 index d3e0cbc715..0000000000 --- a/project_task_name_with_id/readme/DESCRIPTION.rst +++ /dev/null @@ -1,5 +0,0 @@ -This module extends the name_search() and name_get() methods of the project.task model -to search for, and display the ID of the task in the name field. - -This module will simplify your operations if they heavily rely on the task ID. For -instance, you can select a task by its ID when creating a timesheet record. diff --git a/project_task_name_with_id/readme/USAGE.md b/project_task_name_with_id/readme/USAGE.md new file mode 100644 index 0000000000..76f93b803a --- /dev/null +++ b/project_task_name_with_id/readme/USAGE.md @@ -0,0 +1,3 @@ +The task's display name will change to a concatenation of its ID and +task name (e.g., \[ID\] task_name). You can search for the task using +its ID in the Many2one field or in the search view. diff --git a/project_task_name_with_id/readme/USAGE.rst b/project_task_name_with_id/readme/USAGE.rst deleted file mode 100644 index e2b9296098..0000000000 --- a/project_task_name_with_id/readme/USAGE.rst +++ /dev/null @@ -1,2 +0,0 @@ -The task's display name will change to a concatenation of its ID and task name (e.g., [ID] task_name). -You can search for the task using its ID in the Many2one field or in the search view. diff --git a/project_task_name_with_id/static/description/index.html b/project_task_name_with_id/static/description/index.html index 85de464c15..99644fdef0 100644 --- a/project_task_name_with_id/static/description/index.html +++ b/project_task_name_with_id/static/description/index.html @@ -369,11 +369,13 @@

Project Task Name with ID

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:01488fcba536651c7bbbc53456bd9853024ef979d829b9dd06563c05429e8f89 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

-

This module extends the name_search() and name_get() methods of the project.task model -to search for, and display the ID of the task in the name field.

-

This module will simplify your operations if they heavily rely on the task ID. For -instance, you can select a task by its ID when creating a timesheet record.

+

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

+

This module extends the name_search() and name_get() methods of the +project.task model to search for, and display the ID of the task in the +name field.

+

This module will simplify your operations if they heavily rely on the +task ID. For instance, you can select a task by its ID when creating a +timesheet record.

Table of contents

    @@ -388,15 +390,16 @@

    Project Task Name with ID

Usage

-

The task’s display name will change to a concatenation of its ID and task name (e.g., [ID] task_name). -You can search for the task using its ID in the Many2one field or in the search view.

+

The task’s display name will change to a concatenation of its ID and +task name (e.g., [ID] task_name). You can search for the task using its +ID in the Many2one field or in the search 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.

+feedback.

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

@@ -416,7 +419,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/project project on GitHub.

+

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

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

diff --git a/project_task_name_with_id/tests/test_project_task_id.py b/project_task_name_with_id/tests/test_project_task_id.py index 2082fa2388..371a740c70 100644 --- a/project_task_name_with_id/tests/test_project_task_id.py +++ b/project_task_name_with_id/tests/test_project_task_id.py @@ -8,7 +8,7 @@ class TestProjectTaskID(TransactionCase): def setUp(self): - super(TestProjectTaskID, self).setUp() + super().setUp() self.ProjectTask = self.env["project.task"] self.project_task = self.ProjectTask.create( { From 6336439893b8ed77a455e0cedc5c01899ce2e5ef Mon Sep 17 00:00:00 2001 From: Lansana Barry Sow Date: Thu, 10 Apr 2025 16:55:49 +0200 Subject: [PATCH 09/17] [MIG] project_task_name_with_id: Migration to 17.0 --- project_task_name_with_id/__manifest__.py | 2 +- .../models/project_task.py | 28 ++++++++++--------- .../tests/test_project_task_id.py | 17 ++++++----- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/project_task_name_with_id/__manifest__.py b/project_task_name_with_id/__manifest__.py index fe774cb001..54ed389e2c 100644 --- a/project_task_name_with_id/__manifest__.py +++ b/project_task_name_with_id/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Project Task Name with ID", "category": "Project", - "version": "16.0.1.0.1", + "version": "17.0.1.0.0", "author": "Quartile Limited, Odoo Community Association (OCA)", "website": "https://github.com/OCA/project", "license": "AGPL-3", diff --git a/project_task_name_with_id/models/project_task.py b/project_task_name_with_id/models/project_task.py index 005408bedc..d3e0188fcc 100644 --- a/project_task_name_with_id/models/project_task.py +++ b/project_task_name_with_id/models/project_task.py @@ -8,19 +8,21 @@ class ProjectTask(models.Model): _inherit = "project.task" + @api.depends("name") + def _compute_display_name(self): + for task in self: + parts = [f"[{task.id}]"] + if hasattr(task, "key") and task.key: + parts.append(task.key) + if task.name: + parts.append(task.name) + task.display_name = " ".join(parts) + @api.model - def name_search(self, name, args=None, operator="ilike", limit=100): + def name_search(self, name="", args=None, operator="ilike", limit=100): + args = args or [] domain = expression.AND( - [args or [], ["|", ("name", operator, name), ("id", operator, name)]] + [args, ["|", ("name", operator, name), ("id", operator, name)]] ) - recs = self.search(domain, limit=limit) - return recs.name_get() - - def name_get(self): - result = super().name_get() - new_result = [] - for task in result: - rec = self.browse(task[0]) - name = f"[{rec.id}] {task[1]}" - new_result.append((rec.id, name)) - return new_result + records = self.search(domain, limit=limit) + return [(rec.id, rec.display_name or "") for rec in records] diff --git a/project_task_name_with_id/tests/test_project_task_id.py b/project_task_name_with_id/tests/test_project_task_id.py index 371a740c70..bee6bb19ea 100644 --- a/project_task_name_with_id/tests/test_project_task_id.py +++ b/project_task_name_with_id/tests/test_project_task_id.py @@ -7,10 +7,11 @@ class TestProjectTaskID(TransactionCase): - def setUp(self): - super().setUp() - self.ProjectTask = self.env["project.task"] - self.project_task = self.ProjectTask.create( + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.ProjectTask = cls.env["project.task"] + cls.project_task = cls.ProjectTask.create( { "name": "Test task", } @@ -27,11 +28,9 @@ def test_name_search(self): self.assertEqual(len(tasks), 1) self.assertEqual(tasks[0][0], self.project_task.id) - def test_name_get(self): - # Test the new name_get method - name_get = self.project_task.name_get()[0] - self.assertEqual(name_get[0], self.project_task.id) + def test_display_name(self): + display_name = self.project_task.display_name task_id = self.project_task.id # Checking for the task ID and "Test task" anywhere in the string pattern = re.compile(rf"\[{task_id}\].*Test task") - self.assertTrue(pattern.search(name_get[1])) + self.assertTrue(pattern.search(display_name)) From de83a79d7db90c80a425da26c0adfe504dee67ce Mon Sep 17 00:00:00 2001 From: oca-ci Date: Tue, 13 May 2025 10:11:10 +0000 Subject: [PATCH 10/17] [UPD] Update project_task_name_with_id.pot --- project_task_name_with_id/i18n/project_task_name_with_id.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_task_name_with_id/i18n/project_task_name_with_id.pot b/project_task_name_with_id/i18n/project_task_name_with_id.pot index 86accfceae..2708c2b38e 100644 --- a/project_task_name_with_id/i18n/project_task_name_with_id.pot +++ b/project_task_name_with_id/i18n/project_task_name_with_id.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From 44a3e4e3956d6591024523d2033f18e7b864a473 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 13 May 2025 10:14:47 +0000 Subject: [PATCH 11/17] [BOT] post-merge updates --- project_task_name_with_id/README.rst | 2 +- project_task_name_with_id/static/description/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/project_task_name_with_id/README.rst b/project_task_name_with_id/README.rst index 382aec6688..80339d2ec2 100644 --- a/project_task_name_with_id/README.rst +++ b/project_task_name_with_id/README.rst @@ -7,7 +7,7 @@ Project Task Name with ID !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:01488fcba536651c7bbbc53456bd9853024ef979d829b9dd06563c05429e8f89 + !! source digest: sha256:d91dab09c1cc8d6173b44ff3535d17892c2ed1701ef224334349d3d1c0f943d6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/project_task_name_with_id/static/description/index.html b/project_task_name_with_id/static/description/index.html index 99644fdef0..82d327aeb0 100644 --- a/project_task_name_with_id/static/description/index.html +++ b/project_task_name_with_id/static/description/index.html @@ -367,7 +367,7 @@

Project Task Name with ID

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:01488fcba536651c7bbbc53456bd9853024ef979d829b9dd06563c05429e8f89 +!! source digest: sha256:d91dab09c1cc8d6173b44ff3535d17892c2ed1701ef224334349d3d1c0f943d6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module extends the name_search() and name_get() methods of the From 3f531cb7d62bdc70624afe90faeaef6d83686b66 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Wed, 14 May 2025 04:48:14 +0000 Subject: [PATCH 12/17] [FIX] project_task_name_with_id: avoid overriding _compute_display_name --- project_task_name_with_id/models/project_task.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/project_task_name_with_id/models/project_task.py b/project_task_name_with_id/models/project_task.py index d3e0188fcc..743a0158c6 100644 --- a/project_task_name_with_id/models/project_task.py +++ b/project_task_name_with_id/models/project_task.py @@ -10,13 +10,10 @@ class ProjectTask(models.Model): @api.depends("name") def _compute_display_name(self): + super()._compute_display_name() for task in self: - parts = [f"[{task.id}]"] - if hasattr(task, "key") and task.key: - parts.append(task.key) - if task.name: - parts.append(task.name) - task.display_name = " ".join(parts) + task.display_name = f"[{task.id}] {task.display_name}" + return @api.model def name_search(self, name="", args=None, operator="ilike", limit=100): From e7d0910f7eebf96343c9ac4da6033d2b5130ed9b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 2 Jun 2025 10:45:06 +0000 Subject: [PATCH 13/17] [BOT] post-merge updates --- project_task_name_with_id/README.rst | 2 +- project_task_name_with_id/__manifest__.py | 2 +- project_task_name_with_id/static/description/index.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/project_task_name_with_id/README.rst b/project_task_name_with_id/README.rst index 80339d2ec2..c39c3232ae 100644 --- a/project_task_name_with_id/README.rst +++ b/project_task_name_with_id/README.rst @@ -7,7 +7,7 @@ Project Task Name with ID !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:d91dab09c1cc8d6173b44ff3535d17892c2ed1701ef224334349d3d1c0f943d6 + !! source digest: sha256:d3b2a7bb01f7c2a203c457755f8d44e889ab64b2da9bd77a668d7c586ad5a931 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/project_task_name_with_id/__manifest__.py b/project_task_name_with_id/__manifest__.py index 54ed389e2c..f543ca38c9 100644 --- a/project_task_name_with_id/__manifest__.py +++ b/project_task_name_with_id/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Project Task Name with ID", "category": "Project", - "version": "17.0.1.0.0", + "version": "17.0.1.0.1", "author": "Quartile Limited, Odoo Community Association (OCA)", "website": "https://github.com/OCA/project", "license": "AGPL-3", diff --git a/project_task_name_with_id/static/description/index.html b/project_task_name_with_id/static/description/index.html index 82d327aeb0..7a007238ee 100644 --- a/project_task_name_with_id/static/description/index.html +++ b/project_task_name_with_id/static/description/index.html @@ -367,7 +367,7 @@

Project Task Name with ID

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

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

This module extends the name_search() and name_get() methods of the From a9a62475f988963521b296d36bd39d590d6f3b3f Mon Sep 17 00:00:00 2001 From: mpascual Date: Mon, 2 Jun 2025 17:26:58 +0200 Subject: [PATCH 14/17] [MIG] project_task_name_with_id: Migration to 18.0 --- project_task_name_with_id/README.rst | 15 +++++++---- project_task_name_with_id/__manifest__.py | 2 +- .../readme/CONTRIBUTORS.md | 1 + .../static/description/index.html | 17 ++++++++---- .../views/project_task_views.xml | 27 ++++++++----------- 5 files changed, 35 insertions(+), 27 deletions(-) create mode 100644 project_task_name_with_id/readme/CONTRIBUTORS.md diff --git a/project_task_name_with_id/README.rst b/project_task_name_with_id/README.rst index c39c3232ae..a8e50f0e19 100644 --- a/project_task_name_with_id/README.rst +++ b/project_task_name_with_id/README.rst @@ -17,13 +17,13 @@ Project Task Name with ID :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproject-lightgray.png?logo=github - :target: https://github.com/OCA/project/tree/17.0/project_task_name_with_id + :target: https://github.com/OCA/project/tree/18.0/project_task_name_with_id :alt: OCA/project .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/project-17-0/project-17-0-project_task_name_with_id + :target: https://translation.odoo-community.org/projects/project-18-0/project-18-0-project_task_name_with_id :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/project&target_branch=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -54,7 +54,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. @@ -66,6 +66,11 @@ Authors * Quartile Limited +Contributors +------------ + +- Miquel Pascual + Maintainers ----------- @@ -79,6 +84,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/project `_ project on GitHub. +This module is part of the `OCA/project `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/project_task_name_with_id/__manifest__.py b/project_task_name_with_id/__manifest__.py index f543ca38c9..b177569d91 100644 --- a/project_task_name_with_id/__manifest__.py +++ b/project_task_name_with_id/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Project Task Name with ID", "category": "Project", - "version": "17.0.1.0.1", + "version": "18.0.1.0.0", "author": "Quartile Limited, Odoo Community Association (OCA)", "website": "https://github.com/OCA/project", "license": "AGPL-3", diff --git a/project_task_name_with_id/readme/CONTRIBUTORS.md b/project_task_name_with_id/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..ccb7b31107 --- /dev/null +++ b/project_task_name_with_id/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Miquel Pascual \<\> \ No newline at end of file diff --git a/project_task_name_with_id/static/description/index.html b/project_task_name_with_id/static/description/index.html index 7a007238ee..547e30302d 100644 --- a/project_task_name_with_id/static/description/index.html +++ b/project_task_name_with_id/static/description/index.html @@ -369,7 +369,7 @@

Project Task Name with ID

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:d3b2a7bb01f7c2a203c457755f8d44e889ab64b2da9bd77a668d7c586ad5a931 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module extends the name_search() and name_get() methods of the project.task model to search for, and display the ID of the task in the name field.

@@ -383,7 +383,8 @@

Project Task Name with ID

  • Bug Tracker
  • Credits
  • @@ -399,7 +400,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.

    @@ -410,8 +411,14 @@

    Authors

  • Quartile Limited
  • +
    +

    Contributors

    + +
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -419,7 +426,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/project project on GitHub.

    +

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

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

    diff --git a/project_task_name_with_id/views/project_task_views.xml b/project_task_name_with_id/views/project_task_views.xml index a7d8fa7080..5d4aa5cc88 100644 --- a/project_task_name_with_id/views/project_task_views.xml +++ b/project_task_name_with_id/views/project_task_views.xml @@ -16,21 +16,19 @@ - + 1 - - + + + - + @@ -42,7 +40,7 @@ project.task - + @@ -56,21 +54,18 @@ /> - + 1 - - + + - + @@ -82,7 +77,7 @@ ref="project.project_sharing_project_task_view_search" /> - + ['|', ('name', 'ilike', self), ('id', 'ilike', self)] From 69a0327ebeb27cfc2c9712ce6347ead99012dd99 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 4 Jun 2025 07:44:48 +0000 Subject: [PATCH 15/17] [UPD] Update project_task_name_with_id.pot --- project_task_name_with_id/i18n/project_task_name_with_id.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_task_name_with_id/i18n/project_task_name_with_id.pot b/project_task_name_with_id/i18n/project_task_name_with_id.pot index 2708c2b38e..11e64f97eb 100644 --- a/project_task_name_with_id/i18n/project_task_name_with_id.pot +++ b/project_task_name_with_id/i18n/project_task_name_with_id.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 17.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From 2ae1261b0c21b4387bb5e87e52f226db4625d016 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 4 Jun 2025 07:48:27 +0000 Subject: [PATCH 16/17] [BOT] post-merge updates --- project_task_name_with_id/README.rst | 10 +++++-- .../static/description/index.html | 28 +++++++++++-------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/project_task_name_with_id/README.rst b/project_task_name_with_id/README.rst index a8e50f0e19..0bb9e4aade 100644 --- a/project_task_name_with_id/README.rst +++ b/project_task_name_with_id/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ========================= Project Task Name with ID ========================= @@ -7,13 +11,13 @@ Project Task Name with ID !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:d3b2a7bb01f7c2a203c457755f8d44e889ab64b2da9bd77a668d7c586ad5a931 + !! source digest: sha256:5180287a1ce53ba3eb560ab3322d2059df11868e185030459bb0c7357eb64b77 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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 +.. |badge2| image:: https://img.shields.io/badge/license-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%2Fproject-lightgray.png?logo=github @@ -69,7 +73,7 @@ Authors Contributors ------------ -- Miquel Pascual +- Miquel Pascual Maintainers ----------- diff --git a/project_task_name_with_id/static/description/index.html b/project_task_name_with_id/static/description/index.html index 547e30302d..40c97a573b 100644 --- a/project_task_name_with_id/static/description/index.html +++ b/project_task_name_with_id/static/description/index.html @@ -3,7 +3,7 @@ -Project Task Name with ID +README.rst -
    -

    Project Task Name with ID

    +
    + + +Odoo Community Association + +
    +

    Project Task Name with ID

    -

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

    +

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

    This module extends the name_search() and name_get() methods of the project.task model to search for, and display the ID of the task in the name field.

    @@ -390,13 +395,13 @@

    Project Task Name with ID

    -

    Usage

    +

    Usage

    The task’s display name will change to a concatenation of its ID and task name (e.g., [ID] task_name). You can search for the task using its ID in the Many2one field or in the search view.

    -

    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 @@ -404,21 +409,21 @@

    Bug Tracker

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

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Quartile Limited
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -431,5 +436,6 @@

    Maintainers

    +
    From 44446097234b6d64ce60de10c6bb9559cfe13a2a Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Thu, 9 Oct 2025 03:34:32 +0000 Subject: [PATCH 17/17] [MIG] project_task_name_with_id: Migration to 19.0 --- project_task_name_with_id/README.rst | 18 +++++++++++------- project_task_name_with_id/__manifest__.py | 6 +++--- .../models/project_task.py | 8 +++++--- .../readme/CONTRIBUTORS.md | 4 +++- .../static/description/index.html | 12 ++++++++---- .../views/project_task_views.xml | 7 ++----- 6 files changed, 32 insertions(+), 23 deletions(-) diff --git a/project_task_name_with_id/README.rst b/project_task_name_with_id/README.rst index 0bb9e4aade..9eaa54c3d2 100644 --- a/project_task_name_with_id/README.rst +++ b/project_task_name_with_id/README.rst @@ -21,13 +21,13 @@ Project Task Name with ID :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproject-lightgray.png?logo=github - :target: https://github.com/OCA/project/tree/18.0/project_task_name_with_id + :target: https://github.com/OCA/project/tree/19.0/project_task_name_with_id :alt: OCA/project .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/project-18-0/project-18-0-project_task_name_with_id + :target: https://translation.odoo-community.org/projects/project-19-0/project-19-0-project_task_name_with_id :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/project&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -58,7 +58,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. @@ -68,12 +68,16 @@ Credits Authors ------- -* Quartile Limited +* Quartile Contributors ------------ -- Miquel Pascual +- `Quartile `__: + + - Yoshi Tashiro + +- Miquel Pascual Maintainers ----------- @@ -88,6 +92,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/project `_ project on GitHub. +This module is part of the `OCA/project `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/project_task_name_with_id/__manifest__.py b/project_task_name_with_id/__manifest__.py index b177569d91..362fc9b5e1 100644 --- a/project_task_name_with_id/__manifest__.py +++ b/project_task_name_with_id/__manifest__.py @@ -1,10 +1,10 @@ -# Copyright 2023 Quartile Limited +# Copyright 2023 Quartile (https://www.quartile.co) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Project Task Name with ID", "category": "Project", - "version": "18.0.1.0.0", - "author": "Quartile Limited, Odoo Community Association (OCA)", + "version": "19.0.1.0.0", + "author": "Quartile, Odoo Community Association (OCA)", "website": "https://github.com/OCA/project", "license": "AGPL-3", "depends": ["project"], diff --git a/project_task_name_with_id/models/project_task.py b/project_task_name_with_id/models/project_task.py index 743a0158c6..a79a924e11 100644 --- a/project_task_name_with_id/models/project_task.py +++ b/project_task_name_with_id/models/project_task.py @@ -1,8 +1,8 @@ -# Copyright 2023 Quartile Limited +# Copyright 2023 Quartile (https://www.quartile.co) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo import api, models -from odoo.osv import expression +from odoo.fields import Domain class ProjectTask(models.Model): @@ -12,13 +12,15 @@ class ProjectTask(models.Model): def _compute_display_name(self): super()._compute_display_name() for task in self: + if not task.id: + continue task.display_name = f"[{task.id}] {task.display_name}" return @api.model def name_search(self, name="", args=None, operator="ilike", limit=100): args = args or [] - domain = expression.AND( + domain = Domain.AND( [args, ["|", ("name", operator, name), ("id", operator, name)]] ) records = self.search(domain, limit=limit) diff --git a/project_task_name_with_id/readme/CONTRIBUTORS.md b/project_task_name_with_id/readme/CONTRIBUTORS.md index ccb7b31107..1b2b2b22b2 100644 --- a/project_task_name_with_id/readme/CONTRIBUTORS.md +++ b/project_task_name_with_id/readme/CONTRIBUTORS.md @@ -1 +1,3 @@ -- Miquel Pascual \<\> \ No newline at end of file +- [Quartile](https://www.quartile.co): + - Yoshi Tashiro +- Miquel Pascual \<\> diff --git a/project_task_name_with_id/static/description/index.html b/project_task_name_with_id/static/description/index.html index 40c97a573b..073c91e71e 100644 --- a/project_task_name_with_id/static/description/index.html +++ b/project_task_name_with_id/static/description/index.html @@ -374,7 +374,7 @@

    Project Task Name with ID

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:5180287a1ce53ba3eb560ab3322d2059df11868e185030459bb0c7357eb64b77 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

    +

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

    This module extends the name_search() and name_get() methods of the project.task model to search for, and display the ID of the task in the name field.

    @@ -405,7 +405,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.

    @@ -413,12 +413,16 @@

    Credits

    Authors

      -
    • Quartile Limited
    • +
    • Quartile

    Contributors

    @@ -431,7 +435,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/project project on GitHub.

    +

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

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

    diff --git a/project_task_name_with_id/views/project_task_views.xml b/project_task_name_with_id/views/project_task_views.xml index 5d4aa5cc88..59c8c67f53 100644 --- a/project_task_name_with_id/views/project_task_views.xml +++ b/project_task_name_with_id/views/project_task_views.xml @@ -69,13 +69,10 @@
    - + project.task.search.form project.task - +