Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
2113fd5
Project wbs
AaronHForgeFlow Apr 28, 2017
7bee9a5
[MIG][10.0]project_wbs
AaronHForgeFlow Aug 18, 2017
663709d
Comment out project stages since it's not pertinent in version 10
sysadminmatmoz Feb 1, 2018
324419d
Move analytic account fields inside the notebook, since
sysadminmatmoz Feb 1, 2018
c47ef70
Show wbs code since without it sorting doesn't work
sysadminmatmoz Feb 1, 2018
9833bcb
Version 10 uses decorations instead of line colors
sysadminmatmoz Feb 1, 2018
c0ec086
Sort the form and tree view to follow the v 10 user experience
sysadminmatmoz Feb 1, 2018
31a8de6
Restore kanban and tree navigation, correction on python to
sysadminmatmoz Feb 1, 2018
e329cb9
[FIX]view inheritability, default account_class in project
AaronHForgeFlow Feb 7, 2018
b0179e1
[UPD] Update project_wbs.pot
oca-travis Jul 2, 2018
5f1bf4c
[MIG]project_wbs: Migration to v11
AaronHForgeFlow Aug 3, 2018
b8bd078
[MIG] project_wbs: Migration to v12
bjeficent Jan 23, 2019
2734689
[IMP] minor fixes
HviorForgeFlow Jan 31, 2019
3959598
Increase test coverage
AdriaGForgeFlow Feb 4, 2019
1de276b
[IMP] minor fixes
bjeficent May 7, 2019
5edd5ea
[ENH]breadcrump text when navigating wbs elements
AaronHForgeFlow Sep 10, 2019
f5f3f1d
[FIX] Wrong pre_init_hook
MiquelRForgeFlow Oct 17, 2019
fcadaac
[REF] Don't inherit project.project from account.analytic.account
MiquelRForgeFlow Oct 16, 2019
78998bd
[FIX] Minor fixes
MiquelRForgeFlow Nov 6, 2019
3b39d28
[UPD] Update project_wbs.pot
oca-travis Nov 11, 2019
4505c0a
[UPD] README.rst
OCA-git-bot Nov 11, 2019
a20afb3
[FIX] init_hook: minor fix (assure codes are flushed to database)
MiquelRForgeFlow Nov 12, 2019
ba040af
project_wbs 12.0.1.0.1
OCA-git-bot Nov 12, 2019
f152dd8
[ADD] Migration scripts to v12
MiquelRForgeFlow Dec 3, 2019
126d8ae
Added translation using Weblate (German)
marylla Dec 13, 2019
3cf3280
Translated using Weblate (German)
marylla Dec 13, 2019
92ec37c
[FIX]project_wbs. parent analytic is computed based on its analytic a…
AaronHForgeFlow Jan 16, 2020
83da7f1
[UPD] Update project_wbs.pot
oca-travis Jan 21, 2020
d46d711
project_wbs 12.0.1.1.0
OCA-git-bot Jan 21, 2020
96bd3e8
Update translation files
oca-transbot Jan 21, 2020
8f12a09
[UPD] Update project_wbs.pot
oca-travis Jan 21, 2020
670e104
Update translation files
oca-transbot Jan 21, 2020
f5caec6
[FIX]project root calculation
AaronHForgeFlow Jan 31, 2020
18d8ff7
Added translation using Weblate (French)
gregory-moka Feb 7, 2020
4e55cd7
Translated using Weblate (French)
gregory-moka Feb 7, 2020
4591291
Added translation using Weblate (Slovenian)
sysadminmatmoz Mar 31, 2020
cdf5e99
Translated using Weblate (Slovenian)
sysadminmatmoz Mar 31, 2020
c4f2b70
Translated using Weblate (Slovenian)
sysadminmatmoz Apr 12, 2020
869b714
Added translation using Weblate (Italian)
primes2h May 31, 2020
6616818
Translated using Weblate (Italian)
primes2h May 31, 2020
cc52dd5
Translated using Weblate (Italian)
primes2h Jun 6, 2020
d40d53a
[UPD] Update project_wbs.pot
oca-travis Aug 29, 2020
8689ce7
project_wbs 12.0.1.1.1
OCA-git-bot Aug 29, 2020
392798c
Update translation files
oca-transbot Aug 29, 2020
1aaf0e0
[UPD] Update project_wbs.pot
oca-travis Aug 29, 2020
fe34ea7
Update translation files
oca-transbot Aug 29, 2020
51fafd9
Added translation using Weblate (Portuguese (Brazil))
marcelsavegnago May 13, 2021
99c2b26
[IMP] project_wbs: black, isort, prettier
JasminSForgeFlow Feb 14, 2023
fcefdab
[MIG] project_wbs: Migration to 14.0
JasminSForgeFlow Feb 14, 2023
1c32c27
[MIG] project_wbs: Migration to 15.0
JasminSForgeFlow Feb 16, 2023
e061909
[UPD] Update project_wbs.pot
Feb 22, 2023
af3cfba
[UPD] README.rst
OCA-git-bot Feb 22, 2023
b569ca1
Update translation files
weblate Feb 22, 2023
343b06e
Translated using Weblate (Slovenian)
sysadminmatmoz Mar 30, 2023
e4ac900
Translated using Weblate (Italian)
mymage Apr 11, 2023
8da88d4
Translated using Weblate (Italian)
mymage Apr 11, 2023
9a84edf
Translated using Weblate (Italian)
mymage Apr 12, 2023
8fc98d9
[UPD] README.rst
OCA-git-bot Sep 3, 2023
c4f38b6
Added translation using Weblate (Spanish)
Ivorra78 Sep 27, 2023
f92154e
Translated using Weblate (Spanish)
Ivorra78 Oct 2, 2023
e6fcc27
[FIX] project_wbs: duplicated dates in list view
AaronHForgeFlow Jan 5, 2024
b71d577
[UPD] Update project_wbs.pot
Jan 8, 2024
64a7e22
[BOT] post-merge updates
OCA-git-bot Jan 8, 2024
df71fa5
Update translation files
weblate Jan 8, 2024
b157e92
[FIX] project_wbs: calculation of root analytic account:
AaronHForgeFlow Jan 24, 2024
86b7a39
[BOT] post-merge updates
OCA-git-bot Jan 24, 2024
2762fed
[14.0][FIX] project_wbs: Manager consistency between project and anal…
AaronHForgeFlow Jan 30, 2024
4225b22
[BOT] post-merge updates
OCA-git-bot Apr 27, 2024
4f45f45
[FIX] project_wbs: respect the code that user manually puts in the pr…
AaronHForgeFlow Mar 27, 2024
1c21ad7
[BOT] post-merge updates
OCA-git-bot May 8, 2024
d9ad580
[FIX] project_wbs: Don't change project.project description
pedrobaeza May 13, 2024
23f6f1c
[UPD] Update project_wbs.pot
May 14, 2024
835b1ae
[BOT] post-merge updates
OCA-git-bot May 14, 2024
597b54c
Update translation files
weblate May 14, 2024
c030e70
[IMP] project_wbs: cleaner view for child WBS element and easier to i…
AaronHForgeFlow May 15, 2025
1050f7f
[IMP] project_wbs: update maintainer, author & Copyright
AaronHForgeFlow May 15, 2025
ca293ed
[UPD] Update project_wbs.pot
May 20, 2025
f4fa193
[BOT] post-merge updates
OCA-git-bot May 20, 2025
3a049c0
Update translation files
weblate May 20, 2025
2f1131d
Translated using Weblate (Italian)
mymage Jun 21, 2025
bba5708
[IMP] project_wbs: pre-commit auto fixes
lbarry-apsl Mar 11, 2026
5c7d053
[MIG] project_wbs: Migration to 18.0
lbarry-apsl Mar 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 140 additions & 0 deletions project_wbs/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
================================
Project Work Breakdown Structure
================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:14f0ce256362caa08dd8efeff3be656c73573f0fb26f9e5a082ef6113a8131b0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproject-lightgray.png?logo=github
:target: https://github.com/OCA/project/tree/18.0/project_wbs
:alt: OCA/project
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/project-18-0/project-18-0-project_wbs
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Adding WBS information to Odoo Projects

