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

i have this function to make 'holiday_status_id' field dynamic domain
it works fine but only with CREATE button
how can i make it available all time


@api.model
@api.onchange('employee_id', 'type', 'state','holiday_status_id')
def change_leave_type(self):
for holiday_type in self:
if holiday_type.type == 'add':
if holiday_type.state in ['draft', 'confirm', 'validate', 'validate1']:
if holiday_type.type == 'add' and holiday_type.env.uid == holiday_type.user_id.id and not holiday_type.env.user.has_group(
'hr_holidays.group_hr_holidays_user'):
allocate_type = holiday_type.env['hr.holidays.status'].search(
[('name', '=', 'Compensatory Days')]).id
return {'domain': {'holiday_status_id': [('id', '=', allocate_type)]}}
elif holiday_type.type == 'add' and holiday_type.env.user.has_group(
'hr_holidays.group_hr_holidays_user') and not holiday_type.env.user.has_group(
'hr_holidays.group_hr_holidays_manager'):
ids = []
allocation_types = holiday_type.env['hr.holidays.status'].search([])
for allocate in allocation_types:
if allocate.name != 'Unpaid':
ids.append(allocate.id)
return {'domain': {'holiday_status_id': [('id', '=', ids)]}}
Аватар
Отменить
Лучший ответ

Hello,

Try to remove @api.model

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

OK Sam ... i removed it ... but still work only with 'CREATE' Button if i click on edit it doesn't work

thanks

Why don't you just add the domain in XML? Something like:

<field holiday_status_id domain="[('name', '!=', 'Unpaid')]"/>

Автор

it doesn't work because it will affect two actions not only one 'open_allocation_holidays' action for 'Allocation' and 'ask_new_holidays action' action for 'Leave Request'

i need to add this function to only allocation action

thanks sam

Related Posts Ответы Просмотры Активность
0
янв. 20
3167
1
дек. 19
4158
1
мая 24
3022
3
июн. 23
15931
1
мар. 22
13379