Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
3 Odpovědi
12582 Zobrazení

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
Zrušit
Nejlepší odpověď

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
Zrušit
Autor

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

Nejlepší odpověď

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
Zrušit
Autor

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

Related Posts Odpovědi Zobrazení Aktivita
0
kvě 23
2845
2
dub 24
4912
1
led 22
11253
1
říj 20
5003
0
říj 19
2831