Git Product home page Git Product logo

business-requirement's Introduction

Runboat Pre-commit Status Build Status codecov Translation Status

business-requirement

TODO: add repo description.

Available addons

addon version maintainers summary
business_requirement 14.0.1.2.1 Manage the Business Requirements (stories, scenarios, gaps and test cases) for your customers
business_requirement_crm 14.0.1.0.0 Convert Leads to Business Requirement
business_requirement_deliverable 14.0.1.1.1 Manage the Business Requirement Deliverables for your customers
business_requirement_sale 14.0.1.0.0 Convert Business Requirement into Sales Orders
business_requirement_sale_timesheet 14.0.1.0.0 Business Requirement Sale Timesheet

Licenses

This repository is licensed under AGPL-3.0.

However, each module can have a totally different license, as long as they adhere to Odoo Community Association (OCA) policy. Consult each module's __manifest__.py file, which contains a license key that explains its license.


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.

business-requirement's People

Contributors

astirpe avatar carlosroca13 avatar chienandalu avatar donatasv avatar elicoidal avatar ivorra78 avatar joycehuan avatar kl-adonze avatar marcelsavegnago avatar noahzaozao avatar oca-git-bot avatar oca-transbot avatar oca-travis avatar pedrobaeza avatar rawevan avatar reinhard-sheng avatar rubencabrera avatar sbidoul avatar sergio-teruel avatar serpentcs-dev1 avatar sudhir-serpentcs avatar sysadminmatmoz avatar tardo avatar victoralmau avatar weblate avatar yakulu avatar yogeshmahera-serpentcs avatar ypapouin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

business-requirement's Issues

[8.0] Onchange product_id in deliverable.

This onchange might be a bit annoying when we come with context from another model and are creating a deliverable on the fly. If, from context, we had a description, and select a product, it replaces our text. If we change opinion and delete the selected product, we end up with an empty description, which is even more inconvenient, IMHO.

Is it ok if I create a PR to change this behavior? Any comments on anything I haven't thought of?

[RFC] ADD Kanban View on BR model and Form View

Add Kanban view for the main BR menu.

The Kanban frame should contain (similar to task):

Name+description
Master Project
Tags
Priority (stars)
# hours in Timesheets (from task related gather the Time spent) / # hours in Resource lines (Time planned on all RL Task Type)
Tags
Responsible (Photo)

Links to (similar to project):

# tasks (to tree view with the Task related)
# hours (takes to Tree view with all the timesheets on liked task)
# document (Tree view with all Attachments)

By default, the columns should contain the BR stages.
Sorted by priority + sequence

[RFC] Add Reviewer and Estimator info

Create ACL for a Reviewer and Estimator and allow to set the reviewer and estimator in the business requirement form by adding a many 2 many field in the model and in the form view (Employees or users in the drop down list) Allow to set more than one Reviewer and Estimator (many to many)

How to show Codecov in the PR?

Currently the Codecov coverage is not displayed for business-requirement repository at the bottom of the PR along Travis and Runbot.

How to make it active?

[RFC] Deliverable Lines and Resource Lines independent from BR

In order to improve the usability of current view design based form/sub-form/sub-subform we want to switch to a smart button related design where deliverable lines and Resources lines are open via smart buttons

Module business_requirement_deliverable

Business Requirement Model

  • partner_id
    • mandatory
  • resource_lines
    • o2m business.requirement.resource
    • inverse business_requirement_id

Business Requirement Deliverable Model

  • business_requirement_id
    • required True

Business Requirement Resource Model

  • business_requirement_id
    • m2o business.requirement
    • required True

Business Requirement Form

  • deliverable_lines should be smart button
  • resource_lines create smart button

Business Requirement Menu

Modify Business Requirement Menu:

- Possible views (first default): To Kanban View/Tree view/Form/Graph 

- After Business Requirement add menus:

    - Deliverables
        - Possible views (first default): Kanban View/Tree view/Form/Graph
     - Resources
        - Possible views (first default): Kanban View/Tree view/Form/Graph

Business Requirement Group by/Search:

  • Group by
    • Customer: partner_id
    • Project: project_id
    • Status: state
  • Search
    • partner_id
    • project_id
    • state

