Перейти к содержимому
Меню
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Этот вопрос был отмечен
3 Ответы
12569 Представления

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


Аватар
Отменить
Лучший ответ

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', []))]"/>


Аватар
Отменить
Автор

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

Лучший ответ

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
Аватар
Отменить
Автор

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

Related Posts Ответы Просмотры Активность
0
мая 23
2818
2
апр. 24
4907
1
янв. 22
11249
1
окт. 20
5000
0
окт. 19
2818