Odoo 19.0 Community · Persistant

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
Hérite de (mixins)
portal.mixinmail.thread.ccmail.activity.mixinrating.mixinmail.tracking.duration.mixinhtml.field.history.mixin

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 techniqueLibelléTypeDétails
activeActifboolean
allocated_hoursTemps allouéfloat
allow_billableAllow Billableboolean

related : project_id.allow_billable

ajouté par Ventes - Projet (sale_project)

allow_milestonesAllow Milestonesboolean

related : project_id.allow_milestones

allow_recurring_tasksAllow Recurring Tasksboolean

related : project_id.allow_recurring_tasks

allow_task_dependenciesAllow Task Dependenciesboolean

related : project_id.allow_task_dependencies

allow_timesheetsAllow timesheetsboolean
lecture seulecalculé

ajouté par Journaux des tâches (hr_timesheet)

analytic_account_activeActive Analytic Accountboolean

related : project_id.analytic_account_active

ajouté par Journaux des tâches (hr_timesheet)

attachment_idsPièces jointes

Pièces jointes qui ne proviennent pas d'un message

one2many
calculé
child_idsSous-tâchesone2many

inverse : parent_id

closed_depend_on_countFermeture en fonction des tâchesinteger
calculé
closed_subtask_countClosed Sub-tasks Countinteger
calculé
colorCouleurinteger
company_idSociétémany2one
calculé, stocké
create_dateCréé ledatetime
lecture seule
current_user_same_company_partnerCurrent User Same Company Partnerboolean
calculé
date_assignDate 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_deadlineDate limitedatetime
date_endDate de findatetime
date_last_stage_updateDerniè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_countEn fonction des tâchesinteger
calculé
depend_on_idsBloqué parmany2many
dependent_idsBloquermany2many
dependent_tasks_countTâches dépendantesinteger
calculé
descriptionDescriptionhtml
display_follow_buttonDisplay Follow Buttonboolean
calculé
display_in_projectDisplay In Projectboolean
calculé, stocké
display_nameNom 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_buttonDisplay Parent Task Buttonboolean
calculé
display_sale_order_buttonAfficher la commande clientboolean
calculé

ajouté par Ventes - Projet (sale_project)

displayed_image_idImage de couverturemany2one
effective_hoursTemps passéfloat
calculé, stocké

ajouté par Journaux des tâches (hr_timesheet)

email_ccEmail 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_fromE-mail dechar
encode_uom_in_daysEncode Uom In Daysboolean
calculé

ajouté par Journaux des tâches (hr_timesheet)

has_late_and_unreached_milestoneHas Late And Unreached Milestoneboolean
calculé
has_multi_solA de multiples lignes de venteboolean
calculé

ajouté par Feuille de temps des ventes (sale_timesheet)

has_project_templateHas Project Templateboolean

related : project_id.is_template

has_template_ancestorA un modèle ancêtreboolean
calculé, stocké
is_closedTerminéboolean
calculé
is_project_map_emptyCarte du projet vide ?boolean
calculé

ajouté par Feuille de temps des ventes (sale_timesheet)

is_templateEst un modèleboolean
is_timeoff_taskIs Time off Taskboolean
calculé

ajouté par Feuille de temps pendant les congés (project_timesheet_holidays)

last_sol_of_customerDernières lignes de vente du clientmany2one
calculé

ajouté par Feuille de temps des ventes (sale_timesheet)

leave_types_countNombre de types de congésinteger
calculé

ajouté par Feuille de temps pendant les congés (project_timesheet_holidays)

milestone_idJalon

Livrez vos services automatiquement lorsqu'un jalon est atteint en le liant à un article de la commande.

many2one
calculé, stocké
nameTitrechar
requis
overtimeHeures supplémentairesfloat
calculé, stocké

ajouté par Journaux des tâches (hr_timesheet)

parent_idTâche parentemany2one
partner_company_nameNom de la sociétéchar

related : partner_id.company_name

ajouté par Soumission de tâches en ligne (website_project)

partner_idClientmany2one
calculé, stocké
partner_nameNom du clientchar

related : partner_id.name

ajouté par Soumission de tâches en ligne (website_project)

