Skip to content

Commit 6be7348

Browse files
committed
Merge PR #1478 into 18.0
Signed-off-by pedrobaeza
2 parents 3b0299c + cd3ca4a commit 6be7348

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+3813
-0
lines changed

project_timeline/README.rst

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
================
2+
Project timeline
3+
================
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:1f16e6ba4c3780114b81dc28aa60df927e4fbdde3bbcf096db0a9ef676f69103
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Beta
16+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18+
:alt: License: AGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproject-lightgray.png?logo=github
20+
:target: https://github.com/OCA/project/tree/18.0/project_timeline
21+
:alt: OCA/project
22+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23+
:target: https://translation.odoo-community.org/projects/project-18-0/project-18-0-project_timeline
24+
:alt: Translate me on Weblate
25+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
26+
:target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=18.0
27+
:alt: Try me on Runboat
28+
29+
|badge1| |badge2| |badge3| |badge4| |badge5|
30+
31+
This module extends the standard tasks and projects actions to add the
32+
timeline view to them, and also adds the needed fields in the view for
33+
handling them.
34+
35+
**Table of contents**
36+
37+
.. contents::
38+
:local:
39+
40+
Usage
41+
=====
42+
43+
To view the timeline:
44+
45+
- Go to *Project > Search > Tasks* or *Project > Dashboard*.
46+
- Click on the timeline view icon.
47+
- You will see the tasks or projects in the new view.
48+
49+
The Task timeline uses the "Planned Start Date" and "Planned End Date"
50+
fields, in the "Extra Info" tab (only visible in debug mode).
51+
52+
When a user is assigned, and there's no planned start date, current
53+
datetime is filled there, and the same happens for the end one when the
54+
task is put in a done stage.
55+
56+
Bug Tracker
57+
===========
58+
59+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/project/issues>`_.
60+
In case of trouble, please check there if your issue has already been reported.
61+
If you spotted it first, help us to smash it by providing a detailed and welcomed
62+
`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**>`_.
63+
64+
Do not contact contributors directly about support or help with technical issues.
65+
66+
Credits
67+
=======
68+
69+
Authors
70+
-------
71+
72+
* Tecnativa
73+
* Onestein
74+
75+
Contributors
76+
------------
77+
78+
- Alexandre Moreau <[email protected]>
79+
- Dennis Sluijk <[email protected]>
80+
- Nikul Chaudhary <[email protected]>
81+
- Eduardo Magdalena <[email protected]> (C2i Change 2 improve
82+
http://www.c2i.es)
83+
- `Tecnativa <https://www.tecnativa.com>`__:
84+
85+
- Pedro M. Baeza
86+
- Carlos Dauden
87+
- Alexandre Díaz
88+
- Juan José Seguí
89+
- Carlos López
90+
91+
- `Open Source Integrators <https://www.opensourceintegrators.com>`__:
92+
93+
- Daniel Reis <[email protected]>
94+
95+
- `XCG Consulting <https://xcg-consulting.fr>`__:
96+
97+
- Houzéfa Abbasbhay
98+
99+
Maintainers
100+
-----------
101+
102+
This module is maintained by the OCA.
103+
104+
.. image:: https://odoo-community.org/logo.png
105+
:alt: Odoo Community Association
106+
:target: https://odoo-community.org
107+
108+
OCA, or the Odoo Community Association, is a nonprofit organization whose
109+
mission is to support the collaborative development of Odoo features and
110+
promote its widespread use.
111+
112+
This module is part of the `OCA/project <https://github.com/OCA/project/tree/18.0/project_timeline>`_ project on GitHub.
113+
114+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

project_timeline/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
2+
3+
from . import models
4+
from . import report