- The hierarchy of a project is considered the WBS (Work Breakdown
Structure)
- The analytic accounts in the project hierarchies are considered WBS
components
- The analytic account code is shown in the project
- The complete WBS path code is shown in the analytic account and in
the project
- The complete WBS path name is shown in the analytic account and in
the project
- The WBS paths are concatenated with each other
- Project Manager is propagated to the hierarchy, the Manager is
Manager for the WBS element only

Searching and Browsing WBS

- It is possible to search projects by complete WBS path code & name
- It is possible to search tasks by project complete WBS path code &
name
- The WBS components can be classified as project, phase, deliverable,
work package.
- The classification is shown in the project and analytic account views
- A project stage attribute is incorporated in the analytic account and
displayed in the project and analytic account views.

**Table of contents**

.. contents::
:local:

Usage
=====

Create a new child:

1. Go to Project > WBS
2. Click on one existing project or create a new one
3. Click on the form view to open the project.
4. Go to Work Breakdown Structure to create a new child

Navigation:

- Level column indicates the child hierarchy: '>' means it is a child.
'>>' means it is a grandchild an so on.
- Click on the up arrow to see the parent project.
- Click on the down arrow to see children projects.

Known issues / Roadmap
======================

- Actions for the different account class are implemented but menus for
those were not included. This is for inheritance purposes.
- RTL-friendliness in Project codes and names
- Do not show full names in children in Kanban View

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/project/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/project/issues/new?body=module:%20project_wbs%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Matmoz d.o.o.
* Luxim d.o.o.
* Deneroteam
* ForgeFlow

