From a98e8b3c78e6ffa06e96b90c9db3179584b2d981 Mon Sep 17 00:00:00 2001 From: Mateu Griful Date: Fri, 14 May 2021 15:28:45 +0200 Subject: [PATCH 01/27] [ADD] project_duplicate_subtask --- project_duplicate_subtask/__init__.py | 1 + project_duplicate_subtask/__manifest__.py | 16 ++++++++++ project_duplicate_subtask/models/__init__.py | 1 + .../models/project_task.py | 28 ++++++++++++++++ .../readme/CONTRIBUTORS.rst | 2 ++ .../readme/DESCRIPTION.rst | 1 + project_duplicate_subtask/readme/USAGE.rst | 4 +++ .../static/description/icon.png | Bin 0 -> 9455 bytes project_duplicate_subtask/tests/__init__.py | 1 + .../tests/test_project_duplicate_subtask.py | 30 ++++++++++++++++++ .../views/project_duplicate_action.xml | 10 ++++++ 11 files changed, 94 insertions(+) create mode 100644 project_duplicate_subtask/__init__.py create mode 100644 project_duplicate_subtask/__manifest__.py create mode 100644 project_duplicate_subtask/models/__init__.py create mode 100644 project_duplicate_subtask/models/project_task.py create mode 100644 project_duplicate_subtask/readme/CONTRIBUTORS.rst create mode 100644 project_duplicate_subtask/readme/DESCRIPTION.rst create mode 100644 project_duplicate_subtask/readme/USAGE.rst create mode 100644 project_duplicate_subtask/static/description/icon.png create mode 100644 project_duplicate_subtask/tests/__init__.py create mode 100644 project_duplicate_subtask/tests/test_project_duplicate_subtask.py create mode 100644 project_duplicate_subtask/views/project_duplicate_action.xml diff --git a/project_duplicate_subtask/__init__.py b/project_duplicate_subtask/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/project_duplicate_subtask/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/project_duplicate_subtask/__manifest__.py b/project_duplicate_subtask/__manifest__.py new file mode 100644 index 0000000000..c13b2fb9ef --- /dev/null +++ b/project_duplicate_subtask/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright (C) 2021 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) + +{ + "name": "Project Duplicate subtask", + "version": "13.0.1.0.1", + "category": "Project", + "website": "https://github.com/OCA/project", + "summary": "The module adds an action to duplicate tasks with the child subtasks", + "author": "Forgeflow, Odoo Community Association (OCA)", + "license": "AGPL-3", + "depends": ["project"], + "data": ["views/project_duplicate_action.xml"], + "installable": True, + "auto_install": False, +} diff --git a/project_duplicate_subtask/models/__init__.py b/project_duplicate_subtask/models/__init__.py new file mode 100644 index 0000000000..edf2d36b9c --- /dev/null +++ b/project_duplicate_subtask/models/__init__.py @@ -0,0 +1 @@ +from . import project_task diff --git a/project_duplicate_subtask/models/project_task.py b/project_duplicate_subtask/models/project_task.py new file mode 100644 index 0000000000..d5d46c14b4 --- /dev/null +++ b/project_duplicate_subtask/models/project_task.py @@ -0,0 +1,28 @@ +# Copyright (C) 2021 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) + +from odoo import models + + +class ProjectTask(models.Model): + _inherit = "project.task" + + def action_duplicate_subtasks(self): + action = self.env.ref("project.action_view_task") + result = action.read()[0] + task_created = self.env["project.task"] + for task in self: + new_task = task.copy() + task_created |= new_task + if task.child_ids: + for child in task.child_ids: + new_subtask = child.copy() + new_subtask.write({"parent_id": new_task.id}) + if len(task_created) == 1: + res = self.env.ref("project.view_task_form2") + result["views"] = [(res and res.id or False, "form")] + result["res_id"] = new_task.id + + else: + result["domain"] = "[('id', 'in', " + str(task_created.ids) + ")]" + return result diff --git a/project_duplicate_subtask/readme/CONTRIBUTORS.rst b/project_duplicate_subtask/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..087dd29233 --- /dev/null +++ b/project_duplicate_subtask/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Mateu Griful +* Lois Rilo diff --git a/project_duplicate_subtask/readme/DESCRIPTION.rst b/project_duplicate_subtask/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..7f46cf8c95 --- /dev/null +++ b/project_duplicate_subtask/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds a server action that allows to duplicate a task with its child tasks. diff --git a/project_duplicate_subtask/readme/USAGE.rst b/project_duplicate_subtask/readme/USAGE.rst new file mode 100644 index 0000000000..e0d34eb3db --- /dev/null +++ b/project_duplicate_subtask/readme/USAGE.rst @@ -0,0 +1,4 @@ +To use this module, there are two ways: + +#. Go to a task: Action > Duplicate with subtasks. +#. Go to the tasks list view, select the tasks you want to duplicate: Action > Duplicate with subtasks. diff --git a/project_duplicate_subtask/static/description/icon.png b/project_duplicate_subtask/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/project_duplicate_subtask/tests/__init__.py b/project_duplicate_subtask/tests/__init__.py new file mode 100644 index 0000000000..6a30cf048b --- /dev/null +++ b/project_duplicate_subtask/tests/__init__.py @@ -0,0 +1 @@ +from . import test_project_duplicate_subtask diff --git a/project_duplicate_subtask/tests/test_project_duplicate_subtask.py b/project_duplicate_subtask/tests/test_project_duplicate_subtask.py new file mode 100644 index 0000000000..1d43faec43 --- /dev/null +++ b/project_duplicate_subtask/tests/test_project_duplicate_subtask.py @@ -0,0 +1,30 @@ +# Copyright (C) 2021 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) + +from odoo.tests.common import TransactionCase + + +class TestProjectDuplicateSubtask(TransactionCase): + def setUp(self): + super().setUp() + + self.project1 = self.env["project.project"].create({"name": "Project 1"}) + self.task1 = self.env["project.task"].create( + {"name": "name1", "project_id": self.project1.id} + ) + self.subtask1 = self.env["project.task"].create( + {"name": "2", "project_id": self.project1.id, "parent_id": self.task1.id} + ) + self.subtask2 = self.env["project.task"].create( + {"name": "3", "project_id": self.project1.id, "parent_id": self.task1.id} + ) + + def test_check_subtasks(self): + self.task1.action_duplicate_subtasks() + + new_task = self.env["project.task"].search( + [("name", "ilike", self.task1.name), ("name", "ilike", "copy")] + ) + self.assertEqual( + len(new_task.child_ids), 2, "Two subtasks should have been created" + ) diff --git a/project_duplicate_subtask/views/project_duplicate_action.xml b/project_duplicate_subtask/views/project_duplicate_action.xml new file mode 100644 index 0000000000..023a7965c9 --- /dev/null +++ b/project_duplicate_subtask/views/project_duplicate_action.xml @@ -0,0 +1,10 @@ + + + + Duplicate with subtasks + + + code + action = records.action_duplicate_subtasks() + + From dc0458e2c1787f6d33271ba82743685570d0695d Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 19 Jul 2021 12:08:56 +0000 Subject: [PATCH 02/27] [UPD] Update project_duplicate_subtask.pot --- .../i18n/project_duplicate_subtask.pot | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 project_duplicate_subtask/i18n/project_duplicate_subtask.pot diff --git a/project_duplicate_subtask/i18n/project_duplicate_subtask.pot b/project_duplicate_subtask/i18n/project_duplicate_subtask.pot new file mode 100644 index 0000000000..d33cf9728f --- /dev/null +++ b/project_duplicate_subtask/i18n/project_duplicate_subtask.pot @@ -0,0 +1,24 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_duplicate_subtask +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.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_duplicate_subtask +#: model:ir.actions.server,name:project_duplicate_subtask.action_server_duplicate_subtasks +msgid "Duplicate with subtasks" +msgstr "" + +#. module: project_duplicate_subtask +#: model:ir.model,name:project_duplicate_subtask.model_project_task +msgid "Task" +msgstr "" From 7bbaf3c459fedeeb350cf1adae86e8f7140de669 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 19 Jul 2021 12:26:45 +0000 Subject: [PATCH 03/27] [UPD] README.rst --- project_duplicate_subtask/README.rst | 82 ++++ .../static/description/index.html | 429 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 project_duplicate_subtask/README.rst create mode 100644 project_duplicate_subtask/static/description/index.html diff --git a/project_duplicate_subtask/README.rst b/project_duplicate_subtask/README.rst new file mode 100644 index 0000000000..deb6faac7d --- /dev/null +++ b/project_duplicate_subtask/README.rst @@ -0,0 +1,82 @@ +========================= +Project Duplicate subtask +========================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/13.0/project_duplicate_subtask + :alt: OCA/project +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/project-13-0/project-13-0-project_duplicate_subtask + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/140/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds a server action that allows to duplicate a task with its child tasks. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, there are two ways: + +#. Go to a task: Action > Duplicate with subtasks. +#. Go to the tasks list view, select the tasks you want to duplicate: Action > Duplicate with subtasks. + +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 smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Forgeflow + +Contributors +~~~~~~~~~~~~ + +* Mateu Griful +* Lois Rilo + +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_duplicate_subtask/static/description/index.html b/project_duplicate_subtask/static/description/index.html new file mode 100644 index 0000000000..991b33ddf4 --- /dev/null +++ b/project_duplicate_subtask/static/description/index.html @@ -0,0 +1,429 @@ + + + + + + +Project Duplicate subtask + + + +
+

