Skip to Content
Menu
This question has been flagged
3 Replies
11041 Views

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
Discard
Best Answer

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
Discard
Author

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

Best Answer

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
Discard
Author

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

Related Posts Replies Views Activity
0
May 23
1784
2
Apr 24
3867
1
Jan 22
9930
1
Oct 20
4013
0
Oct 19
1938