partner_phoneNuméro de contactchar
calculé, stocké
personal_stage_idStatut 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_id.stage_id

personal_stage_type_idsPersonal Stagesmany2many
portal_user_namesPortal User Nameschar
calculé
pricing_typePricing Typeselection

related : project_id.pricing_type

ajouté par Feuille de temps des ventes (sale_timesheet)

priorityPrioritéselection

Valeurs : 0 (Priorité faible), 1 (Priorité moyenne), 2 (Priorité élevée), 3 (Urgent)

progressEn coursfloat
calculé, stocké

ajouté par Journaux des tâches (hr_timesheet)

project_idProjetmany2one
calculé, stocké
project_privacy_visibilityVisibilité du projetselection

related : project_id.privacy_visibility

project_sale_order_idBon de commande du projetmany2one

related : project_id.sale_order_id

ajouté par Ventes - Projet (sale_project)

rating_activeStatut d’évaluation de l’étapeboolean

related : stage_id.rating_active

recurrence_idRécurrencemany2one
recurring_countTâches dans la récurrenceinteger
calculé
recurring_taskRécurrentboolean
remaining_hoursTemps restant

Nombre d'heures allouées moins le nombre d'heures passées.

float
lecture seulecalculé, stocké

ajouté par Journaux des tâches (hr_timesheet)

remaining_hours_availableHeures restantes disponiblesboolean

related : sale_line_id.remaining_hours_available

ajouté par Feuille de temps des ventes (sale_timesheet)

remaining_hours_percentageRemaining Hours Percentagefloat
calculé

ajouté par Journaux des tâches (hr_timesheet)

remaining_hours_soTemps restant sur les bons de commandefloat
calculé

ajouté par Feuille de temps des ventes (sale_timesheet)

repeat_intervalRépéter tou(te)s lesinteger
calculé
repeat_typeJusqu'auselection
calculé

Valeurs : forever (Pour toujours), until (Jusqu'au)

repeat_unitRépéter jusqu'auselection
calculé

Valeurs : day (Jours), week (Semaines), month (Mois), year (Années)

repeat_untilDate de findate
calculé
role_idsRô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_idArticle 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_project)

sale_order_idCommande client

Commande client à laquelle la tâche est liée.

many2one
calculé, stocké

ajouté par Ventes - Projet (sale_project)

sale_order_stateSale Order Stateselection

related : sale_order_id.state

ajouté par Ventes - Projet (sale_project)

sequenceSéquenceinteger
stage_idÉtapemany2one
calculé, stocké
stage_id_colorStage Colorinteger

related : stage_id.color

stateStatutselection
requiscalculé, stocké

Valeurs calculées dynamiquement

subtask_allocated_hoursSub-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_percentageSubtask Completion Percentagefloat
calculé
subtask_countSub-task Countinteger
calculé
subtask_effective_hoursHeures 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 (hr_timesheet)

tag_idsÉtiquettesmany2many
task_propertiesPropriétésproperties
task_to_invoiceÀ facturerboolean
calculé

ajouté par Ventes - Projet (sale_project)

timesheet_idsFeuilles de tempsone2many

inverse : task_id

ajouté par Journaux des tâches (hr_timesheet)

timesheet_product_idProduit de feuille de tempsmany2one

related : project_id.timesheet_product_id

ajouté par Feuille de temps des ventes (sale_timesheet)

total_hours_spentTotal 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 (hr_timesheet)

user_idsAssignésmany2many
user_skill_idsUser Skillone2many

related : user_ids.employee_skill_ids

ajouté par Projet - Compétences (project_hr_skills)

website_message_idsWebsite Messageone2many
working_days_closeJours de travail pour clôturerfloat
calculé, stocké
working_days_openJours de travail pour attribuerfloat
calculé, stocké
working_hours_closeHeures de travail pour clôturerfloat
calculé, stocké
working_hours_openHeures de travail pour assignerfloat
calculé, stocké
write_dateMis à jour ledatetime
lecture seule
access_tokenJeton de sécuritéchar

hérité de portal.mixin

access_urlURl d'accès au portail

URl du portail client

char
calculé

hérité de portal.mixin

access_warningAvertissement d'accèstext
calculé

hérité de portal.mixin