Project Duplicate subtask

+ + +

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

+

This module adds a server action that allows to duplicate a task with its child tasks.

+

Table of contents

+ +
+

Usage

+

To use this module, there are two ways:

+
    +
  1. Go to a task: Action > Duplicate with subtasks.
  2. +
  3. Go to the tasks list view, select the tasks you want to duplicate: Action > Duplicate with subtasks.
  4. +
+
+
+

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 smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Forgeflow
  • +
+
+ +
+

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.

+
+
+
+ + From 87b634986158f04ce673651fd9284b13836cf6a3 Mon Sep 17 00:00:00 2001 From: Alexandre Fayolle Date: Mon, 13 Sep 2021 15:53:36 +0200 Subject: [PATCH 04/27] [FIX] project_duplicate_subtask version version conflict prevents upload to pypi --- project_duplicate_subtask/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_duplicate_subtask/__manifest__.py b/project_duplicate_subtask/__manifest__.py index c13b2fb9ef..a1430a7e94 100644 --- a/project_duplicate_subtask/__manifest__.py +++ b/project_duplicate_subtask/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Project Duplicate subtask", - "version": "13.0.1.0.1", + "version": "13.0.1.0.2", "category": "Project", "website": "https://github.com/OCA/project", "summary": "The module adds an action to duplicate tasks with the child subtasks", From 05adeccff95284825a31c37ad20ed63fa862921a Mon Sep 17 00:00:00 2001 From: mariadforgeflow Date: Fri, 10 Dec 2021 13:52:42 +0100 Subject: [PATCH 05/27] [MIG] project_duplicate_subtask: Migration to 14.0 --- project_duplicate_subtask/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_duplicate_subtask/__manifest__.py b/project_duplicate_subtask/__manifest__.py index a1430a7e94..dda9743c7f 100644 --- a/project_duplicate_subtask/__manifest__.py +++ b/project_duplicate_subtask/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Project Duplicate subtask", - "version": "13.0.1.0.2", + "version": "14.0.1.0.0", "category": "Project", "website": "https://github.com/OCA/project", "summary": "The module adds an action to duplicate tasks with the child subtasks", From 5c68e7a131c4a0458098aa234c6424483f8c65a7 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 13 Dec 2021 11:31:16 +0000 Subject: [PATCH 06/27] [UPD] Update project_duplicate_subtask.pot --- .../i18n/project_duplicate_subtask.pot | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/project_duplicate_subtask/i18n/project_duplicate_subtask.pot b/project_duplicate_subtask/i18n/project_duplicate_subtask.pot index d33cf9728f..4ba94adc9c 100644 --- a/project_duplicate_subtask/i18n/project_duplicate_subtask.pot +++ b/project_duplicate_subtask/i18n/project_duplicate_subtask.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,11 +13,26 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: project_duplicate_subtask +#: model:ir.model.fields,field_description:project_duplicate_subtask.field_project_task__display_name +msgid "Display Name" +msgstr "" + #. module: project_duplicate_subtask #: model:ir.actions.server,name:project_duplicate_subtask.action_server_duplicate_subtasks msgid "Duplicate with subtasks" msgstr "" +#. module: project_duplicate_subtask +#: model:ir.model.fields,field_description:project_duplicate_subtask.field_project_task__id +msgid "ID" +msgstr "" + +#. module: project_duplicate_subtask +#: model:ir.model.fields,field_description:project_duplicate_subtask.field_project_task____last_update +msgid "Last Modified on" +msgstr "" + #. module: project_duplicate_subtask #: model:ir.model,name:project_duplicate_subtask.model_project_task msgid "Task" From 3116f6a3c394a20c4c6ef4a7b68407b421134400 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 13 Dec 2021 11:36:54 +0000 Subject: [PATCH 07/27] [UPD] README.rst --- project_duplicate_subtask/README.rst | 10 +++++----- .../static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project_duplicate_subtask/README.rst b/project_duplicate_subtask/README.rst index deb6faac7d..074226a6e3 100644 --- a/project_duplicate_subtask/README.rst +++ b/project_duplicate_subtask/README.rst @@ -14,13 +14,13 @@ Project Duplicate subtask :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/13.0/project_duplicate_subtask + :target: https://github.com/OCA/project/tree/14.0/project_duplicate_subtask :alt: OCA/project .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/project-13-0/project-13-0-project_duplicate_subtask + :target: https://translation.odoo-community.org/projects/project-14-0/project-14-0-project_duplicate_subtask :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/140/13.0 + :target: https://runbot.odoo-community.org/runbot/140/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -46,7 +46,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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -77,6 +77,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/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_duplicate_subtask/static/description/index.html b/project_duplicate_subtask/static/description/index.html index 991b33ddf4..25a5b4b10d 100644 --- a/project_duplicate_subtask/static/description/index.html +++ b/project_duplicate_subtask/static/description/index.html @@ -367,7 +367,7 @@

