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

I want to show float_time widget in hh:mm:ss format. Today i have found V8 module which makes such changes, but what module dont work in V9. as i see where are some differences between v8 and v9 in the original formats.js file. 

odoo v8

(function() {
.....
instance.web.format_value = function (value, descriptor, value_if_empty) {
....

odoo v9

odoo.define('web.formats', function (require) {
"use strict";
......
function format_value (value, descriptor, value_if_empty) {


so i think because of these differences old module inheritance dont work properly, maybe someone knows how to correctly inherit js files in odoo V9 ?

in old module it was made like this

openerp.module_name = function(instance){

original_format_value = instance.web.format_value;
instance.web.format_value = function (value, descriptor, value_if_empty) {
switch (descriptor.widget || descriptor.type || (descriptor.field && descriptor.field.type)) {
........


thanks in advace!

Avatar
Discard
Best Answer

Hi @silvinas

You could do it like using the compatibility layer like this:

openerp.module_name = function(instance){

original_format_value = instance.web.formats.format_value;
instance.web.formats.format_value = function (value, descriptor, value_if_empty) {
switch (descriptor.widget || descriptor.type || (descriptor.field && descriptor.field.type)) {

or using the new v9 js api:

odoo.define('openerp.module_name', function (require) {
"use strict";

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

original_format_value = formats.format_value;

formats.format_value = function (value, descriptor, value_if_empty) {
switch (descriptor.widget || descriptor.type || (descriptor.field && descriptor.field.type)) {
Avatar
Discard
Author

thank you @Axel Mendoza, now i have some error, but this is ok, because its means my scrip is in the game now :) in developer tools i can see that error: Some modules could not be started Failed modules: ["openerp.my_module"] and highlights line: var missing=odoo.__DEBUG__.get_missing_jobs();var failed=odoo.__DEBUG__.get_failed_jobs();var unloaded=_.filter(debug_jobs,function(job){return job.missing;});var log=[(_.isEmpty(failed)?(_.isEmpty(unloaded)?'info':'warning'):'error')+':','Some modules could not be started'];if(missing.length)log.push('\nMissing dependencies: ',missing);if(!_.isEmpty(failed))log.push('\nFailed modules: ',_.pluck(failed,'name'));if(!_.isEmpty(rejected))log.push('\nRejected modules: ',rejected);if(!_.isEmpty(rejected_linked))log.push('\nRejected linked modules:',rejected_linked);if(!_.isEmpty(unloaded))log.push('\nNon loaded modules: ',_.pluck(unloaded,'name'));if(odoo.debug&&!_.isEmpty(debug_jobs))log.push('\nDebug: ',debug_jobs);if(odoo.debug||!_.isEmpty(failed)||!_.isEmpty(unloaded)){console[_.isEmpty(unloaded)?'info':'error'].apply(console,log);}}},process_jobs:function(jobs,services){var job;var require;var time;function process_job(job){var require=make_require(job);try{var def=$.Deferred();$.when(job.factory.call(null,require)).then(function(data){services[job.name]=data;clearTimeout(time);time=_.defer(odoo.process_jobs,jobs,services);def.resolve();},function(e){job.rejected=e||true;jobs.push(job);def.resolve();});jobs.splice(jobs.indexOf(job),1);job_deferred.push(def);}catch(e){job.error=e;}} i am new to JS so i am little bit confused..

Sorry I will be offline some days. If it was helpful then... cojld you vote it?

Author

I find out my problem, it was what one variable was not defined (lack of experience in JS..)

Related Posts Replies Views Activity
2
Jul 17
3598
0
May 16
1930
0
May 24
494
1
Aug 23
10147
5
Sep 20
30115