Odoo Help

2

0
8 Answers
1
Avatar

Ivan Indonesia

--Ivan--

3440
| 6 3 9
Jakarta, Indonesia
--Ivan--
Ivan Indonesia
3/31/15, 8:59 PM

@Sairam.  Unfortunately readonly fields are implemented INPUT tag with disabled attribute turned on (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input) and thus will not be submitted to the server.

Now, if a field is readonly, usually it won't be changed by the user anyway, so the only possibilities, that I can think, of the value dynamically changed will be due to default or on change mechanism.

If it is due to default (specified in the default_get method or _default attribute of ORM).  You can just create/write without the value of that field.  ORM will automatically get the value from the default mechanism.

If it is due to on change mechanism, you can, by inheriting the write and/or create method, obtain the value of the field from the return of the on change method.

1 Comment
Sairam Bandaru India
10/13/15, 5:47 AM

Thanks Ivan. I changed base code in js file to get the readonly values in create or write method

1
Avatar

Cyril Gaspard (GEM) France

--Cyril Gaspard (GEM)--
4364
| 6 6 10
Paris, France
--Cyril Gaspard (GEM)--

Forum contributor since 2008

Rank #1 on first OpenERP forum

OpenERP award "Top Contributor" 2011, for my actions on forum

Odoo forum moderator


Cyril Gaspard (GEM) France
3/31/15, 6:06 PM

bad thing, but use a direct database request ...

or set your field invisible and not readonly and add a field function which change its value depending the value of your invisible field.

1
yellow France
4/2/15, 6:17 PM

Thank you Cyril, works fine.

0
Alf Olsen Norway
7/6/18, 3:29 AM

You can easily access readonly fields on the server throught the context like this:
 

self.env.context


0
Sairam Bandaru India
10/15/15, 3:27 AM

Hi,

Got the solution by changing the code in base files readonly values will get in create ,write methods so the it will store in database

addons/web/static/js/view_form.js:

In view_form.js:

in line: 840:

if (!f.get("readonly")) {

values[f.name] = f.get_value(); }

else { readonly_values[f.name] = f.get_value(); }

values[f.name] = f.get_value();

if (f.get("readonly"))

readonly_values[f.name] = f.get_value();

}

}

 Thanks.

Ask a Question
Writer
Tags
Keep Informed
2 follower(s)
About This Community

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

Register
Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now