Business Requirement Deliverable Group by/Search:

  • Group by
    • Business Requirement: business_requirement_id
    • Customer: business_requirement_id.partner_id
    • Project: business_requirement_id.project_id
    • Product: product_id
  • Search
    • business_requirement_id
    • business_requirement_id.project_id
    • business_requirement_id.partner_id
    • product_id

Business Requirement Resource Group by/Search:

  • Group by
    • Business Requirement: business_requirement_id
    • Customer: business_requirement_id.partner_id
    • Project: business_requirement_id.project_id
    • Product: product_id
  • Search
    • business_requirement_id
    • business_requirement_id.project_id
    • business_requirement_id.partner_id
    • product_id

Resource lines under Deliverables lines tab

if the Type = "task" and the Root Category for tasks and Assign to columns have values, then if we change the Type to "Procurement" values of the two columns are removed, But; when save and close the Deliverables lines then reopen it we find that the Root Category for tasks and Assign to columns will remain read only but will show their values as if the Type="task" while they should show nothing and being set to Null.

In stages missing the stage "drop"

We need 2 stages like in previous version:

  • Cancel: the demand is irrelevant/erroneous
  • Drop: decision is made not to pursue the BR

Currently only one (Cancel)

BR def name_get() Issue when use Group By on Task by business-requirement

BR name_get use format() built in Python lib and if some string is unicode will happen like this:

Apr 11 10:44:25 superman docker/trunk_odoo-elico_1[806]: File "/opt/odoo/additional_addons/business-requirement/business_requirement/models/business.py", line 256, in name_get
Apr 11 10:44:25 superman docker/trunk_odoo-elico_1[806]: formatted_name = '[{}] {}'.format(br.name, br.description)
Apr 11 10:44:25 superman docker/trunk_odoo-elico_1[806]: UnicodeEncodeError: 'ascii' codec can't encode characters in position 29-37: ordinal not in range(128

Project/Task creation state

Currently project task creation is possible in approved state. Shouldn't we create tasks after stakeholder approval? What if he doesn't approve?

I am also confused about order of the states.

Current state order:
Draft -> Confirmed -> Approved -> Stakeholder Approval -> In Progress -> Done

If it's business requirements which is in progress, shouldn't it be before it is being confirmed?
Draft -> In Progress -> Confirmed -> Approved -> Stakeholder Approval -> Done

Maybe I didn't get what is meant by "in progress".

Thanks for the great module by the way.

Migration to version 10.0 [FINISHED]

Todo

https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-10.0

Modules to migrate

When you pick a module, input your github id and the PR number after the name of the module:

  • business_requirement #223
  • business_requirement_deliverable #224
  • business_requirement_deliverable_categ (DEPRECATED)
  • business_requirement_deliverable_cost #225
  • business_requirement_deliverable_crm #229
  • business_requirement_deliverable_default (DEPRECATED)
  • business_requirement_deliverable_project #231
  • business_requirement_deliverable_project_categ (DEPRECATED)
  • business_requirement_deliverable_project_task_categ #233
  • business_requirement_deliverable_report (TO BE MOVED TO EACH SPECIFIC MODULE)
  • business_requirement_deliverable_resource_template #236
  • business_requirement_deliverable_resource_template_categ #237
  • business_requirement_earned_value #234 (DEPRECATED)
  • business_requirement_etherpad #235

[RFC] Migration Path

A migration process was started a long time ago from v8 to v9.
In the meantime the whole structure of the files and strong improvements have been added to the v8 version of the module and v9 migration has been stopped.
Today the version of v8 is now stabilized and we will restart the migration process.
Current code is v9 is obsolete so I am wondering about the best course of action:

@dreispt @pedrobaeza @sudhir-serpentcs @seb-elico @victormartinelicocorp

Create new default resource line in product form error

If i add a item in the "default resource line", in the product form, i get the error:

File "/odoo_test/parts/business-requirement/business_requirement_deliverable_cost/models/business.py", line 52, in _get_partner
    if br_deliverable and br_deliverable.business_requirement_id:
UnboundLocalError: local variable 'br_deliverable' referenced before assignment

[RFC] Kanban state

It would be great to have a Kanban state on the BR, same way we have it for the tasks.

The standards states should be enough:

  • "normal"
  • "on hold"
  • "ready for next step"

For instance, a BR at stage "Confirmed" with Kanban state "ready for next step" means that it has been estimated and is waiting for approval. Whereas a "normal" one means that the estimation needs to be finalized.