Project Duplicate subtask

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module adds a server action that allows to duplicate a task with its child tasks.

Table of contents

@@ -395,7 +395,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 smashing it by providing a detailed and welcomed -feedback.

+feedback.

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

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

From 2b09ef1e5251d1cb7a0fe12453e6d4d4c9750165 Mon Sep 17 00:00:00 2001 From: mariadforgeflow Date: Tue, 14 Dec 2021 10:16:55 +0100 Subject: [PATCH 08/27] [MIG] project_duplicate_subtask: Migration to 15.0 --- project_duplicate_subtask/__manifest__.py | 2 +- .../models/project_task.py | 17 ++++++++++++--- .../tests/test_project_duplicate_subtask.py | 21 +++++++++++++++++++ 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/project_duplicate_subtask/__manifest__.py b/project_duplicate_subtask/__manifest__.py index dda9743c7f..c9740d807d 100644 --- a/project_duplicate_subtask/__manifest__.py +++ b/project_duplicate_subtask/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Project Duplicate subtask", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "category": "Project", "website": "https://github.com/OCA/project", "summary": "The module adds an action to duplicate tasks with the child subtasks", diff --git a/project_duplicate_subtask/models/project_task.py b/project_duplicate_subtask/models/project_task.py index d5d46c14b4..8bfb86c1c6 100644 --- a/project_duplicate_subtask/models/project_task.py +++ b/project_duplicate_subtask/models/project_task.py @@ -15,13 +15,24 @@ def action_duplicate_subtasks(self): new_task = task.copy() task_created |= new_task if task.child_ids: - for child in task.child_ids: - new_subtask = child.copy() - new_subtask.write({"parent_id": new_task.id}) + + def duplicate_childs(task, new_task): + if task.child_ids: + for child in task.child_ids: + new_subtask = child.copy() + new_subtask.write({"parent_id": new_task.id}) + duplicate_childs(child, new_subtask) + + duplicate_childs(task, new_task) + if len(task_created) == 1: res = self.env.ref("project.view_task_form2") result["views"] = [(res and res.id or False, "form")] result["res_id"] = new_task.id + action["context"] = { + "form_view_initial_mode": "edit", + "force_detailed_view": "true", + } else: result["domain"] = "[('id', 'in', " + str(task_created.ids) + ")]" diff --git a/project_duplicate_subtask/tests/test_project_duplicate_subtask.py b/project_duplicate_subtask/tests/test_project_duplicate_subtask.py index 1d43faec43..5172b4e749 100644 --- a/project_duplicate_subtask/tests/test_project_duplicate_subtask.py +++ b/project_duplicate_subtask/tests/test_project_duplicate_subtask.py @@ -28,3 +28,24 @@ def test_check_subtasks(self): self.assertEqual( len(new_task.child_ids), 2, "Two subtasks should have been created" ) + + def test_check_subtasks_of_substasks(self): + self.sub_subtask1_1 = self.env["project.task"].create( + {"name": "4", "project_id": self.project1.id, "parent_id": self.subtask1.id} + ) + self.task1.action_duplicate_subtasks() + + new_task = self.env["project.task"].search( + [("name", "ilike", self.task1.name), ("name", "ilike", "copy")] + ) + self.assertEqual( + len(new_task.child_ids), 2, "Two subtasks should have been created" + ) + new_subtask = self.env["project.task"].search( + [ + ("name", "=", self.subtask1.name + " (copy)"), + ] + ) + self.assertEqual( + len(new_subtask.child_ids), 1, "One subtask should have been created" + ) From d6c35e330cf027bafcd495a19f2f20b10d6f6547 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 6 Jul 2022 15:40:01 +0000 Subject: [PATCH 09/27] [UPD] Update project_duplicate_subtask.pot --- .../i18n/project_duplicate_subtask.pot | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/project_duplicate_subtask/i18n/project_duplicate_subtask.pot b/project_duplicate_subtask/i18n/project_duplicate_subtask.pot index 4ba94adc9c..f1174ba6a4 100644 --- a/project_duplicate_subtask/i18n/project_duplicate_subtask.pot +++ b/project_duplicate_subtask/i18n/project_duplicate_subtask.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,26 +13,11 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: project_duplicate_subtask -#: model:ir.model.fields,field_description:project_duplicate_subtask.field_project_task__display_name -msgid "Display Name" -msgstr "" - #. module: project_duplicate_subtask #: model:ir.actions.server,name:project_duplicate_subtask.action_server_duplicate_subtasks msgid "Duplicate with subtasks" msgstr "" -#. module: project_duplicate_subtask -#: model:ir.model.fields,field_description:project_duplicate_subtask.field_project_task__id -msgid "ID" -msgstr "" - -#. module: project_duplicate_subtask -#: model:ir.model.fields,field_description:project_duplicate_subtask.field_project_task____last_update -msgid "Last Modified on" -msgstr "" - #. module: project_duplicate_subtask #: model:ir.model,name:project_duplicate_subtask.model_project_task msgid "Task" From f609dcaab323274c7692d2489cbc7bfc6648863e Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 6 Jul 2022 15:42:38 +0000 Subject: [PATCH 10/27] [UPD] README.rst --- project_duplicate_subtask/README.rst | 10 +++++----- .../static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project_duplicate_subtask/README.rst b/project_duplicate_subtask/README.rst index 074226a6e3..9768839d84 100644 --- a/project_duplicate_subtask/README.rst +++ b/project_duplicate_subtask/README.rst @@ -14,13 +14,13 @@ Project Duplicate subtask :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/14.0/project_duplicate_subtask + :target: https://github.com/OCA/project/tree/15.0/project_duplicate_subtask :alt: OCA/project .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/project-14-0/project-14-0-project_duplicate_subtask + :target: https://translation.odoo-community.org/projects/project-15-0/project-15-0-project_duplicate_subtask :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/140/14.0 + :target: https://runbot.odoo-community.org/runbot/140/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -46,7 +46,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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -77,6 +77,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/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_duplicate_subtask/static/description/index.html b/project_duplicate_subtask/static/description/index.html index 25a5b4b10d..48d584b2da 100644 --- a/project_duplicate_subtask/static/description/index.html +++ b/project_duplicate_subtask/static/description/index.html @@ -367,7 +367,7 @@

