Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
2 Risposte
2107 Visualizzazioni

Hello,

I'm using Odoo Studio 16.

I created a new form. In this form, I have customers (many2one relation) and opportunities (many2one relation).

When I select a customer, I would like to show in opportunities only opportunities with this customer as partner.

How can I do it? How can I change the domain dynamically? 

Avatar
Abbandona
Risposta migliore

Hi Federico: This is one of the limitations of the domain builder in Studio. It works with static values only. 

If you are familiar with how inherited views work and XML, you can set the domain on the opportunity field to the following and it should work. I have assumed that the customer field on your custom model is called partner_id.

[("partner_id", "=", partner_id)]
Avatar
Abbandona
Autore

Hello Paresh,

thank you. It's as I solved the matter in Odoo 13. Tried and didn't work.
Retried today because you said me so... And it worked! Really, ok.

Thank you very much!

Risposta migliore

Hi Federico Dumas, 


You need to open Fields from settings > technical > database structure > fields


Search for your custom fields which you added from studio.

As you can see in the above picture that in the highlighted part there are two fields


1) Dependencies: In this you have enter the 'customers (many2one relationship)'

2) Compute: In this you have to add the domain as per your requirement.


In case of more help you can reach all of us.

Hope this will help you.

Thanks & Regards,
Email:  odoo@aktivsoftware.com        

Skype: kalpeshmaheshwari

Avatar
Abbandona
Autore

I'm not so skilled in Python... But I tried.

the first many2one is called "x_studio_contatto" and it's a connection to res.partner
the second many2one is called "x_studio_opportunit" and it's a connetcion to crm.lead

So... Here's the code:
In Fied X_studio_opportunit I set dependencies as "x_studio_contatto"
then in compute, I write: self.x_studio_opportunit.domain="[('partner_id','=', x_studio_contatto)]"

Here's the error I receive:
RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/src/odoo/17.0/odoo/http.py", line 1722, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/home/odoo/src/odoo/17.0/odoo/service/model.py", line 133, in retrying
result = func()
File "/home/odoo/src/odoo/17.0/odoo/http.py", line 1749, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/src/odoo/17.0/odoo/http.py", line 1953, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/src/odoo/17.0/addons/website/models/ir_http.py", line 235, in _dispatch
response = super()._dispatch(endpoint)
File "/home/odoo/src/odoo/17.0/odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/src/odoo/17.0/odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/src/odoo/17.0/addons/web/controllers/dataset.py", line 24, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/17.0/addons/web/controllers/dataset.py", line 20, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/17.0/odoo/api.py", line 468, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/17.0/odoo/api.py", line 453, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/src/odoo/17.0/addons/web/models/models.py", line 1076, in onchange
snapshot1 = RecordSnapshot(record, fields_spec)
File "/home/odoo/src/odoo/17.0/addons/web/models/models.py", line 1163, in __init__
self.fetch(name)
File "/home/odoo/src/odoo/17.0/addons/web/models/models.py", line 1178, in fetch
self[field_name] = self.record[field_name]
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 6590, in __getitem__
return self._fields[key].__get__(self, self.env.registry[self._name])
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 2893, in __get__
return super().__get__(records, owner)
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 1152, in __get__
self.recompute(record)
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 1367, in recompute
apply_except_missing(self.compute_value, recs)
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 1340, in apply_except_missing
func(records)
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 1389, in compute_value
records._compute_field_value(self)
File "/home/odoo/src/odoo/17.0/addons/base_automation/models/base_automation.py", line 750, in _compute_field_value
_compute_field_value.origin(self, field)
File "/home/odoo/src/odoo/17.0/addons/mail/models/mail_thread.py", line 424, in _compute_field_value
return super()._compute_field_value(field)
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 4867, in _compute_field_value
fields.determine(field.compute, self)
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 105, in determine
return needle(records, *args)
File "/home/odoo/src/odoo/17.0/odoo/addons/base/models/ir_model.py", line 38, in <lambda>
func = lambda self: safe_eval(text, SAFE_EVAL_BASE, {'self': self}, mode="exec")
File "/home/odoo/src/odoo/17.0/odoo/tools/safe_eval.py", line 363, in safe_eval
c = test_expr(expr, _SAFE_OPCODES, mode=mode, filename=filename)
File "/home/odoo/src/odoo/17.0/odoo/tools/safe_eval.py", line 221, in test_expr
assert_valid_codeobj(allowed_codes, code_obj, expr)
File "/home/odoo/src/odoo/17.0/odoo/tools/safe_eval.py", line 194, in assert_valid_codeobj
raise ValueError("forbidden opcode(s) in %r: %s" % (expr, ', '.join(opname[x] for x in (code_codes - allowed_codes))))
ValueError: forbidden opcode(s) in 'self.x_studio_opportunit.domain="[(\'partner_id\',\'=\', x_studio_contatto)]"': STORE_ATTR

The above server error caused the following client error:
OwlError: The following error occurred in onWillStart: "Odoo Server Error"
at wrapError (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:1044:77)
at onWillStart (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:1050:117)
at useModel (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:5848:104)
at FormController.setup (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:8618:99)
at FormController.setup (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:12831:446)
at FormController.setup (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:21132:851)
at FormController.setup (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:25147:240)
at new ComponentNode (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:1002:202)
at https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:1540:6
at View.slot1 (eval at compile (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:1500:374), <anonymous>:15:36)

Caused by: RPC_ERROR: Odoo Server Error
at makeErrorFromResponse (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:2872:163)
at XMLHttpRequest.<anonymous> (https://redglove.odoo.com/web/assets/b3551fb/web.assets_web.min.js:2876:13)

Post correlati Risposte Visualizzazioni Attività
1
ott 24
1751
2
ott 24
3092
1
lug 24
2342
0
giu 24
1205
2
feb 24
2764