Migration to version 9.0

Todo

Please check the following link before proceeding to the migration: https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-9.0

Modules to migrate

When you pick a module, input your github id and the PR number after the name of the module:

Fix Workflow for Project/tasks creation

Change when the button to generate the project appears. It should get displayed when the stage is set to Stakeholder approval (rename to Approved by Stakeholders).

[RFC] Earned Value Management Report

Objective

Create a Earned Value Management Report to link the information from the BR with the one from the timesheets

module: business_requirement_earned_value
dependency: hr_timesheets, business_requirement_deliverable
Menu: Reporting / Project
Entry Name: Earned Value Management

Information for dimensions:

  • (A) BR name
  • (B) BR description
  • (C) BR Customer
  • (D) BR Master Project
  • (E) Product from RL
  • (F) Product from Timesheet (*)

Information for measures

  • (G) Planned time in RL
  • (H) Product Cost from RL
  • (I = G x H) Planned Value (PV)
  • (J) Actual time in Timesheet
  • (K) Product Cost from Timesheet product
  • (L = J x K) Actual Cost (AC)
  • (M = L - I) Variance
  • (N = M / H) % Variance
  • (O) Remaining time (**)
  • (P = J + O) Total expected time
  • (Q = J / P) % Project Completion
  • (R = I * Q) Earned Value (EV)

Accessibility only to "BR Cost manager"
(*) based on all timesheets from tasks linked to the BR
(**) from the field remaining time of tasks related to the BR

Additional resources: http://www.brighthubpm.com/monitoring-projects/97906-calculating-earned-value/

[RFC] BI report for the business requirements

Create a 3 BR reports including the following

Common information for dimension:

  • from BR main information: name+description+customer+Master Project+change request+ Priority
  • from DL main information (outside join): Product+description
  • from RL main information (outside join): Product+description

Report 1 (BR Cost control)

To be added in br_deliverable_cost.
Measures should be:

  • Count #BR
  • Count #DL
  • Count #RL
  • Total qty (from RL)
  • Total qty (from DL)
  • Sales price (from DL)
  • Total Revenue (from DL)
  • Cost price (from RL)
  • Total cost (from RL)
  • Gross Profit (calculation)

Accessibility only to "BR Cost manager"

Report 2 (BR Sales Follow-up)

To be included in module br_deliverable.
Measures should be:

  • Count #BR
  • Count #DL
  • Count #RL
  • Total qty (from RL)
  • Total qty (from DL)
  • Sales price
  • Total Revenue

Accessibility only to "BR Sales Estimate"

Report 3 (BR follow-up)

To be included in the business_requirement_deliverable module:
Measures should be:

  • Count #BR
  • Count #DL
  • Count #RL
  • Total qty (from RL)
  • Total qty (from DL)

Accessibility only to "BR manager"

Cannot duplicate BR

When trying to duplicate a BR I have the following error:
AccessError

The requested operation cannot be completed due to security restrictions. Please contact your system administrator.

(Document type: business.requirement, Operation: read)

[8.0] Cannot duplicate the business requirement

