From 9589db30481aeb5a9692451ff966414c76153845 Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Mon, 25 Jul 2022 19:16:52 +0200 Subject: [PATCH] [ADD] add ``project_assignees`` add-on Add a field in ``project.task`` to assign users to task. This completes ``user_id`` field, that is then considered as the owner of the task. Assignment becomes optional and can now target multiple users. Task: JOI-13 Signed-off-by: Valentin Lab --- project_assignees/README.rst | 45 ++++++++++++ project_assignees/__init__.py | 3 + project_assignees/__manifest__.py | 92 ++++++++++++++++++++++++ project_assignees/i18n/README | 1 + project_assignees/i18n/fr.po | 41 +++++++++++ project_assignees/models/__init__.py | 2 + project_assignees/models/project_task.py | 9 +++ project_assignees/views/project_task.xml | 26 +++++++ 8 files changed, 219 insertions(+) create mode 100644 project_assignees/README.rst create mode 100644 project_assignees/__init__.py create mode 100644 project_assignees/__manifest__.py create mode 100644 project_assignees/i18n/README create mode 100644 project_assignees/i18n/fr.po create mode 100644 project_assignees/models/__init__.py create mode 100644 project_assignees/models/project_task.py create mode 100644 project_assignees/views/project_task.xml diff --git a/project_assignees/README.rst b/project_assignees/README.rst new file mode 100644 index 0000000..e56a3d8 --- /dev/null +++ b/project_assignees/README.rst @@ -0,0 +1,45 @@ +================= +project_assignees +================= + +Add multiple assignees field to project task + +Installation +============ + +Use Odoo normal procedure to install add-ons to install +``project_assignees``. + +Known issues / Roadmap +====================== + +Bug Tracker +=========== + +Bugs are tracked on `our issues website +`_. 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. + +Credits +======= + +Images +------ +* Elabore: `Icon `_. + +Contributors +------------ +* Stéphan Sainléger + +Funders +------- +The development of this module has been financially supported by: +* Elabore (https://elabore.coop) + + +Maintainer +---------- + +This module is maintained by Elabore. \ No newline at end of file diff --git a/project_assignees/__init__.py b/project_assignees/__init__.py new file mode 100644 index 0000000..cde864b --- /dev/null +++ b/project_assignees/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/project_assignees/__manifest__.py b/project_assignees/__manifest__.py new file mode 100644 index 0000000..415880d --- /dev/null +++ b/project_assignees/__manifest__.py @@ -0,0 +1,92 @@ +# Copyright 2022 Stéphan Sainléger (Elabore) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "project_assignees", + "version": "14.0.0.1.0", + "author": "Elabore", + "website": "https://github.com/elabore-coop/project-tools", + "maintainer": "Stéphan Sainléger", + "license": "AGPL-3", + "category": "Tools", + "summary": "Add multiple assignees field to project task", + "description": """ + :image: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +================= +project_assignees +================= + +Add multiple assignees field to project task. + +Installation +============ + +Install ``project_assignees``, all dependencies will be installed by default. + +Known issues / Roadmap +====================== + +None yet. + +Bug Tracker +=========== + +Bugs are tracked on `our issues website +`_. 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. + +Credits +======= + +Images +------ + +* Elabore: `Icon `_. + +Contributors +------------ + +* Stéphan Sainléger +* Valentin Lab + +Funders +------- + +The development of this module has been financially supported by: +* Elabore (https://elabore.coop) + + +Maintainer +---------- +This module is maintained by Elabore. + +""", + # any module necessary for this one to work correctly + "depends": [ + "base", + "project", + ], + "qweb": [ + # "static/src/xml/*.xml", + ], + "external_dependencies": { + "python": [], + }, + # always loaded + "data": [ + "views/project_task.xml", + ], + # only loaded in demonstration mode + "demo": [], + "js": [], + "css": [], + "installable": True, + # Install this module automatically if all dependency have been previously + # and independently installed. Used for synergetic or glue modules. + "auto_install": False, + "application": False, +} diff --git a/project_assignees/i18n/README b/project_assignees/i18n/README new file mode 100644 index 0000000..62197a1 --- /dev/null +++ b/project_assignees/i18n/README @@ -0,0 +1 @@ +This directory should contain the *.po for Odoo translation. diff --git a/project_assignees/i18n/fr.po b/project_assignees/i18n/fr.po new file mode 100644 index 0000000..22fa412 --- /dev/null +++ b/project_assignees/i18n/fr.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_assignees +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-07-25 14:54+0000\n" +"PO-Revision-Date: 2022-07-25 14:54+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: project_assignees +#: model:ir.model.fields,field_description:project_assignees.field_project_task__assignee_ids +msgid "Assignees" +msgstr "Assigné à" + +#. module: project_assignees +#: model:ir.model.fields,field_description:project_assignees.field_project_task__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: project_assignees +#: model:ir.model.fields,field_description:project_assignees.field_project_task__id +msgid "ID" +msgstr "" + +#. module: project_assignees +#: model:ir.model.fields,field_description:project_assignees.field_project_task____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: project_assignees +#: model:ir.model,name:project_assignees.model_project_task +msgid "Task" +msgstr "Tâche" diff --git a/project_assignees/models/__init__.py b/project_assignees/models/__init__.py new file mode 100644 index 0000000..853e5dd --- /dev/null +++ b/project_assignees/models/__init__.py @@ -0,0 +1,2 @@ + +from . import project_task \ No newline at end of file diff --git a/project_assignees/models/project_task.py b/project_assignees/models/project_task.py new file mode 100644 index 0000000..598f2b4 --- /dev/null +++ b/project_assignees/models/project_task.py @@ -0,0 +1,9 @@ + +from odoo import models, fields + + +class Task(models.Model): + _inherit = "project.task" + + assignee_ids = fields.Many2many('res.users', 'assignee_ids_rel', string='Assignees') + diff --git a/project_assignees/views/project_task.xml b/project_assignees/views/project_task.xml new file mode 100644 index 0000000..8785aed --- /dev/null +++ b/project_assignees/views/project_task.xml @@ -0,0 +1,26 @@ + + + + project.task.form.assignees + project.task + + + + + + + + + + + project.task.search.form.assignees + project.task + + + + + ['|', ('user_id', '=', uid), ('assignee_ids', 'in', uid)] + + + + \ No newline at end of file