Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
97e51f2
project_timeline
pedrobaeza Aug 1, 2016
e587b49
project_timeline: Migration to 10.0
carlosdauden Jun 29, 2017
c9f361f
Add start and end date in task form view (#324)
Doscaal Oct 15, 2017
cadbae0
Project Timeline to V11
Maartincm Apr 13, 2018
3b133d2
[IMP] project_timeline: 4 improvements:
tarteo Jul 9, 2018
2ee19b0
[MIG] project_timeline: Migration to 12.0
Nikul-Chaudhary Jan 22, 2019
5510c15
[12.0][IMP] project_timeline - Enable subtasks
emagdalenaC2i Apr 16, 2019
9f4736d
[IMP] project_timeline: scss instead of less
sbidoul Jul 11, 2019
9063473
project_timeline: unset `date_end` more safely
Nov 28, 2019
499e7fd
[IMP] project_timeline: black, isort
Tardo Mar 13, 2020
5043252
[MIG] project_timeline: Migration to 13.0
Tardo Mar 23, 2020
374b51b
[FIX]field date_assign appear in form view twice
digitalsatori Jul 15, 2020
954744e
[MIG] project_timeline: migrate to 14.0
dreispt Mar 9, 2021
1e0f655
[IMP] project_timeline: add Start Date field, to replace Assigned Dat…
dreispt Mar 15, 2021
28acfdf
[FIX] Added timeline view type on project.task actions
ChrisOForgeFlow Dec 21, 2021
1252cae
[IMP] project_timeline : consistency of tasks colors regarding kanban…
legalsylvain Jan 14, 2022
864999f
[FIX] project_timeline remove task view mode
petrus-v Jan 16, 2022
3ac77c1
[MIG] project_timeline: Migration to 15.0
cesar-tecnativa Jul 5, 2022
a61d29b
[MIG] project_timeline: Migration to 15.0
sergio-teruel Jul 25, 2022
f831541
[FIX] project_timeline: Allow showing user images
CarlosRoca13 Aug 2, 2022
8dd1dd9
[IMP] project_timeline: Add dependency_arrows on timeline
CarlosRoca13 Aug 4, 2022
1401b44
[FIX] project_timeline: missing action
jguenat Sep 14, 2022
cc24f7a
Translated using Weblate (Portuguese (Brazil))
douglascstd Sep 26, 2022
ad8997b
[MIG] project_timeline: Migration to 16.0
bvanjeelharia Mar 13, 2023
32a1fcc
Update translation files
weblate Mar 14, 2023
8c65e8c
Translated using Weblate (German)
NICO-SOLUTIONS Jun 20, 2023
69f80ba
[FIX]project_timeline: Add timeline view to model report.project.task
Jul 25, 2023
106af29
Translated using Weblate (Portuguese (Brazil))
adrianojprado Jul 30, 2023
9091482
Translated using Weblate (Spanish)
Ivorra78 Aug 23, 2023
ba27057
Translated using Weblate (Dutch)
Jan-Onestein Oct 5, 2023
37987ad
Update translation files
weblate Oct 9, 2023
d879296
[FIX] project_timeline: `image_128` -> `avatar_128`
MiquelRForgeFlow Oct 10, 2023
f2fb07c
Translated using Weblate (Spanish (Argentina))
ibuioli Oct 29, 2023
59bc525
[FIX] project_timeline: Remove redundant view
houzefa-abba Jan 8, 2024
9b315e4
Translated using Weblate (French)
houzefa-abba Jan 11, 2024
f18e064
Translated using Weblate (Swedish)
jakobkrabbe Feb 23, 2024
21ee514
[FIX] project_timeline: Fix unassigned task color
houzefa-abba Mar 18, 2024
7b740bf
[FIX] project_timeline: Fix demo task dates
houzefa-abba Apr 3, 2024
83efc4e
[IMP] project_timeline: Add date constraint
houzefa-abba Apr 3, 2024
2cf82c3
Update translation files
weblate Apr 3, 2024
ba40c7c
Translated using Weblate (Italian)
mymage Apr 4, 2024
3630e4e
Translated using Weblate (Spanish (Argentina))
ibuioli Apr 7, 2024
8b77dba
Translated using Weblate (Portuguese (Brazil))
augustodinizl May 1, 2024
d7f2285
[REF] project_timeline: Use dedicated fields for timeline planning
juanjosesegui-tecnativa Sep 3, 2024
f1638bb
Update translation files
weblate Oct 4, 2024
3ccd750
Translated using Weblate (Spanish)
victoralmau Oct 4, 2024
9cf7457
Translated using Weblate (Italian)
mymage Oct 5, 2024
f08e585
Translated using Weblate (Spanish (Argentina))
ibuioli Oct 6, 2024
fe382e4
[IMP] project_timeline: pre-commit auto fixes
carlos-lopez-tecnativa Oct 8, 2024
ba2b466
[MIG] project_timeline: Migration to 17.0
carlos-lopez-tecnativa Oct 18, 2024
91eb00b
Update translation files
weblate Oct 22, 2024
0c7ee4c
[FIX] project_timeline: add fields in report.project.task.user to pre…
carlos-lopez-tecnativa Oct 23, 2024
75b3379
Update translation files
weblate Oct 24, 2024
efd3b9c
Translated using Weblate (Italian)
mymage Oct 24, 2024
562f459
[FIX] project_timeline: Remove overshadowing of date_end functionality
tarteo Nov 19, 2024
ff57b06
[FIX] project_timeline: Add list view on projects
ByteMeAsap Nov 21, 2024
919f36d
Translated using Weblate (Spanish)
anmarmo1 Feb 3, 2025
572e47a
[IMP] project_timeline: Move planning fields out of notebook page
tarteo Nov 21, 2024
a4dc9c9
[IMP] project_timeline: pre-commit auto fixes
carlos-lopez-tecnativa Apr 17, 2025
cd3ca4a
[MIG] project_timeline: Migration to version 18.0
carlos-lopez-tecnativa Apr 17, 2025
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
114 changes: 114 additions & 0 deletions project_timeline/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
================
Project timeline
================

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

.. |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_timeline
: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_timeline
: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|

This module extends the standard tasks and projects actions to add the
timeline view to them, and also adds the needed fields in the view for
handling them.

**Table of contents**

.. contents::
:local:

Usage
=====

To view the timeline:

- Go to *Project > Search > Tasks* or *Project > Dashboard*.
- Click on the timeline view icon.
- You will see the tasks or projects in the new view.

The Task timeline uses the "Planned Start Date" and "Planned End Date"
fields, in the "Extra Info" tab (only visible in debug mode).

When a user is assigned, and there's no planned start date, current
datetime is filled there, and the same happens for the end one when the
task is put in a done stage.

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_timeline%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
-------

* Tecnativa
* Onestein

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

- Alexandre Moreau <[email protected]>
- Dennis Sluijk <[email protected]>
- Nikul Chaudhary <[email protected]>
- Eduardo Magdalena <[email protected]> (C2i Change 2 improve
http://www.c2i.es)
- `Tecnativa <https://www.tecnativa.com>`__:

- Pedro M. Baeza
- Carlos Dauden
- Alexandre Díaz
- Juan José Seguí
- Carlos López

- `Open Source Integrators <https://www.opensourceintegrators.com>`__:

- Daniel Reis <[email protected]>

- `XCG Consulting <https://xcg-consulting.fr>`__:

- Houzéfa Abbasbhay

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.

This module is part of the `OCA/project <https://github.com/OCA/project/tree/18.0/project_timeline>`_ 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_timeline/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from . import models
from . import report
25 changes: 25 additions & 0 deletions project_timeline/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2016-2017 Tecnativa - Pedro M. Baeza
# Copyright 2017 Tecnativa - Carlos Dauden
# Copyright 2021 Open Source Integrators - Daniel Reis
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Project timeline",
"summary": "Timeline view for projects",
"version": "18.0.1.0.0",
"category": "Project Management",
"website": "https://github.com/OCA/project",
"author": "Tecnativa, Onestein, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": ["project", "web_timeline"],
"data": [
"views/project_project_view.xml",
"views/project_task_view.xml",
],
"demo": ["demo/project_project_demo.xml", "demo/project_task_demo.xml"],
"assets": {
"web.assets_backend": [
"/project_timeline/static/src/scss/project_timeline.scss"
]
},
}
25 changes: 25 additions & 0 deletions project_timeline/demo/project_project_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2018 Onestein
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="project.project_project_1" model="project.project">
<field
name="date_start"
eval="(DateTime.today() - timedelta(days=5)).strftime('%Y-%m-%d')"
/>
<field
name="date"
eval="(DateTime.today() + timedelta(days=2)).strftime('%Y-%m-%d')"
/>
</record>
<record id="project.project_project_2" model="project.project">
<field
name="date_start"
eval="(DateTime.today() - timedelta(days=30)).strftime('%Y-%m-%d')"
/>
<field
name="date"
eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d')"
/>
</record>
</odoo>
195 changes: 195 additions & 0 deletions project_timeline/demo/project_task_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2016-2017 Tecnativa - Pedro M. Baeza
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
<odoo>
<record id="project.project_1_task_9" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() - timedelta(days=13)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() - timedelta(days=6)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_1_task_2" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_1_task_3" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_1_task_8" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() - timedelta(days=10)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() - timedelta(days=6)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_1_task_6" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() - timedelta(days=9)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_1_task_7" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() - timedelta(days=7)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_1_task_5" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() - timedelta(days=6)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() - timedelta(days=3)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_7" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_9" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=6)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_5" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=13)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=23)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_4" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=13)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=23)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_3" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_2" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_6" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=11)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=15)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_8" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=12)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_1" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=22)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_1_task_4" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=30)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=32)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_1_task_1" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=30)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=35)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
<record id="project.project_2_task_10" model="project.task">
<field
name="planned_date_start"
eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 00:00:00')"
/>
<field
name="planned_date_end"
eval="(DateTime.today() + timedelta(days=50)).strftime('%Y-%m-%d 00:00:00')"
/>
</record>
</odoo>
Loading