Skip to Content
Menu
This question has been flagged
1 Reply
5751 Views

Is there a way to define minTime/maxTime/slotDuration of fullCalendar in odoo System Parameters and then java will get those values and set Calendar to it? i.e. Set 3 system parameters (StartTime, StopTime and SlotDuration) and call those values.

I have this: (thanks to @Jigar Patel)

odoo.define('anser_ricardo', function(require){

"use strict";

var CalendarModel = require('web.CalendarModel');

CalendarModel.include({

_getFullCalendarOptions: function(){

var res = this._super.apply(this, arguments);

return _.extend(res, {

minTime: '08:00:00',

maxTime: '22:00:00',

slotDuration: '00:10:00',

});

},

});

});

And i've created 3 system parameters:

<record id='start_time_key' model='ir.config_parameter'>
<field name='key'>start_time_key</field>
<field name='value'>08:00:00</field>
</record>
<record id='stop_time_key' model='ir.config_parameter'>
<field name='key'>stop_time_key</field>
<field name='value'>22:00:00</field>
</record>
<record id='slotDuration_time_key' model='ir.config_parameter'>
<field name='key'>slotDuration_time_key</field>
<field name='value'>00:10:00</field>
</record>



I need to get values for minTime/maxTime/slotDuration and not to define like this.
Something like this:


return _.extend(res, {

minTime: get.start_time_key,

maxTime: get.stop_time_key,

slotDuration: get.slotDuration_time_key,


Can anyone help? Thanks!

Avatar
Discard
Best Answer

Hello Rick,

I have not tested it. But it may work and help you a lot.
If you want to get performance then you can make one python method rather then RPC batch in js.


odoo.define('anser_ricardo', function (require) {

"use strict";

var CalendarModel = require('web.CalendarModel');

CalendarModel.include({

_getFullCalendarOptions: function () {
var res = this._super.apply(this, arguments);
return _.extend(res, {
minTime: this.custom_fc_options.start_time_key,
maxTime: this.custom_fc_options.stop_time_key,
slotDuration: this.custom_fc_options.slotDuration_time_key,
});
},
_loadCalendar: function () {
var self = this;
var args = arguments;
var sup = this._super;
var defs = [];
this.custom_fc_options = {};

_.each(['start_time_key', 'stop_time_key', 'slotDuration_time_key], function (param) {
var def = self._rpc({
model: 'ir.config_parameter',
method: 'get_param',
args: [param]
}).then(function (res) {
self.custom_fc_options[param] = res;
});
defs.push(def);
});

return $.when.apply($, defs).then(function () {
return sup.apply(self, args);
});
},

});

});
Avatar
Discard
Author

it works perfectly! Thank you so much!

Related Posts Replies Views Activity
1
Jul 19
2897
1
May 21
1768
1
Jul 20
3823
1
Sep 22
9235
0
Aug 19
1890