Contributors
------------

- Eficent <http://www.eficent.com>
- Luxim d.o.o. <http://www.luxim.si>
- Matmoz d.o.o. <http://www.matmoz.si>
- Deneroteam. <dhaval@deneroteam.com>
- SerpentCS <http://www.serpentcs.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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.

.. |maintainer-AaronHForgeFlow| image:: https://github.com/AaronHForgeFlow.png?size=40px
:target: https://github.com/AaronHForgeFlow
:alt: AaronHForgeFlow

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-AaronHForgeFlow|

This module is part of the `OCA/project <https://github.com/OCA/project/tree/18.0/project_wbs>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions project_wbs/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).

from . import models
from .hooks import pre_init_hook
30 changes: 30 additions & 0 deletions project_wbs/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2017 ForgeFlow S.L.
# Copyright 2017 Luxim d.o.o.
# Copyright 2017 Matmoz d.o.o.
# Copyright 2017 Deneroteam.
# Copyright 2017 Serpent Consulting Services Pvt. Ltd.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "Project Work Breakdown Structure",
"version": "18.0.1.0.0",
"license": "AGPL-3",
"author": "Matmoz d.o.o., "
"Luxim d.o.o., "
"Deneroteam, "
"ForgeFlow, "
"Odoo Community Association (OCA)",
"maintainers": ["AaronHForgeFlow"],
"website": "https://github.com/OCA/project",
"depends": [
"account_analytic_parent",
"account_analytic_sequence",
"hr_timesheet",
],
"summary": "Apply Work Breakdown Structure",
"data": [
"view/account_analytic_account_view.xml",
"view/project_project_view.xml",
],
"pre_init_hook": "pre_init_hook",
"installable": True,
}
37 changes: 37 additions & 0 deletions project_wbs/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import logging

logger = logging.getLogger(__name__)


def pre_init_hook(env):
# avoid crashing installation because of having same complete_wbs_code
for aa in (
env["account.analytic.account"]
.with_context(active_test=False)
.search([("code", "=", False)])
):
aa._write(
{"code": env["ir.sequence"].next_by_code("account.analytic.account.code")}
)
logger.info("Assigning default code to existing analytic accounts")

# analytic_account_id was removed from project.project in Odoo 17+.
# Only run this migration block if the column exists in the DB
# (i.e. when upgrading from an older Odoo version).
env.cr.execute(
"""
SELECT column_name FROM information_schema.columns
WHERE table_name = 'project_project'
AND column_name = 'analytic_account_id'
"""
)
if env.cr.fetchone():
projects = (
env["project.project"]
.with_context(active_test=False)
.search([("analytic_account_id", "=", False)])
)
projects._create_analytic_account()
projects.filtered(lambda p: not p.active).mapped("analytic_account_id").write(
{"active": False}
)
Loading
Loading