Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
7 Odpowiedzi
9992 Widoki

To create a product I'm using my own module which also create automatically product name combining specified fields values. I't quiet good idea if you want have always the same form of names or same details in title (product name). Because my company is multinational and people have always problem with naming products so to avoid mistakes or misspelled names I decided to built this module to help them and make it easier/quicker/safer and foolproof. Since then nobody except department manager can add new names to the lists used for name creation. Because i would like to avoid increasing amount of fields i need a little advice and help. Because list of fields depends on product type which is the first field in form (fields.selection()) i would like to change some or at least one field label/string but I'm not sure is it possible without writing special program in JavaScript for example.

So if product type = Computer currently named field Variant need to be changed to Speed.

In php it could be so simple ex:

<?php

if($item_type = 'Computer'){

$field_name = 'Variant';}

if($item_type = 'Monitor'){

$field_name = 'Display Size';}

php> and then field name will be changed regarding item type chosen.

Guys, is it possible to change field name (string or label) depending on value selected in selection field in some easy way ?

Of course i can create a dedicated field but if i can just change name ...


Awatar
Odrzuć

"Another silly question" isn't an appropriate title for a question - please review https://www.odoo.com/forum/help-1/faq and https://www.odoo.com/forum/help-1/question/meta-why-do-some-questions-get-answers-and-others-dont-25620

Autor

Yes you absolutely right.

Najlepsza odpowiedź

I had same situation some time ago. What I did was:

- Create two auxiliary fields, each of one with its own label

- Put both fields in the form view

- Put the main field too in the view, but hidden

- Hide each one depending on the value of your item_type

- Inherit write or on_change method so when the value changes, you can set the main hidden field

Awatar
Odrzuć
Autor

This is actually solution I used to have, multiple fields hide or displayed depending on value in other(parent) field. But it's not what I tried to achieve. I wanted to change "Label" rather than whole field :) Why ? I'm not a fan of millions of fields ;) so I wanted to limit fields to it's minimum. So if I could change only a 'Label' conditionally it would be much much better solution :)

Najlepsza odpowiedź

Hi, you can use a functional field (called compute field in new v8 api) for that.

Awatar
Odrzuć
Autor

Problem is (again) new API (8.0) allow you to do a lot of things but in old API .... not really. I need it for old unfortunately.

@Robert, is an on_change event enough for you? This goes of when something is triggered and you can then change any other field as you'd like. The only requirement is an event happening.

Autor

@Yanthe, you suggest that using on_change i can do it ? I can change string in ? Interesting, can you give me an example how should it look like ?

Powiązane posty Odpowiedzi Widoki Czynność
1
mar 25
6236
1
sty 20
3774
1
mar 15
5331
0
lis 21
2474
6
paź 20
4455