TIP: You can type at any time to perform a new search.
Business Requirement
business_requirement · OCA/business-requirement
- Repository
- OCA/business-requirement · module folder · Try on Runboat
- Module version
- 1.0.1
- Category
- Business Requirements Management
- Folder size
- 1.45 MB
- License
- AGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://github.com/OCA/business-requirement
- Last tracking update
- 2026-08-07 08:09:33
- Authors
- Odoo Community Association (OCA), Elico Corp, Tecnativa
- Maintainers
- Odoo Community Association (OCA), Elico Corp, Tecnativa
- Committers
- Daniel Reis, Weblate, OCA-git-bot, oca-ci, Aromera
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- business_requirement_crm
- Description
A **Business requirement** (BR) is the expression of a business need by a customer or internal project user. A BR contains multiple different parts to explain the stakeholder need and how to meet his/her requirements: - **Customer Story**: this is the requirement as expressed by the customer - **Scenario**: How/where the current solution can provide a suitable scenario to answer the customer story - **Gap**: For the uncovered part of the scenario, elaborate the gap/need for specific developments/setup - **Test case**: A set of conditions under which a tester will determine whether the application, software system or one of its features is working as it was originally established for it to do. - **Deliverables** to be provided to the customer/user - **Resources** necessary to achieve the deliverables - **Additional** information (approval, cost control etc.) This set of modules was originally designed for the service/IT industry but the requirement management design has been kept as generic as possible so that it can apply to many other cases/industries (customer or internal projects): - Construction - Trading (New product development) - Business Consultancy - Web or IT development - R&D projects - etc. More information about business requirements management: - [Wikipedia](https://en.wikipedia.org/wiki/Business_requirements) - [Six Sigma](https://www.isixsigma.com/implementation/project-selection-tracking/business-requirements-document-high-level-review/)
Code Analysis ⓘ
Views touched (18)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
br_report |
br_report | ir.ui.view | qweb | New |
layout_br_report |
layout_br_report | ir.ui.view | qweb | New |
layout_br_report_body |
layout_br_report_body | ir.ui.view | qweb | New |
layout_br_report_header |
layout_br_report_header | ir.ui.view | qweb | New |
portal_br_error |
Business requirement error/warning display | ir.ui.view | qweb | New |
portal_br_page |
Business Requirement | ir.ui.view | qweb | New |
portal_br_success |
Business requirement success display | ir.ui.view | qweb | New |
portal_my_br |
My Business Requirements | ir.ui.view | qweb | New |
portal_my_home_br |
Portal My Home : business requirements entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_br |
Portal layout : business requirement menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
view_business_requirement_category_form |
business.requirement.category.form | business.requirement.category | form | New |
view_business_requirement_category_tree |
business.requirement.category.form | business.requirement.category | tree | New |
view_business_requirement_form |
business.requirement.form | business.requirement | form | New |
view_business_requirement_graph |
Business requirement | business.requirement | graph | New |
view_business_requirement_kanban_project |
business.requirement.kanban | business.requirement | kanban | New |
view_business_requirement_pivot |
Business requirement | business.requirement | pivot | New |
view_business_requirement_search |
business.requirement.search | business.requirement | search | New |
view_business_requirement_tree |
business.requirement.tree | business.requirement | tree | New |
HTTP endpoints (3)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/my/business_requirement/<int:br_id> |
CustomerPortal.portal_br_page |
public | http | ALL | website |
/my/business_requirement/pdf/<int:br_id> |
CustomerPortal.portal_br_report |
public | http | ALL | sudo website |
/my/business_requirements, /my/business_requirements/page/<int:page> |
CustomerPortal.portal_my_br |
user | http | ALL | sudo website |
Models touched (2)
New fields (27)
-
approval_dateDatetimecopy=Falsereadonly=True -
approved_idMany2one → res.userscomodel_name='res.users'copy=Falsereadonly=Truestring='Approved by' -
business_requirementHtmlreadonly=Truestates={'draft': [('readonly', False)]}string='Customer Story' -
category_idsMany2many → business.requirement.categorycomodel_name='business.requirement.category'readonly=Truerelation='business_requirement_category_rel'states={'draft': [('readonly', False)]}string='Categories' -
change_requestBooleanreadonly=Truestates={'draft': [('readonly', False)]}string='Change Request?' -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>readonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Company' -
confirmation_dateDatetimecopy=Falsereadonly=True -
confirmed_user_idMany2one → res.userscomodel_name='res.users'copy=Falsereadonly=Truestring='Confirmed by' -
dateDatedefault=<expr>required=True -
descriptionCharreadonly=Truerequired=Truestates={'draft': [('readonly', False)]} -
gapHtmlreadonly=Truestates={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]} -
kanban_stateSelectiondefault='normal'selection=[('normal', 'In Progress'), ('on_hold', 'On Hold'), ('done', 'Ready for next stage')]tracking=True -
nameCharcopy=Falsereadonly=Truestates={'draft': [('readonly', False)]} -
originCharreadonly=Truestates={'draft': [('readonly', False)], 'confirmed': [('readonly', True)]}string='Source' -
partner_idMany2one → res.partnercomodel_name='res.partner'copy=Falsereadonly=Truestates={'draft': [('readonly', False)]}string='Stakeholder' -
portal_publishedBooleandefault=False args: 'In Portal' -
prioritySelectiondefault='1'required=Trueselection=[('0', 'Low'), ('1', 'Normal'), ('2', 'High')] -
requested_user_idMany2one → res.userscomodel_name='res.users'default=<expr>readonly=Truerequired=Truestates={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]}string='Requested by' -
responsible_user_idMany2one → res.userscomodel_name='res.users'copy=Falsedefault=<expr>readonly=Truestates={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]}string='Responsible' -
reviewer_idsMany2many → res.userscomodel_name='res.users'copy=Falsereadonly=Truestates={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]}string='Reviewers' -
scenarioHtmlreadonly=Truestates={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]} -
sequenceCharcopy=Falseindex=Truereadonly=True -
stateSelectioncopy=Falsedefault='draft'readonly=Falseselection=[('draft', 'Draft'), ('confirmed', 'Confirmed'), ('approved', 'Approved'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancel'), ('drop', 'Drop')]states={'draft': [('readonly', False)]}tracking=True -
terms_and_conditionsHtmlreadonly=Truestates={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]} -
test_caseHtmlreadonly=Truestates={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]} -
to_be_reviewedBoolean -
user_idMany2one → res.userscomodel_name='res.users'default=<expr>required=Truestring='Owner'tracking=True
-
create(self, vals_list)@api.model_create_multi -
get_portal_confirmation_action(self) -
message_post(self, body='', subject=None, message_type='notification', email_from=None, author_id=None, parent_id=False, subtype_xmlid=None, subtype_id=None, partner_ids=None, channel_ids=None, attachments=None, attachment_ids=None, add_sign=True, record_name=False, **kwargs)@api.returns('mail.message', <expr>) -
name_get(self)Display display [Name] Description -
name_search(self, name, args=None, operator='ilike', limit=100)@api.modelSearch BR based on Name or Description -
portal_publish_button(self) -
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)@api.modelRead group customization in order to display all the stages in the kanban view. if the stages values are there it will group by state. -
write(self, vals)
New fields (2)
-
nameCharrequired=True -
parent_idMany2one → business.requirement.categorycomodel_name='business.requirement.category'ondelete='restrict'string='Parent Category'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- green — ready to merge
- Open since
- 27 days ago
- Last activity
- 27 days ago
- Repository
- OCA/business-requirement
- Pull request
- [17.0][MIG] business_requirement: Migration to 17.0 (#394)