diff options
| author | Ankita Raval <anr@odoo.com> | 2020-01-29 09:57:23 +0000 |
|---|---|---|
| committer | Simon Lejeune <sle@openerp.com> | 2020-01-29 09:57:23 +0000 |
| commit | 0052222b549ca0607a295e08f282452e2231f6fc (patch) | |
| tree | 94482a60c4b082a5e02c7e7a291c0da5ffd01507 /addons | |
| parent | 3dc7a7355e6cc1cd6ca3fe20fd8dc1b08a16a57b (diff) | |
[REF] web: calendar: allow disabling the delete button
In this commit, we add a new attribute "Delete" for user conveniency
if he don't want 'Delete' button on popover card they easily achive
by "delete=false" attribute and also add a testcase for it.
task-id:2088954
Diffstat (limited to 'addons')
5 files changed, 37 insertions, 1 deletions
diff --git a/addons/web/static/src/js/views/calendar/calendar_popover.js b/addons/web/static/src/js/views/calendar/calendar_popover.js index e6e5518d752..1094f345c7d 100644 --- a/addons/web/static/src/js/views/calendar/calendar_popover.js +++ b/addons/web/static/src/js/views/calendar/calendar_popover.js @@ -27,6 +27,7 @@ var CalendarPopover = Widget.extend(StandaloneFieldManagerMixin, { this.fields = eventInfo.fields; this.event = eventInfo.event; this.modelName = eventInfo.modelName; + this.canDelete = eventInfo.canDelete; }, /** * @override diff --git a/addons/web/static/src/js/views/calendar/calendar_renderer.js b/addons/web/static/src/js/views/calendar/calendar_renderer.js index 7755097d412..471ccfbb0c3 100644 --- a/addons/web/static/src/js/views/calendar/calendar_renderer.js +++ b/addons/web/static/src/js/views/calendar/calendar_renderer.js @@ -191,6 +191,7 @@ return AbstractRenderer.extend({ this.color_map = {}; this.hideDate = params.hideDate; this.hideTime = params.hideTime; + this.canDelete = params.canDelete; }, /** * @override @@ -695,6 +696,7 @@ return AbstractRenderer.extend({ displayFields: this.displayFields, event: eventData, modelName: this.model, + canDelete: this.canDelete, }; var start = moment(eventData.r_start || eventData.start); diff --git a/addons/web/static/src/js/views/calendar/calendar_view.js b/addons/web/static/src/js/views/calendar/calendar_view.js index d55493186aa..dfdb41a54e0 100644 --- a/addons/web/static/src/js/views/calendar/calendar_view.js +++ b/addons/web/static/src/js/views/calendar/calendar_view.js @@ -148,6 +148,7 @@ var CalendarView = AbstractView.extend({ this.rendererParams.model = viewInfo.model; this.rendererParams.hideDate = utils.toBoolElse(attrs.hide_date || '', false); this.rendererParams.hideTime = utils.toBoolElse(attrs.hide_time || '', false); + this.rendererParams.canDelete = this.controllerParams.activeActions.delete; this.loadParams.fieldNames = _.uniq(fieldNames); this.loadParams.mapping = mapping; diff --git a/addons/web/static/src/xml/web_calendar.xml b/addons/web/static/src/xml/web_calendar.xml index 4166b5e123e..41020c9939a 100644 --- a/addons/web/static/src/xml/web_calendar.xml +++ b/addons/web/static/src/xml/web_calendar.xml @@ -45,7 +45,7 @@ <ul class="list-group list-group-flush o_cw_popover_fields_secondary"/> <div class="card-footer border-top"> <a href="#" class="btn btn-primary o_cw_popover_edit">Edit</a> - <a href="#" class="btn btn-secondary o_cw_popover_delete ml-2">Delete</a> + <a t-if="widget.canDelete" href="#" class="btn btn-secondary o_cw_popover_delete ml-2">Delete</a> </div> </div> </t> diff --git a/addons/web/static/tests/views/calendar_tests.js b/addons/web/static/tests/views/calendar_tests.js index 25007283826..a58c857d49e 100644 --- a/addons/web/static/tests/views/calendar_tests.js +++ b/addons/web/static/tests/views/calendar_tests.js @@ -247,6 +247,38 @@ QUnit.module('Views', { calendar.destroy(); }); + QUnit.test('delete attribute on calendar doesn\'t show delete button in popover', async function (assert) { + assert.expect(2); + + const calendar = await createCalendarView({ + View: CalendarView, + model: 'event', + data: this.data, + arch: + '<calendar class="o_calendar_test" ' + + 'string="Events" ' + + 'event_open_popup="true" ' + + 'date_start="start" ' + + 'date_stop="stop" ' + + 'all_day="allday" ' + + 'delete="0" ' + + 'mode="month"/>', + archs: archs, + viewOptions: { + initialDate: initialDate, + }, + }); + + await testUtils.dom.click(calendar.$('.fc-event:contains(event 4) .fc-content')); + + assert.containsOnce(calendar, '.o_cw_popover', + "should open a popover clicking on event"); + assert.containsNone(calendar, '.o_cw_popover .o_cw_popover_delete', + "should not have the 'Delete' Button"); + + calendar.destroy(); + }); + QUnit.test('breadcrumbs are updated with the displayed period', async function (assert) { assert.expect(3); |
