Project Task Customer Reference

project_task_customer_ref
REPOSITORY
REPOSITORYOCA/project
GIT
GIThttps://github.com/OCA/project.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project/tree/19.0/project_task_customer_ref
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYProject
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, DavidJForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/project
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_project
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - sale_service
    - project_account
    - project
    - rating
    - website_project
    - website
    - social_media
    - google_recaptcha
    - html_builder
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geoip2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds an **Order Customer Reference** field (`customer_reference`) to
`project.task` so that customer PO/requisition numbers are visible on
tasks, capturable via website webforms, and kept in sync with the linked
sale order.

Features:

- **Task field**: `customer_reference` (Char, not copied on duplication)
  is added to the task form view and list view (hidden by default,
  toggleable via the optional-columns menu).
- **Auto-populated from sale order**: when a task is created automatically
  from a confirmed sale order (service lines with `service_tracking`),
  the task inherits the SO's `client_order_ref` as its
  `customer_reference`.
- **Propagation back to sale order**: when `customer_reference` is set or
  updated on a task, it is written to `client_order_ref` on the linked
  sale order — but only if that field is currently empty, preventing
  unintended overwrites.
- **Website webform support**: the field is whitelisted for the website form
  builder so it appears in the field picker when configuring a webform that
  creates `project.task` records.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_task_all_tree_inherit project.task.list project.task field Inherits project.view_task_tree2
view_task_form2_inherit project.task.form project.task field Inherits project.view_task_form2
Models touched (3)

New fields (1)
  • customer_reference Char
    copy=False string='Order Customer Reference'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.