Se rendre au contenu
Menu
Cette question a été signalée
1 Répondre
2968 Vues

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)]}}
Avatar
Ignorer
Meilleure réponse

Hello,

Try to remove @api.model

Avatar
Ignorer
Auteur

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

Auteur

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

Publications associées Réponses Vues Activité
0
janv. 20
3175
1
déc. 19
4172
1
mai 24
3042
3
juin 23
15975
1
mars 22
13409