project_timeline/__manifest__.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Copyright 2016-2017 Tecnativa - Pedro M. Baeza
2+
# Copyright 2017 Tecnativa - Carlos Dauden
3+
# Copyright 2021 Open Source Integrators - Daniel Reis
4+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
5+
6+
{
7+
"name": "Project timeline",
8+
"summary": "Timeline view for projects",
9+
"version": "18.0.1.0.0",
10+
"category": "Project Management",
11+
"website": "https://github.com/OCA/project",
12+
"author": "Tecnativa, Onestein, Odoo Community Association (OCA)",
13+
"license": "AGPL-3",
14+
"depends": ["project", "web_timeline"],
15+
"data": [
16+
"views/project_project_view.xml",
17+
"views/project_task_view.xml",
18+
],
19+
"demo": ["demo/project_project_demo.xml", "demo/project_task_demo.xml"],
20+
"assets": {
21+
"web.assets_backend": [
22+
"/project_timeline/static/src/scss/project_timeline.scss"
23+
]
24+
},
25+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!-- Copyright 2018 Onestein
3+
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
4+
<odoo>
5+
<record id="project.project_project_1" model="project.project">
6+
<field
7+
name="date_start"
8+
eval="(DateTime.today() - timedelta(days=5)).strftime('%Y-%m-%d')"
9+
/>
10+
<field
11+
name="date"
12+
eval="(DateTime.today() + timedelta(days=2)).strftime('%Y-%m-%d')"
13+
/>
14+
</record>
15+
<record id="project.project_project_2" model="project.project">
16+
<field
17+
name="date_start"
18+
eval="(DateTime.today() - timedelta(days=30)).strftime('%Y-%m-%d')"
19+
/>
20+
<field
21+
name="date"
22+
eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d')"
23+
/>
24+
</record>
25+
</odoo>
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!-- Copyright 2016-2017 Tecnativa - Pedro M. Baeza
3+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
4+
<odoo>
5+
<record id="project.project_1_task_9" model="project.task">
6+
<field
7+
name="planned_date_start"
8+
eval="(DateTime.today() - timedelta(days=13)).strftime('%Y-%m-%d 00:00:00')"
9+
/>
10+
<field
11+
name="planned_date_end"
12+
eval="(DateTime.today() - timedelta(days=6)).strftime('%Y-%m-%d 00:00:00')"
13+
/>
14+
</record>
15+
<record id="project.project_1_task_2" model="project.task">
16+
<field
17+
name="planned_date_start"
18+
eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
19+
/>
20+
<field
21+
name="planned_date_end"
22+
eval="(DateTime.today() + timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
23+
/>
24+
</record>
25+
<record id="project.project_1_task_3" model="project.task">
26+
<field
27+
name="planned_date_start"
28+
eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d 00:00:00')"
29+
/>
30+
<field
31+
name="planned_date_end"
32+
eval="(DateTime.today() + timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
33+
/>
34+
</record>
35+
<record id="project.project_1_task_8" model="project.task">
36+
<field
37+
name="planned_date_start"
38+
eval="(DateTime.today() - timedelta(days=10)).strftime('%Y-%m-%d 00:00:00')"
39+
/>
40+
<field
41+
name="planned_date_end"
42+
eval="(DateTime.today() - timedelta(days=6)).strftime('%Y-%m-%d 00:00:00')"
43+
/>
44+
</record>
45+
<record id="project.project_1_task_6" model="project.task">
46+
<field
47+
name="planned_date_start"
48+
eval="(DateTime.today() - timedelta(days=9)).strftime('%Y-%m-%d 00:00:00')"
49+
/>
50+
<field
51+
name="planned_date_end"
52+
eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d 00:00:00')"
53+
/>
54+
</record>
55+
<record id="project.project_1_task_7" model="project.task">
56+
<field
57+
name="planned_date_start"
58+
eval="(DateTime.today() - timedelta(days=7)).strftime('%Y-%m-%d 00:00:00')"
59+
/>
60+
<field
61+
name="planned_date_end"
62+
eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d 00:00:00')"
63+
/>
64+
</record>
65+
<record id="project.project_1_task_5" model="project.task">
66+
<field
67+
name="planned_date_start"
68+
eval="(DateTime.today() - timedelta(days=6)).strftime('%Y-%m-%d 00:00:00')"
69+
/>
70+
<field
71+
name="planned_date_end"
72+
eval="(DateTime.today() - timedelta(days=3)).strftime('%Y-%m-%d 00:00:00')"
73+
/>
74+
</record>
75+
<record id="project.project_2_task_7" model="project.task">
76+
<field
77+
name="planned_date_start"
78+
eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
79+
/>
80+
<field
81+
name="planned_date_end"
82+
eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d 00:00:00')"
83+
/>
84+
</record>
85+
<record id="project.project_2_task_9" model="project.task">
86+
<field
87+
name="planned_date_start"
88+
eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
89+
/>
90+
<field
91+
name="planned_date_end"
92+
eval="(DateTime.today() + timedelta(days=6)).strftime('%Y-%m-%d 00:00:00')"
93+
/>
94+
</record>
95+
<record id="project.project_2_task_5" model="project.task">
96+
<field
97+
name="planned_date_start"
98+
eval="(DateTime.today() + timedelta(days=13)).strftime('%Y-%m-%d 00:00:00')"
99+
/>
100+
<field
101+
name="planned_date_end"
102+
eval="(DateTime.today() + timedelta(days=23)).strftime('%Y-%m-%d 00:00:00')"
103+
/>
104+
</record>
105+
<record id="project.project_2_task_4" model="project.task">
106+
<field
107+
name="planned_date_start"
108+
eval="(DateTime.today() + timedelta(days=13)).strftime('%Y-%m-%d 00:00:00')"
109+
/>
110+
<field
111+
name="planned_date_end"
112+
eval="(DateTime.today() + timedelta(days=23)).strftime('%Y-%m-%d 00:00:00')"
113+
/>
114+
</record>
115+
<record id="project.project_2_task_3" model="project.task">
116+
<field
117+
name="planned_date_start"
118+
eval="(DateTime.today() + timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
119+
/>
120+
<field
121+
name="planned_date_end"
122+
eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 00:00:00')"
123+
/>
124+
</record>
125+
<record id="project.project_2_task_2" model="project.task">
126+
<field
127+
name="planned_date_start"
128+
eval="(DateTime.today() + timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')"
129+
/>
130+
<field
131+
name="planned_date_end"
132+
eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d 00:00:00')"
133+
/>
134+
</record>
135+
<record id="project.project_2_task_6" model="project.task">
136+
<field
137+
name="planned_date_start"
138+
eval="(DateTime.today() + timedelta(days=11)).strftime('%Y-%m-%d 00:00:00')"
139+
/>
140+
<field
141+
name="planned_date_end"
142+
eval="(DateTime.today() + timedelta(days=15)).strftime('%Y-%m-%d 00:00:00')"
143+
/>
144+
</record>
145+
<record id="project.project_2_task_8" model="project.task">
146+
<field
147+
name="planned_date_start"
148+
eval="(DateTime.today() + timedelta(days=12)).strftime('%Y-%m-%d 00:00:00')"
149+
/>
150+
<field
151+
name="planned_date_end"
152+
eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 00:00:00')"
153+
/>
154+
</record>
155+
<record id="project.project_2_task_1" model="project.task">
156+
<field
157+
name="planned_date_start"
158+
eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 00:00:00')"
159+
/>
160+
<field
161+
name="planned_date_end"
162+
eval="(DateTime.today() + timedelta(days=22)).strftime('%Y-%m-%d 00:00:00')"
163+
/>
164+
</record>
165+
<record id="project.project_1_task_4" model="project.task">
166+
<field
167+
name="planned_date_start"
168+
eval="(DateTime.today() + timedelta(days=30)).strftime('%Y-%m-%d 00:00:00')"
169+
/>
170+
<field
171+
name="planned_date_end"
172+
eval="(DateTime.today() + timedelta(days=32)).strftime('%Y-%m-%d 00:00:00')"
173+
/>
174+
</record>
175+
<record id="project.project_1_task_1" model="project.task">
176+
<field
177+
name="planned_date_start"
178+
eval="(DateTime.today() + timedelta(days=30)).strftime('%Y-%m-%d 00:00:00')"
179+
/>
180+
<field
181+
name="planned_date_end"
182+
eval="(DateTime.today() + timedelta(days=35)).strftime('%Y-%m-%d 00:00:00')"
183+
/>
184+
</record>
185+
<record id="project.project_2_task_10" model="project.task">
186+
<field
187+
name="planned_date_start"
188+
eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 00:00:00')"
189+
/>
190+
<field
191+
name="planned_date_end"
192+
eval="(DateTime.today() + timedelta(days=50)).strftime('%Y-%m-%d 00:00:00')"
193+
/>
194+
</record>
195+
</odoo>

0 commit comments

Comments
 (0)