[IMP] web: Add support to display unusual days in green
Purpose ======= Allow to add an attribute ``show_unusual_days="True"`` to display some days in green, according to a linked method ``get_unusual_days`` that should be defined on the related model to return all the concerned days for a given period.
This commit is contained in:
committed by
Yannick Tivisse
parent
6b67174063
commit
3fbd67f265
@@ -51,6 +51,7 @@ var CalendarController = AbstractController.extend({
|
||||
this.quickAddPop = params.quickAddPop;
|
||||
this.disableQuickCreate = params.disableQuickCreate;
|
||||
this.eventOpenPopup = params.eventOpenPopup;
|
||||
this.showUnusualDays = params.showUnusualDays;
|
||||
this.formViewId = params.formViewId;
|
||||
this.readonlyFormViewId = params.readonlyFormViewId;
|
||||
this.mapping = params.mapping;
|
||||
@@ -154,6 +155,31 @@ var CalendarController = AbstractController.extend({
|
||||
this.model[to]();
|
||||
return this.reload();
|
||||
},
|
||||
/**
|
||||
* @override
|
||||
* @private
|
||||
*/
|
||||
_update: function () {
|
||||
var self = this;
|
||||
if (!this.showUnusualDays) {
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
return this._super.apply(this, arguments).then(function () {
|
||||
self._rpc({
|
||||
model: self.modelName,
|
||||
method: 'get_unusual_days',
|
||||
args: [self.model.data.start_date.format('YYYY-MM-DD'), self.model.data.end_date.format('YYYY-MM-DD')],
|
||||
context: self.context,
|
||||
}).then(function (data) {
|
||||
_.each(self.$el.find('td.fc-day'), function (td) {
|
||||
var $td = $(td);
|
||||
if (data[$td.data('date')]) {
|
||||
$td.addClass('o_calendar_disabled');
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
* @param {Object} record
|
||||
|
||||
@@ -131,6 +131,7 @@ var CalendarView = AbstractView.extend({
|
||||
}
|
||||
|
||||
this.controllerParams.eventOpenPopup = utils.toBoolElse(attrs.event_open_popup || '', false);
|
||||
this.controllerParams.showUnusualDays = utils.toBoolElse(attrs.show_unusual_days || '', false);
|
||||
this.controllerParams.mapping = mapping;
|
||||
this.controllerParams.context = params.context || {};
|
||||
this.controllerParams.displayName = params.action && params.action.name;
|
||||
|
||||
@@ -98,6 +98,10 @@ $o-cw-filter-avatar-size: 20px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.o_calendar_disabled {
|
||||
background-color: $gray-200;
|
||||
border-color: white !important;
|
||||
}
|
||||
|
||||
// ====== Specific agenda types ======
|
||||
// ====================================
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<rng:optional><rng:attribute name="quick_add" /></rng:optional>
|
||||
<rng:optional><rng:attribute name="color" /></rng:optional>
|
||||
<rng:optional><rng:attribute name="event_open_popup" /></rng:optional>
|
||||
<rng:optional><rng:attribute name="show_unusual_days" /></rng:optional>
|
||||
<rng:optional><rng:attribute name="js_class"/></rng:optional>
|
||||
<rng:optional><rng:attribute name="hide_time"/></rng:optional>
|
||||
<rng:optional><rng:attribute name="hide_date"/></rng:optional>
|
||||
|
||||
Reference in New Issue
Block a user