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

I've got a wizard that I call whit method that executes on button click. In the wizard I have a Many2one field on project.task that I want to filter. So in the method that calls the wizard, I get the action for the wizard popup, search the task ids that I want to show and then pass them into the actions domain. But when the wizard shows the field is not filtered.

Wizard:

parent_id = fields.Many2one('project.task')

Task:

def add_as_subtask_wizard(self):
action = self.env.ref('tabla_bi_subtask_extension.action_add_as_subtask_wizard').read()[0]
if action:
            tasks_ids = self.search([ 
('id', '!=', self.id),
('project_id', '=', self.project_id.id),
('parent_id', '=', False),
]).ids
if len(tasks_ids) > 0:
action['domain'] = {'parent_id': [('id', 'in', tasks_ids)]}
return action


Avatar
Abbandona
Risposta migliore

Try this:

def add_as_subtask_wizard(self):
action = self.env.ref('tabla_bi_subtask_extension.action_add_as_subtask_wizard').read()[0]
if action:
            tasks_ids = self.search([ 
('id', '!=', self.id),
('project_id', '=', self.project_id.id),
('parent_id', '=', False),
]).ids
if len(tasks_ids) > 0:
action['context'] = {'task_ids': tasks_ids}
return action
And in your xml, set the domain of your field:
<field name="parent_id" domain="[('id', 'in', context.get('task_ids', []))]"/>


Avatar
Abbandona
Autore

Sam, thank you! Damn, I was to focused to do this with action['domain'].

Risposta migliore

hope this works 



def add_as_subtask_wizard(self):
action = self.env.ref('tabla_bi_subtask_extension.action_add_as_subtask_wizard').read()[0]
if action:
tasks_ids = self.search([
('id', '!=', self.id),
('project_id', '=', self.project_id.id),
('parent_id', '=', False),
]).ids
if len(tasks_ids) > 0:
action['domain'] = [('parent_id', 'in',[tasks_ids])] #use appropriate field 

return action
Avatar
Abbandona
Autore

It's a relation field so this cannot work. So the appropriate field is 'id'.

Post correlati Risposte Visualizzazioni Attività
0
mag 23
2845
2
apr 24
4912
1
gen 22
11253
1
ott 20
5003
0
ott 19
2831