When duplicating I get the following traceback:

Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: 2017-03-21 04:05:18,710 249 ERROR elico_stable openerp.http: Exception during JSON request handling.
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: Traceback (most recent call last):
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/http.py", line 544, in _handle_exception
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return super(JsonRequest, self)._handle_exception(exception)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/http.py", line 581, in dispatch
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: result = self._call_function(**self.params)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/http.py", line 317, in _call_function
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return checked_call(self.db, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/service/model.py", line 118, in wrapper
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return f(dbname, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/http.py", line 314, in checked_call
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return self.endpoint(*a, **kw)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/http.py", line 810, in call
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return self.method(*args, **kw)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/http.py", line 410, in response_wrap
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: response = f(*args, **kw)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/addons/web/controllers/main.py", line 944, in call_kw
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return self._call_kw(model, method, args, kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/addons/web/controllers/main.py", line 936, in _call_kw
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 268, in wrapper
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return old_api(self, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/models.py", line 4917, in copy
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: new_id = self.create(cr, uid, data, context)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 268, in wrapper
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return old_api(self, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 372, in old_api
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: result = method(recs, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/additional_addons/business-requirement/business_requirement/models/business.py", line 190, in create
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return super(BusinessRequirement, self).create(vals)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 266, in wrapper
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return new_api(self, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 508, in new_api
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: result = method(self._model, cr, uid, *args, **old_kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/addons/mail/mail_thread.py", line 381, in create
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: thread_id = super(mail_thread, self).create(cr, uid, values, context=context)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 268, in wrapper
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return old_api(self, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 372, in old_api
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: result = method(recs, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/additional_addons/connector/connector/producer.py", line 48, in create
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: record_id = create_original(self, vals)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 266, in wrapper
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return new_api(self, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/models.py", line 4126, in create
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: record = self.browse(self._create(old_vals))
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 266, in wrapper
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return new_api(self, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 508, in new_api
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: result = method(self._model, cr, uid, *args, **old_kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/models.py", line 4342, in _create
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: recs.recompute()
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/api.py", line 266, in wrapper
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return new_api(self, *args, **kwargs)
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/models.py", line 5795, in recompute
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: name: rec[name] for name in names
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/models.py", line 5795, in
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: name: rec[name] for name in names
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/models.py", line 5679, in getitem
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return self._fields[key].get(self, type(self))
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/fields.py", line 841, in get
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return record._cache[self]
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/models.py", line 6079, in getitem
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: return value.get() if isinstance(value, SpecialValue) else value
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: File "/opt/odoo/sources/odoo/openerp/fields.py", line 56, in get
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: raise self.exception
Mar 21 12:05:18 superman docker/stable_odoo-elico_1[806]: AccessError: ('AccessError', u'The requested operation cannot be completed due to security restrictions. Please contact your system administrator.\n\n(Document type: business.requirement, Operation: read)')

8.0 create quotation from opportunity

When I'm in Opportunities and I click on the button 'Quotation from Business Requirements' I get the following error:

Traceback (most recent call last):
File "/.repo_requirements/odoo/openerp/http.py", line 544, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/.repo_requirements/odoo/openerp/http.py", line 581, in dispatch
result = self._call_function(**self.params)
File "/.repo_requirements/odoo/openerp/http.py", line 317, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/.repo_requirements/odoo/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs)
File "/.repo_requirements/odoo/openerp/http.py", line 314, in checked_call
return self.endpoint(*a, **kw)
File "/.repo_requirements/odoo/openerp/http.py", line 810, in call
return self.method(*args, **kw)
File "/.repo_requirements/odoo/openerp/http.py", line 410, in response_wrap
response = f(*args, **kw)
File "/root/odoo-8.0/addons/web/controllers/main.py", line 948, in call_button
action = self._call_kw(model, method, args, {})
File "/root/odoo-8.0/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/.repo_requirements/odoo/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs)
File "/.repo_requirements/odoo/openerp/api.py", line 399, in old_api
result = method(recs, *args, **kwargs)
File "/root/build/OCA/business-requirement/business_requirement_deliverable_crm/wizard/crm_make_sale.py", line 30, in make_orderline
order_lines = self.prepare_sale_order_line(case_id, order_id)
File "/root/build/OCA/business-requirement/business_requirement_deliverable_crm/wizard/crm_make_sale.py", line 43, in prepare_sale_order_line
make sale order!"""))
TypeError: init() takes exactly 2 arguments (3 given)

[RFC] Editable fields depending on the stage

Currently, the fields of a BR are only editable when it's in Draft stage. It's conflicting with the workflow. As a reminder, here's the meaning of the stages:

  • Draft: prepare the scope on the first tab (at least Customer Story)
  • Confirmed: customer has confirmed the scope, we can finalize the solution (Scenario, Gap Analysis, QA) and estimate it (Deliverables + Resources)
  • Approved: the solution and estimation has been approved internally, we can send it to the customer
  • Stakeholder Approval: the customer has approved the estimation, we can start (i.e. generate) the project (we can still modify the assignee for each resource)
  • In Progress: the project has started

Here's the matrix to summarize (V = editable, X = read-only):

              Draft  Confirmed  Approved  SH Appr.  In prog.
Cust. Story     V        X          X        X         X
Scenario        V        V          X        X         X
Gap             V        V          X        X         X
QA              V        V          X        X         X
Deliverables    V        V          X        X         X
Resources       V        V          X        X         X
Assignee        V        V          V        V         X

Add "Reference" in BR

Add "Reference" (Text data type) field to the BR and show on the Tree (list) view and adjust issue #37 to show this "Reference" with the description as [Reference] Description. instead of [BR Number] Description

Display Generate Project button if not linked

Right now, the button disappears when you change the stage and only gets displayed on one stage.
Get the generate project button to display after the stakeholder approval as long as there is no project linked (See other the information tab for the field) (hide if a project is linked)

[8.0] Master project overwritten with generated project

Current behavior: When generating a project from a BR, the Master Project gets replaced by the generated project.

Expected behavior: Master Project of a BR must not change when generating the project.

I created #92 hoping it could solve the issue but Runbot wasn't working by then. Now I tested it and it doesn't fix the issue, unfortunately the PR has been merged already.

Fix Duplicate Function for Business Requirements

Make sure the linked project is emptied when you copy a Business Requirement (check if other fields would make sense to leave empty after a copy also).
Make sure that it is done for the other objects below the business requirements (resource lines, deliverable line items) if they are duplicated as well.

[RFC] Adding a new Action to show BRs in sequence view

Create a new menu action under the Business Requirement category menu to show BRs in a sequence view like "Products by Category" action under Products category menu under Sales root menu to show list of BRs sorted by Parents and "Reference" created in issue #45 .

Design flaw for the link with the generated project

Long story short, it's possible to generate multiple projects from 1 BR but there's only 1 field to store the generated project ("Linked Project").

Basically, when generating the projects from a BR, there are 4 options:

  1. Not generate project (i.e. generated tasks are linked to the master project)
  2. Generate 1 project
  3. Generate 1 project per DL
  4. Generate 1 project per child BR

Ideally, each option should have its own way to store the link with the generated projects.

For now, I suggest the following:

  1. Disable option 1. In the future, if we want to re-enable it, we need to store the link with the BR at the task level.
  2. Disable option 4. This option is not good enough since it doesn't allow to choose what needs to be generated for the child BRs (e.g. option 2, 3 or 4!)
  3. The link between the project and the BR should be stored in the project. This way, we can remove the link stored in the BR and we can also remove the link stored in the tasks.
  4. In the project, we should add 2 fields:
  • br_id: ID of the BR from which the project has been generated
  • dl_id: only in case of option 3, ID of the DL from which the project has been generated
  1. Since we remove the field "Linked Project" in the BR, we need to replace it with a smart button that will give the list of projects that have been generated from this BR.

To be noted that there's a new feature under development to allow having RL directly attached to a BR (without having an intermediate DL). It's the same scenario as option 2.
As for the following scenario where we combine it with option 3, it's possible to implement it this way:

BR FOO (id=123)
 > RL 1
 > RL 2
 > RL 3
 > DL A  (id=456)
  > RL A1
  > RL A2
 > DL B  (id=789)
  > RL B1
  > RL B2
  > RL B3

If we select options 2 and 3, we would generate 3 projects:

FOO (br_id=123, dl_id=NULL)
 > Task 1
 > Task 2
 > Task 3
A (br_id=123, dl_id=456)
 > Task A1
 > Task A2
B (br_id=123, dl_id=789)
 > Task B1
 > Task B2
 > Task B3

[8.0] improve ACL for sales estimation

Current behavior
Group "Business Requirement Estimation" is defined in module business-requirement/business_requirement_deliverable_cost/

Expected behavior:

Group "Business Requirement Estimation" is defined in module business-requirement/business_requirement_deliverable/

In tree view following Columns should only be visible for this group in the model and all forms (tree/form):

  • unit_price
  • price_total
  • currency_id

[8.0] business_requirement_deliverable need to be consisten when DL and RL are related

Because now RL and DL could be independent but if they are related between then should belong to same BR.

  1. FIX

On the Resource Lines Form and Tree view should be not possible edit business_requirement_id

If business_requirement_deliverable_id is set

Add domain on Views to fix

readonly="{'business_requirement_deliverable_id', '!=', False}

  1. FIX

On the Form Deliverable

if the business_requirement_id is edit then

should be updated the business_requirement_id on the related Resource Lines

Use etherpad, same as for the tasks description

Instead of html editor, use etherpad, same feature as created for the tasks description, available for all 4 fields (CS/Sc/Gap/Test Case)

  • Customer Story
  • Scenario
  • Gap
  • Test Case

To be improved on base module BR or added on new module business_requirement_etherpad

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.