diff options
| author | Arnaud Joset <arj@odoo.com> | 2020-06-04 10:56:34 +0000 |
|---|---|---|
| committer | Arnaud Joset <arj@odoo.com> | 2020-06-23 07:56:16 +0000 |
| commit | 6b95f0c144620bb0f043ad60bc7ab1c6283bf70e (patch) | |
| tree | d1aba4c670b86e74d30a2ba3209ab78f73538fcd | |
| parent | b88c755b35b59d4565eafb8cd732db23b8dad047 (diff) | |
[IMP] project: improve calendar view
Before this commit, the calendar view showcases tasks by deadline. Because it is a simple date field, the day/week modes don't have much value and are even confusing to the users, who expect to be able to define timeframes.
In addition, the quickcreate doesn't allow to select a project. This is problematic because it leads to "ghost" tasks.
closes odoo/odoo#52478
Taskid: 2264594
Related: odoo/enterprise#10976
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
| -rw-r--r-- | addons/project/static/src/js/project_calendar.js | 22 | ||||
| -rw-r--r-- | addons/project/views/project_assets.xml | 1 | ||||
| -rw-r--r-- | addons/project/views/project_views.xml | 3 | ||||
| -rw-r--r-- | addons/web/static/src/xml/web_calendar.xml | 10 |
4 files changed, 33 insertions, 3 deletions
diff --git a/addons/project/static/src/js/project_calendar.js b/addons/project/static/src/js/project_calendar.js new file mode 100644 index 00000000000..51b3488ee20 --- /dev/null +++ b/addons/project/static/src/js/project_calendar.js @@ -0,0 +1,22 @@ +odoo.define('project.ProjectCalendarView', function (require) { +"use strict"; + +const CalendarController = require('web.CalendarController'); +const CalendarView = require('web.CalendarView'); +const viewRegistry = require('web.view_registry'); + +const ProjectCalendarController = CalendarController.extend({ + _renderButtonsParameters() { + return _.extend({}, this._super(...arguments), {scaleDrop: true}); + }, +}); + +const ProjectCalendarView = CalendarView.extend({ + config: _.extend({}, CalendarView.prototype.config, { + Controller: ProjectCalendarController, + }), + }); + +viewRegistry.add('project_calendar', ProjectCalendarView); +return ProjectCalendarView; +}); diff --git a/addons/project/views/project_assets.xml b/addons/project/views/project_assets.xml index 60c995c2a41..4a520675e9d 100644 --- a/addons/project/views/project_assets.xml +++ b/addons/project/views/project_assets.xml @@ -7,6 +7,7 @@ <script type="text/javascript" src="/project/static/src/js/project_rating_reporting.js"></script> <script type="text/javascript" src="/project/static/src/js/project_task_kanban_examples.js"></script> <script type="text/javascript" src="/project/static/src/js/tours/project.js"></script> + <script type="text/javascript" src="/project/static/src/js/project_calendar.js"></script> <link rel="stylesheet" type="text/scss" href="/project/static/src/scss/project_dashboard.scss"/> </xpath> </template> diff --git a/addons/project/views/project_views.xml b/addons/project/views/project_views.xml index 4e5dfa8ed5a..86c26faa1fd 100644 --- a/addons/project/views/project_views.xml +++ b/addons/project/views/project_views.xml @@ -873,7 +873,8 @@ <field name="model">project.task</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> - <calendar date_start="date_deadline" string="Tasks" mode="month" color="user_id" event_limit="5" hide_time="true"> + <calendar date_start="date_deadline" string="Tasks" mode="month" color="user_id" event_limit="5" + hide_time="true" quick_add="False" js_class="project_calendar"> <field name="user_id" avatar_field="image_128" filters="1"/> <field name="date_deadline"/> <field name="project_id"/> diff --git a/addons/web/static/src/xml/web_calendar.xml b/addons/web/static/src/xml/web_calendar.xml index dbe7bb2834d..a5e2924ed92 100644 --- a/addons/web/static/src/xml/web_calendar.xml +++ b/addons/web/static/src/xml/web_calendar.xml @@ -91,8 +91,14 @@ <t t-name="CalendarView.buttons"> <div class="o_calendar_buttons"> - <t t-call="CalendarView.navigation_buttons" /> - <t t-call="CalendarView.scale_buttons" /> + <span class="o_calendar_navigation_buttons"> + <t t-call="CalendarView.navigation_buttons" /> + </span> + <t t-if="!scaleDrop"> + <span class="o_calendar_scale_buttons"> + <t t-call="CalendarView.scale_buttons" /> + </span> + </t> </div> </t> |
