Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

make widget="float_time" in HH:mm:ss format in V9

By
zilvinas
on 12/4/15, 8:43 PM 985 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!

1

Axel Mendoza

--Axel Mendoza--
10228
| 7 7 8
Camaguey, Cuba
--Axel Mendoza--

DevOps - Full stack - Software Architect - Developer - Technology Integrator

I could help you to develop anything and solve complex problems based on technologies, integrations and tricky stuffs mostly in Python with OpenERP/Odoo, Zato, Django and many others frameworks programming languages and technologies.

I offers consulting services to anyone with an unanswered questions or needs for customizations. Think about it, maybe it's better to have an expert to solve your issues and projects than having a full time employee trying to understand what to do an how

Reach me at aekroft@gmail.com

Axel Mendoza
On 12/4/15, 10:04 PM

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)) {

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..

zilvinas
on 12/5/15, 11:57 AM

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

Axel Mendoza
on 12/5/15, 1:45 PM

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

zilvinas
on 12/6/15, 5:32 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

2 follower(s)

Stats

Asked: 12/4/15, 8:43 PM
Seen: 985 times
Last updated: 12/6/15, 5:30 AM