project.task : champs, relations et API
Le modèle project.task (« Tâche ») est un modèle persistant déclaré par le module Projet, puis enrichi par 8 autres modules. Il expose 144 champs, dont 102 déclarés directement sur le modèle ; 18 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 19.
Fiche d'identité
- Nom technique
project.task- Libellé
- Tâche
- Type
- Persistant (models.Model)
- Table SQL
project_task- Module d'origine
- Projet (
project) - Étendu par
- hr_timesheet, project_hr_skills, sale_project, project_sms, project_timesheet_holidays, project_todo, sale_timesheet, website_project
- Tri par défaut (_order)
priority desc, sequence, date_deadline asc, id desc
Champs du modèle
102 champs propres, 39 hérités des mixins et 3 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
144 champs affichés sur 144
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| active | Actif | boolean | |
| allocated_hours | Temps alloué | float | |
| allow_billable | Allow Billable | boolean | related : ajouté par Ventes - Projet ( |
| allow_milestones | Allow Milestones | boolean | related : |
| allow_recurring_tasks | Allow Recurring Tasks | boolean | related : |
| allow_task_dependencies | Allow Task Dependencies | boolean | related : |
| allow_timesheets | Allow timesheets | boolean | lecture seulecalculé ajouté par Journaux des tâches ( |
| analytic_account_active | Active Analytic Account | boolean | related : ajouté par Journaux des tâches ( |
| attachment_ids | Pièces jointes Pièces jointes qui ne proviennent pas d'un message | one2many | calculé |
| child_ids | Sous-tâches | one2many | inverse : |
| closed_depend_on_count | Fermeture en fonction des tâches | integer | calculé |
| closed_subtask_count | Closed Sub-tasks Count | integer | calculé |
| color | Couleur | integer | |
| company_id | Société | many2one | calculé, stocké |
| create_date | Créé le | datetime | lecture seule |
| current_user_same_company_partner | Current User Same Company Partner | boolean | calculé |
| date_assign | Date d'attribution Date à laquelle cette tâche a été dernièrement attribuée (ou retirée). Vous pouvez ainsi obtenir des statistiques sur le temps qu'il faut normalement pour attribuer des tâches. | datetime | lecture seule |
| date_deadline | Date limite | datetime | |
| date_end | Date de fin | datetime | |
| date_last_stage_update | Dernière mise à jour de l'étape Date on which the state of your task has last been modified. Based on this information you can identify tasks that are stalling and get statistics on the time it usually takes to move tasks from one stage/state to another. | datetime | lecture seule |
| depend_on_count | En fonction des tâches | integer | calculé |
| depend_on_ids | Bloqué par | many2many | |
| dependent_ids | Bloquer | many2many | |
| dependent_tasks_count | Tâches dépendantes | integer | calculé |
| description | Description | html | |
| display_follow_button | Display Follow Button | boolean | calculé |
| display_in_project | Display In Project | boolean | calculé, stocké |
| display_name | Nom d'affichage Use these keywords in the title to set new tasks: 30h Allocate 30 hours to the task #tags Set tags on the task @user Assign the task to a user ! Set the task a medium priority !! Set the task a high priority !!! Set the task a urgent priority Make sure to use the right format and order e.g. Improve the configuration screen 5h #feature #v16 @Mitchell ! | char | |
| display_parent_task_button | Display Parent Task Button | boolean | calculé |
| display_sale_order_button | Afficher la commande client | boolean | calculé ajouté par Ventes - Projet ( |
| displayed_image_id | Image de couverture | many2one | |
| effective_hours | Temps passé | float | calculé, stocké ajouté par Journaux des tâches ( |
| email_cc | Email Cc Adresses e-mail qui étaient en CC ou les e-mails entrants de cette tâche et qui ne sont actuellement pas associées à un client existant. | char | |
| email_from | E-mail de | char | |
| encode_uom_in_days | Encode Uom In Days | boolean | calculé ajouté par Journaux des tâches ( |
| has_late_and_unreached_milestone | Has Late And Unreached Milestone | boolean | calculé |
| has_multi_sol | A de multiples lignes de vente | boolean | calculé ajouté par Feuille de temps des ventes ( |
| has_project_template | Has Project Template | boolean | related : |
| has_template_ancestor | A un modèle ancêtre | boolean | calculé, stocké |
| is_closed | Terminé | boolean | calculé |
| is_project_map_empty | Carte du projet vide ? | boolean | calculé ajouté par Feuille de temps des ventes ( |
| is_template | Est un modèle | boolean | |
| is_timeoff_task | Is Time off Task | boolean | calculé ajouté par Feuille de temps pendant les congés ( |
| last_sol_of_customer | Dernières lignes de vente du client | many2one | calculé ajouté par Feuille de temps des ventes ( |
| leave_types_count | Nombre de types de congés | integer | calculé ajouté par Feuille de temps pendant les congés ( |
| link_preview_name | Link Preview Name | char | calculé |
| milestone_id | Jalon Livrez vos services automatiquement lorsqu'un jalon est atteint en le liant à un article de la commande. | many2one | calculé, stocké |
| name | Titre | char | requis |
| overtime | Heures supplémentaires | float | calculé, stocké ajouté par Journaux des tâches ( |
| parent_id | Tâche parente | many2one | |
| partner_company_name | Nom de la société | char | related : ajouté par Soumission de tâches en ligne ( |
| partner_id | Client | many2one | calculé, stocké |
| partner_name | Nom du client | char | related : ajouté par Soumission de tâches en ligne ( |
| partner_phone | Numéro de contact | char | calculé, stocké |
| personal_stage_id | Statut de l'étape personnelle L'étape personnelle de l'utilisateur actuel. | many2one | calculé |
| personal_stage_type_id | Étape personnelle L'étape personnelle de tâche de l'utilisateur actuel. | many2one | related : |
| personal_stage_type_ids | Personal Stages | many2many | |
| portal_user_names | Portal User Names | char | calculé |
| pricing_type | Pricing Type | selection | related : ajouté par Feuille de temps des ventes ( |
| priority | Priorité | selection | Valeurs : |
| progress | En cours | float | calculé, stocké ajouté par Journaux des tâches ( |
| project_id | Projet | many2one | calculé, stocké |
| project_privacy_visibility | Visibilité du projet | selection | related : |
| project_sale_order_id | Bon de commande du projet | many2one | related : ajouté par Ventes - Projet ( |
| rating_active | Statut d’évaluation de l’étape | boolean | related : |
| recurrence_id | Récurrence | many2one | |
| recurring_count | Tâches dans la récurrence | integer | calculé |
| recurring_task | Récurrent | boolean | |
| remaining_hours | Temps restant Nombre d'heures allouées moins le nombre d'heures passées. | float | lecture seulecalculé, stocké ajouté par Journaux des tâches ( |
| remaining_hours_available | Heures restantes disponibles | boolean | related : ajouté par Feuille de temps des ventes ( |
| remaining_hours_percentage | Remaining Hours Percentage | float | calculé ajouté par Journaux des tâches ( |
| remaining_hours_so | Temps restant sur les bons de commande | float | calculé ajouté par Feuille de temps des ventes ( |
| repeat_interval | Répéter tou(te)s les | integer | calculé |
| repeat_type | Jusqu'au | selection | calculé Valeurs : |
| repeat_unit | Répéter jusqu'au | selection | calculé Valeurs : |
| repeat_until | Date de fin | date | calculé |
| role_ids | Rôles de projet Lorsque vous créez un projet à partir d’un modèle, vous pouvez choisir quel employé assume chaque rôle. Ces employés seront ajoutés aux tâches, ainsi que toute personne déjà assignée. | many2many | |
| sale_line_id | Article de la commande client Sales Order Item to which the time spent on this task will be added in order to be invoiced to your customer. By default the sales order item set on the project will be selected. In the absence of one, the last prepaid sales order item that has time remaining will be used. Remove the sales order item in order to make this task non billable. You can also change or remove the sales order item of each timesheet entry individually. | many2one | calculé, stocké ajouté par Ventes - Projet ( |
| sale_order_id | Commande client Commande client à laquelle la tâche est liée. | many2one | calculé, stocké ajouté par Ventes - Projet ( |
| sale_order_state | Sale Order State | selection | related : ajouté par Ventes - Projet ( |
| sequence | Séquence | integer | |
| stage_id | Étape | many2one | calculé, stocké |
| stage_id_color | Stage Color | integer | related : |
| state | Statut | selection | requiscalculé, stocké Valeurs calculées dynamiquement |
| subtask_allocated_hours | Sub-tasks Allocated Time Somme des heures allouées à toutes les sous-tâches (et leurs propres sous-tâches) associées à cette tâche. Est habituellement égale ou inférieure aux heures allouées à cette tâche. | float | calculé |
| subtask_completion_percentage | Subtask Completion Percentage | float | calculé |
| subtask_count | Sub-task Count | integer | calculé |
| subtask_effective_hours | Heures consacrées aux sous-tâches Temps passé sur les sous-tâches (et leurs propres sous-tâches) de cette tâche. | float | calculé, stocké ajouté par Journaux des tâches ( |
| tag_ids | Étiquettes | many2many | |
| task_properties | Propriétés | properties | |
| task_to_invoice | À facturer | boolean | calculé ajouté par Ventes - Projet ( |
| timesheet_ids | Feuilles de temps | one2many | inverse : ajouté par Journaux des tâches ( |
| timesheet_product_id | Produit de feuille de temps | many2one | related : ajouté par Feuille de temps des ventes ( |
| total_hours_spent | Total du temps passé Temps passé sur cette tâche et ses sous-tâches (et leurs propres sous-tâches). | float | calculé, stocké ajouté par Journaux des tâches ( |
| user_ids | Assignés | many2many | |
| user_skill_ids | User Skill | one2many | related : ajouté par Projet - Compétences ( |
| website_message_ids | Website Message | one2many | |
| working_days_close | Jours de travail pour clôturer | float | calculé, stocké |
| working_days_open | Jours de travail pour attribuer | float | calculé, stocké |
| working_hours_close | Heures de travail pour clôturer | float | calculé, stocké |
| working_hours_open | Heures de travail pour assigner | float | calculé, stocké |
| write_date | Mis à jour le | datetime | lecture seule |
| access_token | Jeton de sécurité | char | hérité de portal.mixin |
| access_url | URl d'accès au portail URl du portail client | char | calculé hérité de portal.mixin |
| access_warning | Avertissement d'accès | text | calculé hérité de portal.mixin |
| 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_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 |
| duration_tracking | Durée du statut JSON qui associe les identifiants d'un champ many2one aux secondes passées | json | calculé hérité de mail.tracking.duration.mixin |
| has_message | A un message | boolean | calculé hérité de mail.thread |
| html_field_history | Données historiques | json | lecture seule hérité de html.field.history.mixin |
| html_field_history_metadata | Métadonnées historiques | json | calculé hérité de html.field.history.mixin |
| is_rotting | Inactivité | boolean | calculé hérité de mail.tracking.duration.mixin |
| 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_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_avg | Évaluation moyenne | float | calculé hérité de rating.mixin |
| rating_avg_text | Texte de l'évaluation moyenne | selection | calculé Valeurs : hérité de rating.mixin |
| rating_count | Nombre d'évaluations | integer | calculé hérité de rating.mixin |
| rating_ids | Évaluations | one2many | inverse : hérité de mail.thread |
| rating_last_feedback | Évaluation des derniers feedbacks | text | related : hérité de rating.mixin |
| rating_last_image | Évaluation de la dernière image | binary | related : hérité de rating.mixin |
| rating_last_text | Texte de l'évaluation | selection | related : hérité de rating.mixin |
| rating_last_value | Évaluation dernière valeur | float | calculé, stocké hérité de rating.mixin |
| rating_percentage_satisfaction | Évaluation de la satisfaction | float | calculé hérité de rating.mixin |
| rotting_days | Jours d’inactivité Nombre de jours depuis la dernière mise à jour de cette ressource | integer | calculé hérité de mail.tracking.duration.mixin |
| create_uid | Créé par | many2one | lecture seuleautomatique |
| id | ID | integer | 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
- hr.employee.skill : user_skill_ids
- ir.attachment : attachment_ids, displayed_image_id
- mail.message : website_message_ids
- product.product : timesheet_product_id
- project.milestone : milestone_id
- project.project : project_id
- project.role : role_ids
- project.tags : tag_ids
- project.task : child_ids, depend_on_ids, dependent_ids, parent_id
- project.task.recurrence : recurrence_id
- project.task.stage.personal : personal_stage_id
- project.task.type : personal_stage_type_id, personal_stage_type_ids, stage_id
- res.company : company_id
- res.partner : partner_id
- res.users : user_ids
- sale.order : project_sale_order_id, sale_order_id
- sale.order.line : last_sol_of_customer, sale_line_id
Champs d'autres modèles qui pointent ici
- account.analytic.line : parent_task_id, task_id
- product.template : task_template_id
- project.tags : task_ids
- project.task : depend_on_ids, dependent_ids, parent_id
- project.task.stage.personal : task_id
- report.project.task.user : dependent_ids, parent_id, task_id
- res.company : leave_timesheet_task_id
- res.config.settings : leave_timesheet_task_id
- sale.order : tasks_ids
- sale.order.line : task_id
- task.share.wizard : task_id
- timesheets.analysis.report : parent_task_id, task_id
Lire ce modèle par l'API
Exemple d'appel à l'API JSON-2 d'Odoo 19 : 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/project.task/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: votre-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","state","company_id","displayed_image_id","milestone_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}/project.task/search_read",
headers=headers,
json={"domain": [], "fields": ["name","state","company_id","displayed_image_id","milestone_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/project-task">project.task (Odoo 19.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 19 : ORM API
- Documentation Odoo 19 : API externe JSON-2
Données vérifiées le 23 septembre 2026 · Odoo 19.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.