Project Duplicate subtask

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module adds a server action that allows to duplicate a task with its child tasks.

Table of contents

@@ -395,7 +395,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 smashing it by providing a detailed and welcomed -feedback.

+feedback.

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

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

From 47ba1c0824f8cc1144501e44f376b937df62d95d Mon Sep 17 00:00:00 2001 From: Kalpesh Gajera Date: Wed, 2 Nov 2022 18:43:27 +0530 Subject: [PATCH 11/27] [MIG] project_duplicate_subtask: Migration to 16.0 --- project_duplicate_subtask/README.rst | 10 +++++----- project_duplicate_subtask/__manifest__.py | 4 ++-- project_duplicate_subtask/models/project_task.py | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/project_duplicate_subtask/README.rst b/project_duplicate_subtask/README.rst index 9768839d84..58ab6d2aad 100644 --- a/project_duplicate_subtask/README.rst +++ b/project_duplicate_subtask/README.rst @@ -14,13 +14,13 @@ Project Duplicate subtask :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/15.0/project_duplicate_subtask + :target: https://github.com/OCA/project/tree/16.0/project_duplicate_subtask :alt: OCA/project .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/project-15-0/project-15-0-project_duplicate_subtask + :target: https://translation.odoo-community.org/projects/project-16-0/project-16-0-project_duplicate_subtask :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/140/15.0 + :target: https://runbot.odoo-community.org/runbot/140/16.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -46,7 +46,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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -77,6 +77,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/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_duplicate_subtask/__manifest__.py b/project_duplicate_subtask/__manifest__.py index c9740d807d..be61345a10 100644 --- a/project_duplicate_subtask/__manifest__.py +++ b/project_duplicate_subtask/__manifest__.py @@ -1,9 +1,9 @@ -# Copyright (C) 2021 ForgeFlow S.L. +# Copyright (C) 2022 ForgeFlow S.L. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) { "name": "Project Duplicate subtask", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "category": "Project", "website": "https://github.com/OCA/project", "summary": "The module adds an action to duplicate tasks with the child subtasks", diff --git a/project_duplicate_subtask/models/project_task.py b/project_duplicate_subtask/models/project_task.py index 8bfb86c1c6..0e5128ba76 100644 --- a/project_duplicate_subtask/models/project_task.py +++ b/project_duplicate_subtask/models/project_task.py @@ -1,4 +1,4 @@ -# Copyright (C) 2021 ForgeFlow S.L. +# Copyright (C) 2022 ForgeFlow S.L. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) from odoo import models From ca6ad6c8f62e4338dcf993f0a87f7ea993bce535 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 24 Jul 2023 07:27:42 +0000 Subject: [PATCH 12/27] [UPD] Update project_duplicate_subtask.pot --- project_duplicate_subtask/i18n/project_duplicate_subtask.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_duplicate_subtask/i18n/project_duplicate_subtask.pot b/project_duplicate_subtask/i18n/project_duplicate_subtask.pot index f1174ba6a4..22e930cec7 100644 --- a/project_duplicate_subtask/i18n/project_duplicate_subtask.pot +++ b/project_duplicate_subtask/i18n/project_duplicate_subtask.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From efaeb892d9f077058b737a2070d124903136ef7c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 24 Jul 2023 07:31:32 +0000 Subject: [PATCH 13/27] [UPD] README.rst --- project_duplicate_subtask/static/description/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/project_duplicate_subtask/static/description/index.html b/project_duplicate_subtask/static/description/index.html index 48d584b2da..c48c0670ae 100644 --- a/project_duplicate_subtask/static/description/index.html +++ b/project_duplicate_subtask/static/description/index.html @@ -367,7 +367,7 @@