activity_calendar_event_idActivité suivante de l'événement du calendriermany2one
calculé

hérité de mail.activity.mixin

activity_date_deadlineDate limite de l'activité à venirdate
lecture seulecalculé

hérité de mail.activity.mixin

activity_exception_decorationIndicateur d’exception d’activité

Type d'activité d'exception enregistrée.

selection
calculé

Valeurs : warning (Alerte), danger (Erreur)

hérité de mail.activity.mixin

activity_exception_iconIcône

Icône pour indiquer une activité d'exception.

char
calculé

hérité de mail.activity.mixin

activity_idsActivitésone2many

inverse : res_id

hérité de mail.activity.mixin

activity_stateStatut de l'activité

Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities.

selection
calculé

Valeurs : overdue (En retard), today (Aujourd'hui), planned (Planifié)

hérité de mail.activity.mixin

activity_summaryRésumé de l'activité suivantechar

related : activity_ids.summary

hérité de mail.activity.mixin

activity_type_iconIcône de type d'activitéchar

related : activity_ids.icon

hérité de mail.activity.mixin

activity_type_idType d'activités à venirmany2one

related : activity_ids.activity_type_id

hérité de mail.activity.mixin

activity_user_idUtilisateur responsablemany2one
lecture seulecalculé

hérité de mail.activity.mixin

duration_trackingDuré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_messageA un messageboolean
calculé

hérité de mail.thread

html_field_historyDonnées historiquesjson
lecture seule

hérité de html.field.history.mixin

html_field_history_metadataMétadonnées historiquesjson
calculé

hérité de html.field.history.mixin

is_rottingInactivitéboolean
calculé

hérité de mail.tracking.duration.mixin

message_attachment_countNombre de pièces jointesinteger
calculé

hérité de mail.thread

message_follower_idsAbonnésone2many

inverse : res_id

hérité de mail.thread

message_has_errorErreur d'envoi du message

Si coché, certains messages ont une erreur de livraison.

boolean
calculé

hérité de mail.thread

message_has_error_counterNombre d'erreurs

Nombre de messages avec des erreurs d'envoi

integer
calculé

hérité de mail.thread

message_has_sms_errorErreur d'envoi SMS

Si coché, certains messages ont une erreur de livraison.

boolean
calculé

hérité de mail.thread

message_idsMessagesone2many

inverse : res_id

hérité de mail.thread

message_is_followerEst un abonnéboolean
calculé

hérité de mail.thread

message_needactionNécessite une action

Si coché, de nouveaux messages demandent votre attention.

boolean
calculé

hérité de mail.thread

message_needaction_counterNombre d'actions

Nombre de messages nécessitant une action

integer
calculé

hérité de mail.thread

message_partner_idsAbonné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 moyennefloat
calculé

hérité de rating.mixin

rating_avg_textTexte de l'évaluation moyenneselection
calculé

Valeurs : top (Content), ok (Neutre), ko (Insatisfait), none (Pas encore évalué)

hérité de rating.mixin

rating_countNombre d'évaluationsinteger
calculé

hérité de rating.mixin

rating_idsÉvaluationsone2many

inverse : res_id

hérité de mail.thread

rating_last_feedbackÉvaluation des derniers feedbackstext

related : rating_ids.feedback

hérité de rating.mixin

rating_last_imageÉvaluation de la dernière imagebinary

related : rating_ids.rating_image

hérité de rating.mixin

rating_last_textTexte de l'évaluationselection

related : rating_ids.rating_text

hérité de rating.mixin

rating_last_valueÉvaluation dernière valeurfloat
calculé, stocké

hérité de rating.mixin

rating_percentage_satisfactionÉvaluation de la satisfactionfloat
calculé

hérité de rating.mixin

rotting_daysJours d’inactivité

Nombre de jours depuis la dernière mise à jour de cette ressource

integer
calculé

hérité de mail.tracking.duration.mixin

create_uidCréé parmany2one
lecture seuleautomatique
idIDinteger
lecture seuleautomatique
write_uidDernière mise à jour parmany2one
lecture seuleautomatique

Relations

Modèles liés depuis ce modèle

Champs d'autres modèles qui pointent ici

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
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}'
Python (requests)
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

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.