From 8ff6711fbe0067cb937245fe33efe360fe0dfb07 Mon Sep 17 00:00:00 2001 From: yk2kus Date: Fri, 8 Jun 2018 18:05:32 +0000 Subject: [PATCH 1/7] apply domain on assigned to on action lines --- .../__manifest__.py | 5 +- .../i18n/pt_BR.po | 177 ++++++++++++++++++ .../models/project.py | 41 +++- .../views/project_task_view.xml | 92 ++++----- 4 files changed, 261 insertions(+), 54 deletions(-) create mode 100644 tko_project_task_actions_assign_team/i18n/pt_BR.po diff --git a/tko_project_task_actions_assign_team/__manifest__.py b/tko_project_task_actions_assign_team/__manifest__.py index d249af6..223b3e9 100644 --- a/tko_project_task_actions_assign_team/__manifest__.py +++ b/tko_project_task_actions_assign_team/__manifest__.py @@ -2,9 +2,10 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': 'Project Task Actions Assign', + 'name': 'Project Task Actions Assign Teams', 'summary': '', - 'description': 'Assign users to actions. In configuration set task_id.user_id or task_id.project_id.user_id to get dynamic assigned users.', + 'description': 'Manage teams on projects, tasks, and actions, ' + 'set assigned to on action lines', 'author': 'TKO', 'category': 'Project', 'license': 'AGPL-3', diff --git a/tko_project_task_actions_assign_team/i18n/pt_BR.po b/tko_project_task_actions_assign_team/i18n/pt_BR.po new file mode 100644 index 0000000..b3de906 --- /dev/null +++ b/tko_project_task_actions_assign_team/i18n/pt_BR.po @@ -0,0 +1,177 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * tko_project_task_actions_assign_team +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0+pro\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-08 17:59+0000\n" +"PO-Revision-Date: 2018-06-08 17:59+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: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_project_user_id_domain +msgid "Assigned To Restriction" +msgstr "Assigned To Restriction" + +#. module: tko_project_task_actions_assign_team +#: selection:project.team,type:0 +msgid "Bucket" +msgstr "Bucket" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_create_date +msgid "Created on" +msgstr "Criado em" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_display_name +msgid "Display Name" +msgstr "Nome para Exibição" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_id +msgid "ID" +msgstr "ID" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team___last_update +msgid "Last Modified on" +msgstr "Última Modificação em" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_write_uid +msgid "Last Updated by" +msgstr "Última atualização por" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_write_date +msgid "Last Updated on" +msgstr "Última atualização em" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_manager_id +msgid "Manager" +msgstr "Manager" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_name +msgid "Name" +msgstr "Nome" + +#. module: tko_project_task_actions_assign_team +#: code:addons/tko_project_task_actions_assign_team/models/project.py:10 +#: selection:project.project,user_id_domain:0 +#, python-format +msgid "No Restriction" +msgstr "No Restriction" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_parent_id +msgid "Parent" +msgstr "Superior (Conta-pai)" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model,name:tko_project_task_actions_assign_team.model_project_project +msgid "Project" +msgstr "Projeto" + +#. module: tko_project_task_actions_assign_team +#: model:ir.actions.act_window,name:tko_project_task_actions_assign_team.project_team_action +#: model:ir.ui.view,arch_db:tko_project_task_actions_assign_team.project_team_form +#: model:ir.ui.view,arch_db:tko_project_task_actions_assign_team.project_team_tree +msgid "Project Team" +msgstr "Project Team" + +#. module: tko_project_task_actions_assign_team +#: model:ir.ui.menu,name:tko_project_task_actions_assign_team.project_team_action_menu +msgid "Project Teams" +msgstr "Project Teams" + +#. module: tko_project_task_actions_assign_team +#: selection:project.team,type:0 +msgid "Prorate" +msgstr "Prorate" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_action_line_wizard_team_id +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_project_team_id +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_task_action_line_team_id +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_task_action_team_id +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_task_type_team_id +msgid "Team" +msgstr "Team" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,help:tko_project_task_actions_assign_team.field_project_project_user_id_domain +msgid "This will restrict Assigned To in action lines basedon selection" +msgstr "This will restrict Assigned To in action lines basedon selection" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_type +msgid "Type" +msgstr "Tipo" + +#. module: tko_project_task_actions_assign_team +#: code:addons/tko_project_task_actions_assign_team/models/project.py:12 +#: selection:project.project,user_id_domain:0 +#, python-format +msgid "User's from Action Line Team" +msgstr "User's from Action Line Team" + +#. module: tko_project_task_actions_assign_team +#: code:addons/tko_project_task_actions_assign_team/models/project.py:11 +#: selection:project.project,user_id_domain:0 +#, python-format +msgid "User's from Project Team" +msgstr "User's from Project Team" + +#. module: tko_project_task_actions_assign_team +#: code:addons/tko_project_task_actions_assign_team/models/project.py:13 +#: selection:project.project,user_id_domain:0 +#, python-format +msgid "User's from Task Team" +msgstr "User's from Task Team" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_task_action_line_user_ids +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_user_ids +#: model:ir.ui.view,arch_db:tko_project_task_actions_assign_team.project_team_form +msgid "Users" +msgstr "Usuários" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model,name:tko_project_task_actions_assign_team.model_action_line_wizard +msgid "action.line.wizard" +msgstr "action.line.wizard" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model,name:tko_project_task_actions_assign_team.model_project_task_action +msgid "project.task.action" +msgstr "project.task.action" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model,name:tko_project_task_actions_assign_team.model_project_task_action_line +msgid "project.task.action.line" +msgstr "project.task.action.line" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model,name:tko_project_task_actions_assign_team.model_project_team +msgid "project.team" +msgstr "project.team" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model,name:tko_project_task_actions_assign_team.model_task_type +msgid "task.type" +msgstr "task.type" diff --git a/tko_project_task_actions_assign_team/models/project.py b/tko_project_task_actions_assign_team/models/project.py index f38247a..76f4ecc 100644 --- a/tko_project_task_actions_assign_team/models/project.py +++ b/tko_project_task_actions_assign_team/models/project.py @@ -7,6 +7,13 @@ class ProjectProject(models.Model): _inherit = 'project.project' team_id = fields.Many2one('project.team', u'Team') + user_id_domain = fields.Selection([('nr', _('No Restriction')), + ('pt', _(u"User's from Project Team")), + ('at', _(u"User's from Action Line Team")), + ('tt', _(u"User's from Task Team")), + ], default='nr', + string=u'Assigned To Restriction', + help=u'This will restrict Assigned To in action lines basedon selection') class ProjectTaskType(models.Model): @@ -25,8 +32,26 @@ class ProjectTaskActionLine(models.Model): _inherit = 'project.task.action.line' team_id = fields.Many2one('project.team', string=u'Team', compute='onchange_team', store=True) - # user_ids = fields.Many2many('res.users', 'task_action_line_project_team_users_rel', - # 'team_id', 'line_id', related='team_id.user_ids', string=u'Users') + user_ids = fields.Many2many('res.users', 'task_action_line_project_team_users_rel', + 'team_id', 'line_id', compute='get_authorized_users', store=True, string=u'Users') + + @api.one + @api.depends('action_id', 'user_id', 'task_id.user_ids', 'project_id.user_id_domain', 'project_id.team_id') + def get_authorized_users(self): + + domain = self.project_id.user_id_domain + print "self..................", domain, self.project_id, self.task_id, self.task_id.name + if domain == 'nr' or not self.project_id: + users = self.env['res.users'].search([]) + elif domain == 'pt': + users = self.project_id.team_id.user_ids + elif domain == 'at': + users = self.action_id.team_id.user_ids + else: + users = self.task_id.user_ids + + print "users.........................", users.ids + self.user_ids = [(6, 0, users.ids)] @api.one def self_assign(self): @@ -34,7 +59,8 @@ def self_assign(self): if self.env.uid in users: self.user_id = self.env.uid else: - raise Warning(u"User %s doesn't belong to team %s or it's preant teams" %(self.env.user.name, self.team_id.name)) + raise Warning( + u"User %s doesn't belong to team %s or it's preant teams" % (self.env.user.name, self.team_id.name)) # use separate method to get team_id # so that other modules which do not have fixed team @@ -62,10 +88,10 @@ def onchange_action(self): self.onchange_team() @api.one - @api.depends('team_id','action_id') + @api.depends('team_id', 'action_id') def onchange_team(self): if self.team_id: - #self.team_id = self.team_id.id + # self.team_id = self.team_id.id if self.team_id.type == 'b': self.user_id = False else: @@ -75,10 +101,9 @@ def onchange_team(self): # assign new line to the user which has min length of tasks if len(users): for user in users: - users_task_length[user.id] = len(self.search([('state','not in',['d','c']),('user_id','=',user.id)])) - + users_task_length[user.id] = len( + self.search([('state', 'not in', ['d', 'c']), ('user_id', '=', user.id)])) # get user with min length() user_id = min(users_task_length, key=users_task_length.get) self.user_id = user_id - diff --git a/tko_project_task_actions_assign_team/views/project_task_view.xml b/tko_project_task_actions_assign_team/views/project_task_view.xml index d0620a9..1e8ba68 100644 --- a/tko_project_task_actions_assign_team/views/project_task_view.xml +++ b/tko_project_task_actions_assign_team/views/project_task_view.xml @@ -1,53 +1,57 @@ - - - project.project.form - project.project - - - - - + + + project.project.form + project.project + + + + - + + - - - task.type.form - task.type - - - - - - + + - - - project.task.action.form - project.task.action - - - - - + + + task.type.form + task.type + + + + - - - - project.task.form - project.task - - - - - - - - - + + + + + + project.task.action.form + project.task.action + + + + - + + + + + project.task.form + project.task + + + + + + + + [('id','in',user_ids and user_ids[0][2])] + + + From b96fddd2ff62d4e8c841e67a6a97fa36a4c03985 Mon Sep 17 00:00:00 2001 From: yk2kus Date: Fri, 8 Jun 2018 18:11:25 +0000 Subject: [PATCH 2/7] remove print --- tko_project_task_actions_assign_team/models/project.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tko_project_task_actions_assign_team/models/project.py b/tko_project_task_actions_assign_team/models/project.py index 76f4ecc..b20e4ac 100644 --- a/tko_project_task_actions_assign_team/models/project.py +++ b/tko_project_task_actions_assign_team/models/project.py @@ -40,7 +40,6 @@ class ProjectTaskActionLine(models.Model): def get_authorized_users(self): domain = self.project_id.user_id_domain - print "self..................", domain, self.project_id, self.task_id, self.task_id.name if domain == 'nr' or not self.project_id: users = self.env['res.users'].search([]) elif domain == 'pt': @@ -49,8 +48,6 @@ def get_authorized_users(self): users = self.action_id.team_id.user_ids else: users = self.task_id.user_ids - - print "users.........................", users.ids self.user_ids = [(6, 0, users.ids)] @api.one From e50b450159609ee17b33fc578893b23ae74ae506 Mon Sep 17 00:00:00 2001 From: yk2kus Date: Mon, 11 Jun 2018 15:19:35 +0000 Subject: [PATCH 3/7] set Team non-readonoly on task --- .../models/project_task.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tko_project_task_actions_assign/models/project_task.py b/tko_project_task_actions_assign/models/project_task.py index 9023cb7..ba2e883 100644 --- a/tko_project_task_actions_assign/models/project_task.py +++ b/tko_project_task_actions_assign/models/project_task.py @@ -80,13 +80,13 @@ def set_cancel(self): class ProjectTask(models.Model): _inherit = 'project.task' - user_ids = fields.Many2many('res.users',string='Team',compute='get_users') + user_ids = fields.Many2many('res.users','project_task_team_rel', 'task_id', 'team_id', string='Team') - @api.multi - def get_users(self): - for task in self: - user_ids = [] - for action_line in task.action_line_ids: - if action_line.user_id: - user_ids.append(action_line.user_id.id) - task.user_ids = [(6, 0 , list(set(user_ids)))] + # @api.multi + # def get_users(self): + # for task in self: + # user_ids = [] + # for action_line in task.action_line_ids: + # if action_line.user_id: + # user_ids.append(action_line.user_id.id) + # task.user_ids = [(6, 0 , list(set(user_ids)))] From cc04d03eefdc3349a8a3dfc56c2b09c2a24fbeb9 Mon Sep 17 00:00:00 2001 From: yk2kus Date: Mon, 11 Jun 2018 15:23:01 +0000 Subject: [PATCH 4/7] set user_ids in task non-readnly --- .../models/project_task.py | 18 +++++++++--------- .../models/project.py | 5 +++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/tko_project_task_actions_assign/models/project_task.py b/tko_project_task_actions_assign/models/project_task.py index ba2e883..9023cb7 100644 --- a/tko_project_task_actions_assign/models/project_task.py +++ b/tko_project_task_actions_assign/models/project_task.py @@ -80,13 +80,13 @@ def set_cancel(self): class ProjectTask(models.Model): _inherit = 'project.task' - user_ids = fields.Many2many('res.users','project_task_team_rel', 'task_id', 'team_id', string='Team') + user_ids = fields.Many2many('res.users',string='Team',compute='get_users') - # @api.multi - # def get_users(self): - # for task in self: - # user_ids = [] - # for action_line in task.action_line_ids: - # if action_line.user_id: - # user_ids.append(action_line.user_id.id) - # task.user_ids = [(6, 0 , list(set(user_ids)))] + @api.multi + def get_users(self): + for task in self: + user_ids = [] + for action_line in task.action_line_ids: + if action_line.user_id: + user_ids.append(action_line.user_id.id) + task.user_ids = [(6, 0 , list(set(user_ids)))] diff --git a/tko_project_task_actions_assign_team/models/project.py b/tko_project_task_actions_assign_team/models/project.py index b20e4ac..dc71f1c 100644 --- a/tko_project_task_actions_assign_team/models/project.py +++ b/tko_project_task_actions_assign_team/models/project.py @@ -15,6 +15,11 @@ class ProjectProject(models.Model): string=u'Assigned To Restriction', help=u'This will restrict Assigned To in action lines basedon selection') +# Make Team (user_ids non-readonly in tasks because we allow user to apply domain" +class ProjectTask(models.Model): + _inherit = 'project.task' + user_ids = fields.Many2many('res.users', 'project_task_team_rel', 'task_id', 'team_id', string='Team') + class ProjectTaskType(models.Model): _inherit = 'task.type' From 9b5431bda8a80f41728e10f839254cb27cbd2f4f Mon Sep 17 00:00:00 2001 From: yk2kus Date: Mon, 11 Jun 2018 15:28:12 +0000 Subject: [PATCH 5/7] update translations --- tko_project_task_actions_assign_team/i18n/pt_BR.po | 10 +++++----- tko_project_task_actions_assign_team/models/project.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tko_project_task_actions_assign_team/i18n/pt_BR.po b/tko_project_task_actions_assign_team/i18n/pt_BR.po index b3de906..2a8675d 100644 --- a/tko_project_task_actions_assign_team/i18n/pt_BR.po +++ b/tko_project_task_actions_assign_team/i18n/pt_BR.po @@ -75,7 +75,7 @@ msgstr "Nome" #: selection:project.project,user_id_domain:0 #, python-format msgid "No Restriction" -msgstr "No Restriction" +msgstr "Sem restrição" #. module: tko_project_task_actions_assign_team #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_parent_id @@ -127,22 +127,22 @@ msgstr "Tipo" #: code:addons/tko_project_task_actions_assign_team/models/project.py:12 #: selection:project.project,user_id_domain:0 #, python-format -msgid "User's from Action Line Team" -msgstr "User's from Action Line Team" +msgid "User's from Action's Team" +msgstr "Time das ações" #. module: tko_project_task_actions_assign_team #: code:addons/tko_project_task_actions_assign_team/models/project.py:11 #: selection:project.project,user_id_domain:0 #, python-format msgid "User's from Project Team" -msgstr "User's from Project Team" +msgstr "Time do projeto" #. module: tko_project_task_actions_assign_team #: code:addons/tko_project_task_actions_assign_team/models/project.py:13 #: selection:project.project,user_id_domain:0 #, python-format msgid "User's from Task Team" -msgstr "User's from Task Team" +msgstr "Time da tarefa" #. module: tko_project_task_actions_assign_team #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_task_action_line_user_ids diff --git a/tko_project_task_actions_assign_team/models/project.py b/tko_project_task_actions_assign_team/models/project.py index dc71f1c..d498eea 100644 --- a/tko_project_task_actions_assign_team/models/project.py +++ b/tko_project_task_actions_assign_team/models/project.py @@ -9,7 +9,7 @@ class ProjectProject(models.Model): team_id = fields.Many2one('project.team', u'Team') user_id_domain = fields.Selection([('nr', _('No Restriction')), ('pt', _(u"User's from Project Team")), - ('at', _(u"User's from Action Line Team")), + ('at', _(u"User's from Action's Team")), ('tt', _(u"User's from Task Team")), ], default='nr', string=u'Assigned To Restriction', From 554d0288867e9955088662573405a86ee0dc9bb2 Mon Sep 17 00:00:00 2001 From: yk2kus Date: Mon, 11 Jun 2018 15:45:09 +0000 Subject: [PATCH 6/7] set user_ids non-readonly --- .../models/project_task.py | 18 +++++++++--------- .../models/project.py | 7 +------ 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/tko_project_task_actions_assign/models/project_task.py b/tko_project_task_actions_assign/models/project_task.py index 9023cb7..ba2e883 100644 --- a/tko_project_task_actions_assign/models/project_task.py +++ b/tko_project_task_actions_assign/models/project_task.py @@ -80,13 +80,13 @@ def set_cancel(self): class ProjectTask(models.Model): _inherit = 'project.task' - user_ids = fields.Many2many('res.users',string='Team',compute='get_users') + user_ids = fields.Many2many('res.users','project_task_team_rel', 'task_id', 'team_id', string='Team') - @api.multi - def get_users(self): - for task in self: - user_ids = [] - for action_line in task.action_line_ids: - if action_line.user_id: - user_ids.append(action_line.user_id.id) - task.user_ids = [(6, 0 , list(set(user_ids)))] + # @api.multi + # def get_users(self): + # for task in self: + # user_ids = [] + # for action_line in task.action_line_ids: + # if action_line.user_id: + # user_ids.append(action_line.user_id.id) + # task.user_ids = [(6, 0 , list(set(user_ids)))] diff --git a/tko_project_task_actions_assign_team/models/project.py b/tko_project_task_actions_assign_team/models/project.py index d498eea..b20e4ac 100644 --- a/tko_project_task_actions_assign_team/models/project.py +++ b/tko_project_task_actions_assign_team/models/project.py @@ -9,17 +9,12 @@ class ProjectProject(models.Model): team_id = fields.Many2one('project.team', u'Team') user_id_domain = fields.Selection([('nr', _('No Restriction')), ('pt', _(u"User's from Project Team")), - ('at', _(u"User's from Action's Team")), + ('at', _(u"User's from Action Line Team")), ('tt', _(u"User's from Task Team")), ], default='nr', string=u'Assigned To Restriction', help=u'This will restrict Assigned To in action lines basedon selection') -# Make Team (user_ids non-readonly in tasks because we allow user to apply domain" -class ProjectTask(models.Model): - _inherit = 'project.task' - user_ids = fields.Many2many('res.users', 'project_task_team_rel', 'task_id', 'team_id', string='Team') - class ProjectTaskType(models.Model): _inherit = 'task.type' From 0417293c18ea0f26e82d952c616a6075ced2bb91 Mon Sep 17 00:00:00 2001 From: yk2kus Date: Thu, 14 Jun 2018 19:08:14 +0000 Subject: [PATCH 7/7] update labels, translations apply domain on task team --- .../i18n/pt_BR.po | 40 +++++++++++-------- .../models/project.py | 26 +++++++++++- .../models/project_team.py | 9 ++--- .../views/project_task_view.xml | 16 ++++++++ 4 files changed, 66 insertions(+), 25 deletions(-) diff --git a/tko_project_task_actions_assign_team/i18n/pt_BR.po b/tko_project_task_actions_assign_team/i18n/pt_BR.po index 2a8675d..3fd50cb 100644 --- a/tko_project_task_actions_assign_team/i18n/pt_BR.po +++ b/tko_project_task_actions_assign_team/i18n/pt_BR.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 10.0+pro\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-08 17:59+0000\n" -"PO-Revision-Date: 2018-06-08 17:59+0000\n" +"POT-Creation-Date: 2018-06-14 19:04+0000\n" +"PO-Revision-Date: 2018-06-14 19:04+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -18,12 +18,17 @@ msgstr "" #. module: tko_project_task_actions_assign_team #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_project_user_id_domain msgid "Assigned To Restriction" -msgstr "Assigned To Restriction" +msgstr "Restrição do responsável" + +#. module: tko_project_task_actions_assign_team +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_type +msgid "Assigned to seleciton on action lines" +msgstr "Seleção de responsável nas linhas de ações" #. module: tko_project_task_actions_assign_team #: selection:project.team,type:0 -msgid "Bucket" -msgstr "Bucket" +msgid "Auto" +msgstr "Automática" #. module: tko_project_task_actions_assign_team #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_create_uid @@ -65,6 +70,11 @@ msgstr "Última atualização em" msgid "Manager" msgstr "Manager" +#. module: tko_project_task_actions_assign_team +#: selection:project.team,type:0 +msgid "Mannual" +msgstr "Manual" + #. module: tko_project_task_actions_assign_team #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_name msgid "Name" @@ -92,7 +102,7 @@ msgstr "Projeto" #: model:ir.ui.view,arch_db:tko_project_task_actions_assign_team.project_team_form #: model:ir.ui.view,arch_db:tko_project_task_actions_assign_team.project_team_tree msgid "Project Team" -msgstr "Project Team" +msgstr "Projeto Time" #. module: tko_project_task_actions_assign_team #: model:ir.ui.menu,name:tko_project_task_actions_assign_team.project_team_action_menu @@ -100,35 +110,31 @@ msgid "Project Teams" msgstr "Project Teams" #. module: tko_project_task_actions_assign_team -#: selection:project.team,type:0 -msgid "Prorate" -msgstr "Prorate" +#: model:ir.model,name:tko_project_task_actions_assign_team.model_project_task +msgid "Task" +msgstr "Tarefa" #. module: tko_project_task_actions_assign_team #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_action_line_wizard_team_id #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_project_team_id #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_task_action_line_team_id #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_task_action_team_id +#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_task_project_user_ids #: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_task_type_team_id msgid "Team" -msgstr "Team" +msgstr "Time" #. module: tko_project_task_actions_assign_team #: model:ir.model.fields,help:tko_project_task_actions_assign_team.field_project_project_user_id_domain msgid "This will restrict Assigned To in action lines basedon selection" msgstr "This will restrict Assigned To in action lines basedon selection" -#. module: tko_project_task_actions_assign_team -#: model:ir.model.fields,field_description:tko_project_task_actions_assign_team.field_project_team_type -msgid "Type" -msgstr "Tipo" - #. module: tko_project_task_actions_assign_team #: code:addons/tko_project_task_actions_assign_team/models/project.py:12 #: selection:project.project,user_id_domain:0 #, python-format -msgid "User's from Action's Team" -msgstr "Time das ações" +msgid "User's from Action Line Team" +msgstr "User's from Action Line Team" #. module: tko_project_task_actions_assign_team #: code:addons/tko_project_task_actions_assign_team/models/project.py:11 diff --git a/tko_project_task_actions_assign_team/models/project.py b/tko_project_task_actions_assign_team/models/project.py index b20e4ac..60e9623 100644 --- a/tko_project_task_actions_assign_team/models/project.py +++ b/tko_project_task_actions_assign_team/models/project.py @@ -16,6 +16,22 @@ class ProjectProject(models.Model): help=u'This will restrict Assigned To in action lines basedon selection') +class ProjectTask(models.Model): + _inherit = 'project.task' + + project_user_ids = fields.Many2many('res.users', 'project_task_team_rel', 'task_id', 'team_id', compute='get_users', string='Team') + + # set domain if project has team + @api.one + @api.depends('project_id','project_id.team_id') + def get_users(self): + if self.project_id and self.project_id.team_id: + users = self.project_id.team_id.user_ids + else: + users = self.env['res.users'].search([]) + self.project_user_ids = [(6, 0, users.ids)] + + class ProjectTaskType(models.Model): _inherit = 'task.type' @@ -85,10 +101,16 @@ def onchange_action(self): self.onchange_team() @api.one - @api.depends('team_id', 'action_id') + @api.depends('action_id') def onchange_team(self): + team_id = self.get_team_id() + if not team_id: + team_id = self.task_id and self.task_id.task_type_id and self.task_id.task_type_id.team_id \ + and self.task_id.task_type_id.team_id.id or False + if not team_id: + team_id = self.task_id and self.task_id.project_id and self.task_id.project_id.team_id or False if self.team_id: - # self.team_id = self.team_id.id + self.team_id = self.team_id.id if self.team_id.type == 'b': self.user_id = False else: diff --git a/tko_project_task_actions_assign_team/models/project_team.py b/tko_project_task_actions_assign_team/models/project_team.py index 2c74942..052cb69 100644 --- a/tko_project_task_actions_assign_team/models/project_team.py +++ b/tko_project_task_actions_assign_team/models/project_team.py @@ -6,19 +6,16 @@ class ProjectTeam(models.Model): _name = 'project.team' name = fields.Char('Name', required=True) - type = fields.Selection([('b', u'Bucket'), ('p', u'Prorate')], default='p', required=True) + type = fields.Selection([('b', u'Manual'), ('p', u'Auto')], default='p', + string='Assigned to seleciton on action lines', required=True) parent_id = fields.Many2one('project.team', u'Parent') manager_id = fields.Many2one('res.users', u'Manager') user_ids = fields.Many2many('res.users', 'project_team_users_rel', 'team_id', 'user_id', string=u'Users') - - def get_team_users(self, users= []): + def get_team_users(self, users=[]): users += self.user_ids.ids if self.manager_id: users.append(self.manager_id.id) if self.parent_id: self.parent_id.get_team_users(users) return list(set(users)) - - - diff --git a/tko_project_task_actions_assign_team/views/project_task_view.xml b/tko_project_task_actions_assign_team/views/project_task_view.xml index 1e8ba68..bbbe5d4 100644 --- a/tko_project_task_actions_assign_team/views/project_task_view.xml +++ b/tko_project_task_actions_assign_team/views/project_task_view.xml @@ -54,4 +54,20 @@ + + + project.task.form + project.task + + + + [('id','in',project_user_ids and project_user_ids[0][2])] + + + + + + + +