Project Duplicate subtask

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module adds a server action that allows to duplicate a task with its child tasks.

Table of contents

@@ -395,7 +395,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 smashing it by providing a detailed and welcomed -feedback.

+feedback.

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

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

From 395b96b48fdc09d88dbb82b6fb2996b91a06bfc7 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 31 Jul 2023 09:17:36 +0000 Subject: [PATCH 14/27] Added translation using Weblate (Italian) --- project_duplicate_subtask/i18n/it.po | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 project_duplicate_subtask/i18n/it.po diff --git a/project_duplicate_subtask/i18n/it.po b/project_duplicate_subtask/i18n/it.po new file mode 100644 index 0000000000..3989d520ef --- /dev/null +++ b/project_duplicate_subtask/i18n/it.po @@ -0,0 +1,25 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_duplicate_subtask +# +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_duplicate_subtask +#: model:ir.actions.server,name:project_duplicate_subtask.action_server_duplicate_subtasks +msgid "Duplicate with subtasks" +msgstr "" + +#. module: project_duplicate_subtask +#: model:ir.model,name:project_duplicate_subtask.model_project_task +msgid "Task" +msgstr "" From c28b7f712fbf0dabab17b744506bed8d2d75962d Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 31 Jul 2023 09:18:22 +0000 Subject: [PATCH 15/27] Translated using Weblate (Italian) Currently translated at 100.0% (2 of 2 strings) Translation: project-16.0/project-16.0-project_duplicate_subtask Translate-URL: https://translation.odoo-community.org/projects/project-16-0/project-16-0-project_duplicate_subtask/it/ --- project_duplicate_subtask/i18n/it.po | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/project_duplicate_subtask/i18n/it.po b/project_duplicate_subtask/i18n/it.po index 3989d520ef..62cb125859 100644 --- a/project_duplicate_subtask/i18n/it.po +++ b/project_duplicate_subtask/i18n/it.po @@ -6,20 +6,22 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2023-07-31 10:11+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_duplicate_subtask #: model:ir.actions.server,name:project_duplicate_subtask.action_server_duplicate_subtasks msgid "Duplicate with subtasks" -msgstr "" +msgstr "Duplica con sottolavori" #. module: project_duplicate_subtask #: model:ir.model,name:project_duplicate_subtask.model_project_task msgid "Task" -msgstr "" +msgstr "Lavoro" From 3a3b88128ab0f18d324974c91c5452c5bac8beb4 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 15:35:55 +0000 Subject: [PATCH 16/27] [UPD] README.rst --- project_duplicate_subtask/README.rst | 15 +++++--- .../static/description/index.html | 38 ++++++++++--------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/project_duplicate_subtask/README.rst b/project_duplicate_subtask/README.rst index 58ab6d2aad..b4dbffaf84 100644 --- a/project_duplicate_subtask/README.rst +++ b/project_duplicate_subtask/README.rst @@ -2,10 +2,13 @@ Project Duplicate subtask ========================= -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:9195c3a0abcc8cbaf20022734c176f28ee32489ccffcf83c459e0c01fe97028b + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Project Duplicate subtask .. |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_duplicate_subtask :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/140/16.0 - :alt: Try me on Runbot +.. |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| +|badge1| |badge2| |badge3| |badge4| |badge5| This module adds a server action that allows to duplicate a task with its child tasks. @@ -45,7 +48,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 smashing it by providing a detailed and welcomed +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. diff --git a/project_duplicate_subtask/static/description/index.html b/project_duplicate_subtask/static/description/index.html index c48c0670ae..e5f1537d16 100644 --- a/project_duplicate_subtask/static/description/index.html +++ b/project_duplicate_subtask/static/description/index.html @@ -1,20 +1,20 @@ - + - + Project Duplicate subtask