[FIX]hr_negative_leave:fix leave types available when creating a leave request #17

Merged
laetitiadacosta merged 1 commits from 16-fix-hr-negative-leaves into 16.0 2026-02-10 15:30:07 +00:00
https://elabore.coop/web#id=760&cids=1&menu_id=916&action=1476&model=helpdesk.ticket&view_type=form
laetitiadacosta added 1 commit 2026-02-10 13:42:12 +00:00
[FIX]hr_negative_leave:fix leave types available when creating a leave request
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m33s
9cb6049121
mondot reviewed 2026-02-10 13:55:36 +00:00
@@ -7,3 +7,3 @@
<xpath expr="//field[@name='holiday_status_id']" position="attributes">
<attribute name="domain">[
'|',
'|', '|', '|',
Owner

Je trouve les effets de bord de ce domaine assez compliqué à identifier, du coup j'ai demandé à notre ami Claude.

Est-ce que tu es d'accord avec sa suggestion ? (moi je suis plutôt d'accord)

 ● Le domaine actuel a un problème de logique. Analysons-le :                                                                                                  
   
  '|', '|', '|',                                                                                                                                              
  ('requires_allocation', '=', 'no'),         # A
  ('has_valid_allocation', '=', True),        # B                                                                                                             
  ('allows_negative', '=', True),             # C
  '&',
      ('allows_negative', '=', False),        # D
      ('virtual_remaining_leaves', '>', 0)    # E

  Ce qui donne : A OR B OR C OR (D AND E)

  Problèmes identifiés :

  1. has_valid_allocation = True seul est trop permissif : Si un type de congé a une allocation valide mais virtual_remaining_leaves <= 0 et allows_negative =
   False, il sera quand même affiché. L'utilisateur pourrait alors créer une demande qui sera refusée ensuite.
  2. allows_negative = True sans vérifier l'allocation : Un type de congé pourrait s'afficher même sans allocation valide, ce qui n'a pas de sens pour un
  congé négatif.

  Domaine corrigé suggéré :

  <attribute name="domain">[
      '|',
      ('requires_allocation', '=', 'no'),
      '&amp;',
          ('has_valid_allocation', '=', True),
          '|',
              ('allows_negative', '=', True),
              ('virtual_remaining_leaves', '&gt;', 0)
  ]</attribute>

  Ce qui se lit :
  - Soit le type ne nécessite pas d'allocation
  - Soit il a une allocation valide ET (soit les négatifs sont autorisés, soit il reste des jours)
Je trouve les effets de bord de ce domaine assez compliqué à identifier, du coup j'ai demandé à notre ami Claude. Est-ce que tu es d'accord avec sa suggestion ? (moi je suis plutôt d'accord) ``` ● Le domaine actuel a un problème de logique. Analysons-le : '|', '|', '|', ('requires_allocation', '=', 'no'), # A ('has_valid_allocation', '=', True), # B ('allows_negative', '=', True), # C '&', ('allows_negative', '=', False), # D ('virtual_remaining_leaves', '>', 0) # E Ce qui donne : A OR B OR C OR (D AND E) Problèmes identifiés : 1. has_valid_allocation = True seul est trop permissif : Si un type de congé a une allocation valide mais virtual_remaining_leaves <= 0 et allows_negative = False, il sera quand même affiché. L'utilisateur pourrait alors créer une demande qui sera refusée ensuite. 2. allows_negative = True sans vérifier l'allocation : Un type de congé pourrait s'afficher même sans allocation valide, ce qui n'a pas de sens pour un congé négatif. Domaine corrigé suggéré : <attribute name="domain">[ '|', ('requires_allocation', '=', 'no'), '&amp;', ('has_valid_allocation', '=', True), '|', ('allows_negative', '=', True), ('virtual_remaining_leaves', '&gt;', 0) ]</attribute> Ce qui se lit : - Soit le type ne nécessite pas d'allocation - Soit il a une allocation valide ET (soit les négatifs sont autorisés, soit il reste des jours) ```
Author
Owner

hello,

pour allows_negative, c'est voulu, on veut pouvoir sélectionner le type de congé même en cas de solde négatif

pour has_valid_allocation, c'est en effet trop permissif, j'ai repris le domain initial qui est :

if requires_allocation == 'no':
ok
elif has_valid_allocation and virtual_remaining_leaves > 0 and max_leaves > 0:
ok
else:
refuse

que j'ai changé pour

if requires_allocation == 'no': ok
elif has_valid_allocation and virtual_remaining_leaves > 0 and max_leaves > 0: ok
elif allow_negative == True: ok
else: refuse

hello, pour allows_negative, c'est voulu, on veut pouvoir sélectionner le type de congé même en cas de solde négatif pour has_valid_allocation, c'est en effet trop permissif, j'ai repris le domain initial qui est : if requires_allocation == 'no': ok elif has_valid_allocation and virtual_remaining_leaves > 0 and max_leaves > 0: ok else: refuse que j'ai changé pour if requires_allocation == 'no': ok elif has_valid_allocation and virtual_remaining_leaves > 0 and max_leaves > 0: ok elif allow_negative == True: ok else: refuse
Owner

Top, et merci pour le pseudo code en commentaire 😍

Top, et merci pour le pseudo code en commentaire 😍
mondot marked this conversation as resolved
laetitiadacosta added 2 commits 2026-02-10 14:11:28 +00:00
[FIX]hr_negative_leave:fix leave types available when creating a leave request
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m33s
9cb6049121
[FIX]hr_negative_leave:fix leave types available when creating a leave request
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m33s
821b17fbd5
mondot approved these changes 2026-02-10 14:21:45 +00:00
laetitiadacosta merged commit 821b17fbd5 into 16.0 2026-02-10 15:30:07 +00:00
laetitiadacosta deleted branch 16-fix-hr-negative-leaves 2026-02-10 15:30:08 +00:00
Sign in to join this conversation.
No description provided.