hr.leave : champs, relations et API
Le modèle hr.leave (« Congés ») est un modèle persistant déclaré par le module Congés, puis enrichi par 3 autres modules. Il expose 96 champs, dont 65 déclarés directement sur le modèle ; 8 champs d'autres modèles pointent vers lui. Retrouvez ci-dessous chaque champ avec son nom technique, son type, son libellé français et ses relations, puis un exemple d'appel à l'API JSON-2 d'Odoo 20.
Fiche d'identité
- Nom technique
hr.leave- Libellé
- Congés
- Type
- Persistant (models.Model)
- Table SQL
hr_leave- Module d'origine
- Congés (
hr_holidays) - Étendu par
- hr_holidays_attendance, l10n_fr_hr_holidays, project_timesheet_holidays
- Tri par défaut (_order)
date_from desc
Champs du modèle
65 champs propres, 25 hérités des mixins et 6 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
96 champs affichés sur 96
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| active_employee | Employé actif | boolean | related : |
| allocation_display_warning | Allocation Display Warning | char | calculé |
| allowed_request_durations | Allowed Request Durations | json | calculé |
| allowed_work_entry_type_ids | Type d’entrée de travail autorisé | many2many | calculé |
| attachment_ids | Pièces jointes | one2many | inverse : |
| attachment_is_visible | La pièce jointe est visible | boolean | calculé |
| can_approve | Peut approuver | boolean | calculé |
| can_back_to_approve | Can Back To Approve | boolean | calculé |
| can_cancel | Can Cancel | boolean | calculé |
| can_refuse | Peut refuser | boolean | calculé |
| can_reschedule | Can Reschedule | boolean | calculé |
| can_validate | Peut valider | boolean | calculé |
| color | Couleur | integer | related : |
| company_id | Société | many2one | calculé, stocké |
| count_as | Compter comme | selection | related : |
| dashboard_warning_message | Message d’alerte du tableau de bord | char | calculé |
| date_from | Date de début | datetime | calculé, stocké |
| date_to | Date de fin | datetime | calculé, stocké |
| department_id | Département | many2one | calculé, stocké |
| duration_display | Demandé | char | calculé |
| employee_company_id | Société de l'employé | many2one | related : |
| employee_id | Employé | many2one | requis |
| first_approver_id | Première validation Cet espace est automatiquement renseigné par l'utilisateur qui valide le congé | many2one | lecture seule |
| has_mandatory_day | A un jour obligatoire | boolean | calculé |
| is_hatched | Hachuré | boolean | calculé |
| is_striked | Grève | boolean | calculé |
| is_time_rule_trimmed | Trimmed by Time Rule Set when a time rule trims this leave's end to sub-day precision. Prevents _compute_date_from_to from snapping the end back to the schedule boundary. | boolean | |
| l10n_fr_date_to_changed | L10N Fr Date To Changed | boolean | ajouté par France - Time Off ( |
| last_several_days | Toute la journée | boolean | calculé |
| max_leaves | Congés max. | float | calculé |
| meeting_id | Réunion | many2one | |
| name | Description | char | calculé |
| notes | Motifs | text | |
| number_of_days | Durée (jours) Nombre de jours de la demande de congé. Utilisé dans le calcul. | float | calculé, stocké |
| number_of_hours | Durée (Heures) Nombre d'heures de la demande de congé. Utilisé dans le calcul. | float | calculé, stocké |
| output_leave_ids | Output Leave | one2many→ hr.leave | inverse : |
| private_name | Description du congé | char | |
| request_date_from | Date de début de la demande | date | |
| request_date_from_period | Date de début de période | selection | Valeurs : |
| request_date_hour_from | Request Date Hour From | datetime | calculé |
| request_date_hour_to | Request Date Hour To | datetime | calculé |
| request_date_to | Date de fin de la demande | date | |
| request_date_to_period | Date de fin de période | selection | Valeurs : |
| request_duration | Durée | selection | Valeurs : |
| request_hour_from | Heure de | float | |
| request_hour_to | Heure à | float | |
| resource_calendar_id | Calendrier de la ressource | many2one | calculé, stocké |
| second_approver_id | Deuxième validation Cette zone est automatiquement remplie par l’utilisateur qui valide le congé au second niveau (si le type de temps nécessite une seconde validation) | many2one | lecture seule |
| source_leave_id | Source Leave | many2one→ hr.leave | |
| state | Statut | selection | Valeurs : |
| supported_attachment_ids | Joindre un fichier | many2many | calculé |
| supported_attachment_ids_count | Nombre d'ID de justificatifs pris en charge | integer | calculé |
| time_rule_id | Time Rule | many2one | |
| time_rule_time_range | Time Rule Time Range HH:MM → HH:MM label shown on rule-split and trimmed leaves. | char | calculé |
| timesheet_ids | Lignes analytiques | one2many | inverse : ajouté par Timesheet when on Time Off ( |
| tz | Fuseau horaire | selection | calculé Valeurs calculées dynamiquement |
| tz_mismatch | Erreur de fuseau horaire | boolean | calculé |
| user_id | Utilisateur | many2one | lecture seule related : |
| validation_type | Type de validation | selection | related : |
| virtual_remaining_leaves | Congés disponibles | float | calculé |
| work_entry_type_id | Type de temps | many2one | requis |
| work_entry_type_increases_duration | Le type d’entrée de travail augmente la durée | char | calculé |
| work_entry_type_request_unit | Work Entry Type Request Unit | selection | lecture seule related : |
| work_entry_type_requires_allocation | Work Entry Type Requires Allocation | boolean | related : |
| work_entry_type_support_document | Work Entry Type Support Document | boolean | related : |
| activity_calendar_event_id | Activité suivante de l'événement du calendrier | many2one | calculé hérité de mail.activity.mixin |
| activity_date_deadline | Date limite de l'activité à venir | date | lecture seulecalculé hérité de mail.activity.mixin |
| activity_exception_decoration | Indicateur d’exception d’activité Type d'activité d'exception enregistrée. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_exception_icon | Icône Icône pour indiquer une activité d'exception. | char | calculé hérité de mail.activity.mixin |
| activity_ids | Activités | one2many | inverse : hérité de mail.activity.mixin |
| activity_plans_ids | Plans d'activité | many2many | calculé hérité de mail.activity.mixin |
| activity_state | Statut de l'activité Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_summary | Résumé de l'activité suivante | char | related : hérité de mail.activity.mixin |
| activity_type_icon | Icône de type d'activité | char | related : hérité de mail.activity.mixin |
| activity_type_id | Type d'activités à venir | many2one | related : hérité de mail.activity.mixin |
| activity_user_id | Utilisateur responsable | many2one | lecture seulecalculé hérité de mail.activity.mixin |
| has_message | A un message | boolean | calculé hérité de mail.thread |
| message_attachment_count | Nombre de pièces jointes | integer | calculé hérité de mail.thread |
| message_follower_ids | Abonnés | one2many | inverse : hérité de mail.thread |
| message_has_error | Erreur d'envoi du message Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_has_error_counter | Nombre d'erreurs Nombre de messages avec des erreurs d'envoi | integer | calculé hérité de mail.thread |
| message_has_sms_error | Erreur d'envoi SMS Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_ids | Messages | one2many | inverse : hérité de mail.thread |
| message_is_follower | Est un abonné | boolean | calculé hérité de mail.thread |
| message_main_attachment_id | Pièce jointe principale | many2one | hérité de mail.thread.main.attachment |
| message_needaction | Nécessite une action Si coché, de nouveaux messages demandent votre attention. | boolean | calculé hérité de mail.thread |
| message_needaction_counter | Nombre d'actions Nombre de messages nécessitant une action | integer | calculé hérité de mail.thread |
| message_partner_ids | Abonnés (Partenaires) | many2many | calculé hérité de mail.thread |
| my_activity_date_deadline | Échéance de mon activité | date | lecture seulecalculé hérité de mail.activity.mixin |
| rating_ids | Évaluations | one2many | inverse : hérité de mail.thread |
| create_date | Créé le | datetime | lecture seuleautomatique |
| create_uid | Créé par | many2one | lecture seuleautomatique |
| display_name | Nom affiché | char | lecture seulecalculéautomatique |
| id | ID | integer | lecture seuleautomatique |
| write_date | Dernière mise à jour le | datetime | lecture seuleautomatique |
| write_uid | Dernière mise à jour par | many2one | lecture seuleautomatique |
Relations
Modèles liés depuis ce modèle
- account.analytic.line : timesheet_ids
- calendar.event : meeting_id
- hr.department : department_id
- hr.employee : employee_id, first_approver_id, second_approver_id
- hr.leave : output_leave_ids, source_leave_id
- hr.time.rule : time_rule_id
- hr.work.entry.type : allowed_work_entry_type_ids, work_entry_type_id
- ir.attachment : attachment_ids, supported_attachment_ids
- res.company : company_id, employee_company_id
- res.users : user_id
- resource.calendar : resource_calendar_id
Champs d'autres modèles qui pointent ici
- account.analytic.line : holiday_id
- hr.holidays.cancel.leave : leave_id
- hr.leave : source_leave_id
- hr.leave.attendance.report : leave_ids
- hr.leave.employee.report : leave_id
- hr.leave.report : leave_id
- hr.leave.report.calendar : leave_id
- resource.calendar.leaves : holiday_id
Lire ce modèle par l'API
Exemple d'appel à l'API JSON-2 d'Odoo 20 : lecture des cinq premiers enregistrements avec des champs réels du modèle. Remplacez l'instance, la base et la clé API par les vôtres.
curl -X POST "https://votre-instance.odoo.com/json/2/hr.leave/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: votre-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","employee_id","work_entry_type_id","state","company_id"],"limit":5}'import requests
BASE_URL = "https://votre-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "votre-base"}
res = requests.post(
f"{BASE_URL}/hr.leave/search_read",
headers=headers,
json={"domain": [], "fields": ["name","employee_id","work_entry_type_id","state","company_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- L'accès à l'API externe est réservé à la formule Custom d'Odoo.
- XML-RPC et JSON-RPC seront retirés dans Odoo 22 (automne 2028) : préférez JSON-2.
- Les droits d'accès et règles d'enregistrement de l'utilisateur de la clé s'appliquent.
Citer cet outil
Vous rédigez un tutoriel, une documentation interne ou une réponse sur un forum ? Copiez ce lien pour renvoyer vos lecteurs vers la fiche à jour.
<a href="https://aidoo.ai/fr/outils/explorateur-modeles-odoo/hr-leave">hr.leave (Odoo 20.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 20 : ORM API
- Documentation Odoo 20 : API externe JSON-2
Données vérifiées le 25 septembre 2026 · Odoo 20.0 Community
Vous avez un projet Odoo ou souhaitez exploiter votre ERP avec l'IA ? Échangeons
Intégration, développement de modules, connexion de Claude ou ChatGPT à vos données : décrivez-nous votre contexte, nous vous répondons sous 24 heures ouvrées.