Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MIG] web_timeline: Migration to 13.0 #1470

Closed
wants to merge 67 commits into from

Conversation

thoongnv
Copy link
Contributor

@thoongnv thoongnv commented Dec 30, 2019

The main goal is switching the library from https://github.com/almende/vis(no longer maintained) to https://github.com/visjs/vis-timeline

@OCA-git-bot
Copy link
Contributor

Hi @tarteo,
some modules you are maintaining are being modified, check this out!

@pedrobaeza
Copy link
Member

Please preserve commit history following technical method explained in https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-13.0

And also check new conventions in 13.0 branch for black/isort.

lmignon and others added 28 commits December 30, 2019 18:05
* Avoid to display all items of group_by model
* Remove unnecessary readgroup
* Remove dependency on project. Modify module structure. Imporve readme file.
* Add setup.py
* [FIX] Correct write when grouped by

* Remove blank lines

* Minor changes
* Update the vis.js framework to latest stable version (v4.20.1) to add new functionality and save almost
400ko of source code in odoo assets (the vis dev team has isolate the code for timeline widget from the
 rest of their widgets)

* Add the possibility to display events with no duration (instantaneous) as the same time has regular events

* Add the possibility to choose between two scroll mode :
  -  zoom in time resolution (default)
  or
  -  vertical scroll (web browser default behaviour)

Signed-off-by: adrien.didenot <adrien.didenot@horanet.com>
Signed-off-by: adrien.didenot <adrien.didenot@horanet.com>
…same as base Calendar view)

In Odoo calendar view, the attribute date_delay is an alternative to date_stop, to provides the duration of the event instead of its end date.
This commit integrate this attribute to the Timeline view, but contrary to the base Calendar view the Timeline view could use both arguments (date_stop and date_delay) simultaneously.

Signed-off-by: adrien.didenot <adrien.didenot@horanet.com>
The default window display all the events (aka 'fit'), in case of events spread over the year, the events are invisibles (too small to be readable)

Signed-off-by: adrien.didenot <adrien.didenot@horanet.com>
Change the attribute 'default_window' to 'mode' like the Odoo calendar view (to be iso functional)
CSS classes have changed with the updated version of vis.js
* Update Version in Manifest
* Remove enconding in .py files
* Rewrite the view definition according to version 11
[IMP] web_timeline: Templates implementation like kanban

[ADD] Check if template exists

Update README.rst
[UPD] Version number

[UPD] README
Update README.rst

[FIX] Remove console.log

[ADD] Make timeline.fit optional

[FIX] Use stringified points

[IMP] Reversed the arrow head and fixed lint issues

[IMP] Use options parameter for line color and width

[FIX] Version number

[IMP] Minor improvements
[IMP] Prevent flickering

[IMP] Fixed headers

[ADD] Create new record by date range selection

Remove roadmap item from readme

[FIX] minimal height
@thoongnv
Copy link
Contributor Author

@pedrobaeza done, can you recheck again?

@pedrobaeza pedrobaeza added this to the 13.0 milestone Dec 30, 2019
@pedrobaeza
Copy link
Member

Thanks for that, it seems Travis is still red.

@thoongnv
Copy link
Contributor Author

Refactored, passed check now.

@pedrobaeza
Copy link
Member

Great, thanks for the efforts. Now time for the reviewers to check.

Copy link
Member

@Tardo Tardo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the efforts!

JS need be updated to ES6: odoo/odoo@9071a25

I comment some lines... but not all to avoid have 1000000 comments with the sames changes ;)

Define a new view displaying events in an interactive visualization chart.

The widget is based on the external library
http://visjs.org/timeline_examples.html
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This page no longer exists...

@@ -0,0 +1,31 @@
/* Button style */
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, use scss.

if (xDiff > threshold) {
points.push([x1 - breakAt, y1]);
points.push([x1 - breakAt, y1 - yDiff]);
} else if (xDiff <= threshold) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
} else if (xDiff <= threshold) {
} else {

Comment on lines 53 to 59
var n_group_bys = [];
if (this.renderer.arch.attrs.default_group_by) {
n_group_bys = this.renderer.arch.attrs.default_group_by.split(',');
}
if (group_bys.length) {
n_group_bys = group_bys;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can avoid creating the empty list.

var n_group_bys = group_bys;
if (!n_group_bys.length && this.renderer.arch.attrs.default_group_by) {
    n_group_bys = this.renderer.arch.attrs.default_group_by.split(',');
}

if (this.open_popup_action) {
new dialogs.FormViewDialog(this, {
res_model: this.model.modelName,
res_id: parseInt(id, 10).toString() === id ? parseInt(id, 10) : id,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
res_id: parseInt(id, 10).toString() === id ? parseInt(id, 10) : id,
res_id: id,


fieldsToGather.push(attrs.default_group_by);

_.each(fieldsToGather, function (field) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
_.each(fieldsToGather, function (field) {
for (const field of fieldsToGather) {

Comment on lines 86 to 88
for (var i = 0; i < this.colors.length; i++) {
fieldNames.push(this.colors[i].field);
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

            for (const color of this.colors) {
                fieldNames.push(color.field);
            }

return -1;
}
if (grp2.id === -1) {
return +1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
return +1;
return 1;

self.quick_create_instance = 'instance.' + attrs.quick_create_instance;
}
this.stack = true;
if (!isNullOrUndef(attrs.stack) && !_.str.toBoolElse(attrs.stack, "true")) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_.str.toBoolElse() exists?

margin: JSON.parse(this.margin),
zoomKey: this.zoomKey,
};
if (isNullOrUndef(attrs.event_open_popup) || !_.str.toBoolElse(attrs.event_open_popup, true)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_.str.toBoolElse() exists?

@thoongnv
Copy link
Contributor Author

thoongnv commented Feb 5, 2020

Hi @Tardo Could you recheck it, I did some refactors

@simahawk
Copy link
Contributor

@Tardo ping :)

@Tardo
Copy link
Member

Tardo commented Feb 26, 2020

Hi, there are some unattended comments... can you check 'Files Changed' tab?
Check Travis too

Thanks!

@Tardo
Copy link
Member

Tardo commented Mar 20, 2020

Well... no replies in ~1 month, i will supersede this PR 🌳

@pedrobaeza
Copy link
Member

Superseded by #1557

@pedrobaeza pedrobaeza closed this Mar 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.