From 10fe3e3c2dad89cc5793049aadcca7c79a7f48df Mon Sep 17 00:00:00 2001 From: Yogesh Mahera Date: Fri, 25 Aug 2017 18:23:43 +0530 Subject: [PATCH] [IMP/ADD]Improved code,Removed Linked Project field add Project_ids field,modify code as per changes --- .../i18n/sl.po | 57 ++++++++----------- .../models/business.py | 54 ++++++++++++------ .../models/project.py | 2 +- .../tests/test_br.py | 7 ++- .../views/business_view.xml | 23 +++++++- .../wizard/generate_projects.py | 8 +-- 6 files changed, 94 insertions(+), 57 deletions(-) diff --git a/business_requirement_deliverable_project/i18n/sl.po b/business_requirement_deliverable_project/i18n/sl.po index 54b681018..c8ae1c702 100644 --- a/business_requirement_deliverable_project/i18n/sl.po +++ b/business_requirement_deliverable_project/i18n/sl.po @@ -1,27 +1,19 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * business_requirement_deliverable_project -# -# Translators: -# OCA Transbot , 2017 +# * business_requirement_deliverable_project +# msgid "" msgstr "" "Project-Id-Version: Odoo Server 8.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-04 09:58+0000\n" -"PO-Revision-Date: 2017-08-04 09:58+0000\n" -"Last-Translator: OCA Transbot , 2017\n" -"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"POT-Creation-Date: 2017-08-25 11:57+0000\n" +"PO-Revision-Date: 2017-08-25 11:57+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" -"Language: sl\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" - -#. module: business_requirement_deliverable_project -#: model:ir.actions.act_window,name:business_requirement_deliverable_project.action_view_tasks_business_requirement -msgid "Action Tasks Related BR" -msgstr "Ukrepi povezani s PZ" +"Plural-Forms: \n" #. module: business_requirement_deliverable_project #: field:business.requirement,all_project_generated:0 @@ -31,11 +23,8 @@ msgstr "Vsi ustvarjeni projekti" #. module: business_requirement_deliverable_project #: code:addons/business_requirement_deliverable_project/models/project.py:43 #, python-format -msgid "" -"All business requirements of the project should be " -"stakeholder_approval/canceled/done" -msgstr "" -"Vse poslovne zahteve projekta morajo biti odobrene/preklicane/opravljene" +msgid "All business requirements of the project should be stakeholder_approval/canceled/done" +msgstr "Vse poslovne zahteve projekta morajo biti odobrene/preklicane/opravljene" #. module: business_requirement_deliverable_project #: model:ir.model,name:business_requirement_deliverable_project.model_business_requirement @@ -158,12 +147,6 @@ msgstr "Poveži opravilo s poslovno zahtevo" msgid "Linked Project" msgstr "Povezani projekt" -#. module: business_requirement_deliverable_project -#: field:business.requirement,linked_project:0 -#: field:business.requirement.deliverable,linked_project:0 -msgid "Linked project" -msgstr "Povezani projekt" - #. module: business_requirement_deliverable_project #: field:business.requirement,linked_project_count:0 msgid "Number of Business Requirements" @@ -172,11 +155,9 @@ msgstr "Število poslovnih zahtev" #. module: business_requirement_deliverable_project #: code:addons/business_requirement_deliverable_project/models/project.py:37 #, python-format -msgid "" -"Please set working time default unit in project\n" +msgid "Please set working time default unit in project\n" " config settings" -msgstr "" -"Nastavite privzeto enoto za delovni čas v\n" +msgstr "Nastavite privzeto enoto za delovni čas v\n" " nastavitvah projekta" #. module: business_requirement_deliverable_project @@ -189,6 +170,14 @@ msgstr "Projekt" msgid "Project to create the tasks" msgstr "Projekt, kjer se ustvari opravila" +#. module: business_requirement_deliverable_project +#: code:addons/business_requirement_deliverable_project/models/business.py:66 +#: field:business.requirement,project_ids:0 +#: field:business.requirement.deliverable,project_ids:0 +#, python-format +msgid "Projects" +msgstr "Projects" + #. module: business_requirement_deliverable_project #: field:project.project,origin:0 msgid "Source Document" @@ -203,17 +192,16 @@ msgstr "Opravilo" #: view:business.requirement:business_requirement_deliverable_project.view_business_requirement_form #: view:business.requirement:business_requirement_deliverable_project.view_business_requirement_kanban_project #: field:business.requirement,task_ids:0 +#: model:ir.actions.act_window,name:business_requirement_deliverable_project.action_view_tasks_business_requirement msgid "Tasks" msgstr "Opravila" #. module: business_requirement_deliverable_project #: code:addons/business_requirement_deliverable_project/models/project.py:66 #, python-format -msgid "" -"There is no available business requirement resource line\n" +msgid "There is no available business requirement resource line\n" " to generate task" -msgstr "" -"Ni poslovne zahteve na voljo, da bi lahko ustvarili\n" +msgstr "Ni poslovne zahteve na voljo, da bi lahko ustvarili\n" " opravilo" #. module: business_requirement_deliverable_project @@ -250,3 +238,4 @@ msgstr "_Preklic" #: view:br.generate.projects:business_requirement_deliverable_project.view_br_generate_projects_form msgid "or" msgstr "ali" + diff --git a/business_requirement_deliverable_project/models/business.py b/business_requirement_deliverable_project/models/business.py index 9774f370c..a99ebee9a 100644 --- a/business_requirement_deliverable_project/models/business.py +++ b/business_requirement_deliverable_project/models/business.py @@ -13,12 +13,10 @@ def generate_projects_wizard(self): br_ids=self).generate_project_wizard() return res - linked_project = fields.Many2one( - string='Linked project', + project_ids = fields.One2many( comodel_name='project.project', - groups='project.group_project_user', - readonly=True, - copy=False + inverse_name='business_requirement_id', + string='Projects' ) task_ids = fields.One2many( @@ -43,12 +41,12 @@ def generate_projects_wizard(self): compute='_compute_planned_hour' ) linked_project_count = fields.Integer( - compute='_compute_linked_project_count', + compute='_compute_projects_count', string="Number of Business Requirements" ) - @api.depends('linked_project', 'deliverable_lines') - def _compute_linked_project_count(self): + @api.depends('project_ids', 'deliverable_lines') + def _compute_projects_count(self): for rec in self: domain = ['|', ('business_requirement_id', '=', rec.id), @@ -80,15 +78,15 @@ def action_open_linked_project(self): ) @api.depends('business_requirement_ids', - 'business_requirement_ids.linked_project') + 'business_requirement_ids.project_ids') def compute_all_project_generated(self): for rec in self: if rec.business_requirement_ids: - if all(rec.mapped('business_requirement_ids.linked_project')): + if all(rec.mapped('business_requirement_ids.project_ids')): rec.all_project_generated = True else: rec.all_project_generated = False - elif rec.linked_project: + elif rec.project_ids: rec.all_project_generated = True else: rec.all_project_generated = False @@ -123,9 +121,33 @@ def _compute_planned_hour(self): class BusinessRequirementDeliverable(models.Model): _inherit = "business.requirement.deliverable" - linked_project = fields.Many2one( - string='Linked project', + project_ids = fields.One2many( comodel_name='project.project', - groups='project.group_project_user', - readonly=True, - ) + inverse_name='business_requirement_deliverable_id', + string='Projects' + ) + + linked_project_count = fields.Integer( + compute='_compute_projects_count', + string="Number of Business Requirements" + ) + + @api.depends('project_ids') + def _compute_projects_count(self): + for rec in self: + rec.linked_project_count = len(rec.project_ids.ids) + + @api.multi + def action_open_linked_project(self): + for rec in self: + domain = [('business_requirement_deliverable_id', '=', + rec.id)] + return { + 'name': _('Projects'), + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'tree,form,graph', + 'res_model': 'project.project', + 'target': 'current', + 'domain': domain + } diff --git a/business_requirement_deliverable_project/models/project.py b/business_requirement_deliverable_project/models/project.py index 19dd6047b..8e7329e32 100644 --- a/business_requirement_deliverable_project/models/project.py +++ b/business_requirement_deliverable_project/models/project.py @@ -61,7 +61,7 @@ def generate_project_wizard(self): if generated: continue lines |= resource_line - if not lines and not br.linked_project: + if not lines and not br.project_ids: raise ValidationError( _("""There is no available business requirement resource line to generate task""")) diff --git a/business_requirement_deliverable_project/tests/test_br.py b/business_requirement_deliverable_project/tests/test_br.py index b9398f07d..46e5a5f14 100644 --- a/business_requirement_deliverable_project/tests/test_br.py +++ b/business_requirement_deliverable_project/tests/test_br.py @@ -254,7 +254,12 @@ def test_br_generate_projects_wizard(self): self.assertEqual( 'ir.actions.act_window', action['type']) - self.brA._compute_linked_project_count() + self.brA._compute_projects_count() + self.brA.deliverable_lines[0]._compute_projects_count() + + def test_action_open_linked_project_for_br_dl(self): + self.brA.action_open_linked_project() + self.brA.deliverable_lines[0].action_open_linked_project() def test_project_generate_project_wizard(self): self.brA.state = 'approved' diff --git a/business_requirement_deliverable_project/views/business_view.xml b/business_requirement_deliverable_project/views/business_view.xml index 839ff1b7b..8c59b5428 100755 --- a/business_requirement_deliverable_project/views/business_view.xml +++ b/business_requirement_deliverable_project/views/business_view.xml @@ -64,7 +64,7 @@ - + @@ -151,5 +151,26 @@ string="Business requirement"/> + + business.requirement.deliverable.form + business.requirement.deliverable + form + + + + + + + + + + diff --git a/business_requirement_deliverable_project/wizard/generate_projects.py b/business_requirement_deliverable_project/wizard/generate_projects.py index 402bb594c..230ecd569 100644 --- a/business_requirement_deliverable_project/wizard/generate_projects.py +++ b/business_requirement_deliverable_project/wizard/generate_projects.py @@ -110,17 +110,17 @@ def generate_br_projects(self, parent_project, br, project_ids, task_ids): br_project = self.get_generated_project(br) if br_project: br_project = br_project[0] - elif not br.linked_project: + elif not br.project_ids: br_project_val = self._prepare_project_vals( br, parent_project) br_project = project_obj.create(br_project_val) msg = ('Project %s has been created') % (br_project.name) br.message_post(body=msg) - br.linked_project = br_project.id + br_project.business_requirement_id = br.id project_ids.append(br_project.id) else: - br_project = br.linked_project - project_ids.append(br_project.id) + for project in br.project_ids: + project_ids.append(project.id) if not self.for_deliverable: self.create_project_task([br.resource_lines], br_project.id, task_ids)