Champs et widgets

Les champs permettent de structurer les modèles d’une base de données. Si vous imaginez un modèle sous la forme d’un tableau ou d’une feuille de calcul, les champs sont les colonnes dans lesquelles les données sont stockées dans les enregistrements (c’est-à-dire les lignes). Les champs définissent également le type de données qui y sont stockées. La manière dont les données sont présentées et formatées dans l”UI est déterminée par leur widget.

D’un point de vue technique, il y a 15 types de champ dans Odoo. Toutefois, vous pouvez choisir parmi 20 champs dans Studio, car certains types de champs sont disponibles plus d’une fois en appliquant un différent widget par défaut.

Astuce

Il est uniquement possible d’ajouter de Nouveaux champs aux vues Formulaire et Liste. Dans les autres vues, vous ne pouvez ajouter que des Champs existants (champs déjà présents dans le modèle).

Champs simples

Les champs simples contiennent des valeurs de base, telles qu’un texte, des chiffres, des fichiers, etc.

Note

Non-default widgets, when available, are presented as bullet points or sub-headings below.

Texte (char)

Le champ Texte est utilisé pour un texte court contenant n’importe quel caractère. Une ligne de texte est affichée lorsque le champ est complété.

  • Badge : permet d’afficher la valeur à l’intérieur d’une forme arrondie, semblable à une étiquette. Il n’est pas possible de modifier la valeur dans l’UI, mais il est possible de définir une valeur par défaut.

  • Copier dans le presse-papiers : les utilisateurs peuvent copier la valeur en cliquant sur un bouton.

  • Email : la valeur devient un lien mailto cliquable.

  • Image : permet d’afficher une image à l’aide d’une URL. Il n’est pas possible de modifier la valeur manuellement, mais il est possible de définir une valeur par défaut.

    Note

    This works differently than selecting the Image field directly, as the image is not stored in Odoo when using a Text field with the Image widget. For example, it can be useful if you want to save disk space.

  • Téléphone : la valeur devient un lien tel cliquable.

    Astuce

    Cochez Activer les SMS pour ajouter une option permettant d’envoyer un SMS directement depuis Odoo à côté du champ.

  • URL : la valeur devient une URL cliquable.

Example

Exemples des champs Texte avec différents widgets

Texte multiligne (text)

Le champ Texte multiligne est utilisé pour un texte plus long contenant n’importe quel type de caractère. Deux lignes de texte sont affichées sur l’UI lorsque le champ est complété.

  • Copier dans le presse-papiers : les utilisateurs peuvent copier la valeur en cliquant sur un bouton.

Example

Exemples de champs Texte multiligne avec différents widgets

Entier (integer)

Le champ Entier est utilisé pour tous les nombres entiers (positifs, négatifs, ou zéro, sans décimale).

  • Graphique circulaire : affiche la valeur à l’intérieur d’un cercle de pourcentage, généralement pour une valeur calculée. Il n’est pas possible de modifier la valeur sur l’UI, mais il est possible de définir une valeur par défaut.

  • Barre de progression : affiche la valeur à côté d’une barre de progression, généralement pour une valeur calculée. Il n’est pas possible de modifier le champ manuellement, mais il est possible de définir une valeur par défaut.

  • Poignée : affiche une icône de poignée pour ordonner manuellement les enregistrements dans la vue Liste.

Example

Exemples de champs Entier avec différents widgets

Décimale (float)

Le champ Décimale est utilisé pour tous les nombres décimaux (positifs, négatifs, ou zéro, avec décimale).

Note

Les nombres décimaux sont affichés avec deux décimales après la virgule sur l’UI, mais ils sont stockés dans la base de données avec plus de précision.

  • Monetary: it is similar to using the Monetary field. It is recommended to use the latter as it offers more functionalities.

  • Pourcentage : affiche un caractère de pourcentage % après la valeur.

  • Graphique circulaire : affiche la valeur à l’intérieur d’un cercle de pourcentage, généralement pour une valeur calculée. Il n’est pas possible de modifier ce champ manuellement, mais il est possible de définir une valeur par défaut.

  • Barre de progression : affiche la valeur à côté d’une barre de progression, généralement pour une valeur calculée. Il n’est pas possible de modifier le champ manuellement, mais il est possible de définir une valeur par défaut.

  • Heure : la valeur doit respecter le format hh:mm, avec un maximum de 59 minutes.

Example

Exemples de champs décimaux avec différents widgets

Monétaire (monetary)

Le champ Monétaire est utilisé pour toutes les valeurs monétaires.

Note

Lorsque vous ajoutez d’abord un champ Monétaire, vous avez tendance à vouloir ajouter un champ Devise s’il n’y en a pas déjà un sur le modèle. Odoo propose d’ajouter le champ Devise pour vous. Une fois qu’il est ajouté, ajoutez de nouveau le champ Monétaire.

Example

Exemple d'un champ Monétaire et de son champ Devise

Html (html)

Le champ Html est utilisé pour ajouter du texte qui peut être édité en utilisant l’éditeur HTML d’Odoo.

  • Texte multiligne : désactive l’éditeur HTML d’Odoo pour permettre l’édition de HTML brut.

Example

Exemples de champs Html avec différents widgets

Date (date)

Le champ Date est utilisé pour sélectionner une date sur un calendrier.

  • Remaining Days: the remaining number of days before the selected date is displayed (e.g., In 5 days), based on the current date. This field should be set to Read only.

Example

Exemples de champs Date avec différents widgets

Date & Heure (datetime)

Le champ Date & Heure est utilisé pour sélectionner une date sur un calendrier et une heure sur une horloge. L’heure actuelle de l’utilisateur est automatiquement utilisée si aucune heure n’est définie.

Astuce

As well as general properties, some specific properties are available for Date & Time fields that have the Date & Time or Date Range widget set.

Date Range (daterange)

The Date Range widget is used to display a period of time defined by a start date and an end date in a single line. A date range can have a mandatory start and end date, e.g., for a multi-day event, or allow an optional start or end date, e.g., for a field service intervention or a project task.

Adding a date range requires two fields: a Date & Time field with the Date Range widget set and another field that is selected as the start date or end date. This underlying field can be an existing Date or Date & Time field, or one created specifically for this purpose.

To add a date range:

  1. Identify an existing Date or Date & Time field that can be used as the underlying start/end date field, or add a new one. If the date range:

    • has a mandatory start date and end date, this field can be either the start date or end date; the outcome is the same.

    • allows an optional start or end date, this field is the start date or end date, respectively.

    Astuce

    To avoid displaying the same information twice, the underlying start/end date field can be made invisible by enabling Invisible or removed from the view by clicking Remove from view.

  2. Add a Date & Time field and set the Widget field to Date Range.

  3. Enter an appropriate Label.

  4. Select the underlying start/end date field from the Start date field or End date field dropdown, as relevant.

  5. If the date range should have a mandatory start and end date, enable Always range.

  6. Update any other general properties or specific properties for Date & Time fields as needed, then click Close in the upper right corner of the screen.

Example

Exemples des champs Date & Heure avec différents widgets

Remaining Days (remaining_days)

The Remaining Days widget displays the remaining number of days before the selected date (e.g., In 5 days), based on the current date and time. This field should be set to Read only.

Case à cocher (boolean)

Le champ Case à cocher est utilisé lorsqu’une valeur ne peut être que vraie ou fausse, en cochant ou en décochant une case à cocher.

  • Bouton : affiche un bouton radio. Le widget fonctionne sans passer en mode édition.

  • Bascule : affiche un bouton à bascule. Le widget fonctionne sans passer en mode édition.

Example

Exemples de champs Case à cocher avec différents widgets

Sélection (selection)

Le champ Sélection est utilisé lorsque les utilisateurs doivent sélectionner une seule valeur parmi un nombre de valeurs prédéfinies.

  • Badge : permet d’afficher la valeur à l’intérieur d’une forme arrondie, semblable à une étiquette. Il n’est pas possible de modifier la valeur dans l’UI, mais il est possible de définir une valeur par défaut.

  • Badges : affiche simultanément toutes les valeurs sélectionnables à l’intérieur de formes rectangulaires, organisées horizontalement.

  • Priority: displays star symbols instead of values, which can be used to indicate an importance or satisfaction level, for example. This has the same effect as selecting the Priority field, although, for the latter, four priority values are already predefined.

  • Radio : affiche toutes les valeurs sélectionnables en même temps sous forme de boutons radio.

    Astuce

    By default, radio buttons are organized vertically. Enable Display horizontally to switch the way they are displayed.

  • Status Bar: displays all selectable values at the same time as an arrow progress bar.

    Astuce

    By default, values on the status bar are selectable. Disable Clickable to prevent the value being edited on the UI.

Example

Exemples de champs Sélection avec différents widgets

Priorité (selection)

The Priority field is used to display a three-star rating system, which can be used to indicate importance or satisfaction level. This field type is a Selection field with the Priority widget selected by default and four priority values predefined. Consequently, the Badge, Badges, Radio, and Selection widgets have the same effects as described under Selection.

Astuce

Pour modifier le nombre d’étoiles disponibles en ajoutant ou supprimant des valeurs, cliquez sur Modifier les valeurs. Notez que la première valeur est égale à 0 étoiles (c’est-à-dire, lorsqu’aucune sélection n’est faite), donc quatre valeurs donnent un système d’évaluation à trois étoiles par exemple.

Example

Exemple d'un champ Priorité

Fichier (binary)

Le champ Fichier permet de charger tout type de fichier ou de signer un formulaire (widget Signature).

  • Image: users can upload an image file, which is then displayed in Form view. This has the same effect as using the Image field.

  • Visualiseur PDF : les utilisateurs peuvent charger un fichier PDF, qui peut ensuite être consulté à partir de la vue Formulaire.

  • Sign: users can electronically sign the form. This has the same effect as selecting the Sign field.

Example

Exemples de champs Fichier avec différents widgets

Image (binary)

The Image field is used to upload an image and display it in Form view. This field type is a File field with the Image widget selected by default. Consequently, the File, PDF Viewer, and Sign widgets have the same effects as described under File.

Astuce

Pour modifier l’affichage des images chargées, sélectionnez Petite, Moyenne ou Grande dans l’option Taille.

Signature (binary)

The Sign field is used to sign the form electronically. This field type is a File field with the Sign widget selected by default. Consequently, the File, Image, and PDF Viewer widgets have the same effects as described under File.

Astuce

To give users the Auto option when having to draw their signature, select one of the available Auto-complete with fields (Text, Many2One, and Related Field on the model only). The signature is automatically generated using the data from the selected field.

Champs relationnels

Les champs relationnels sont utilisés pour lier et afficher les données des enregistrements d’un autre modèle.

Note

Les widgets autres que ceux par défaut, lorsqu’ils sont disponibles, sont énumérés sous forme de points ci-dessous.

Many2One (many2one)

Le champ Many2One est utilisé pour lier un autre enregistrement (d’un autre modèle) au modèle en cours d’édition. Le nom de l’enregistrement de l’autre modèle est alors affiché sur l’enregistrement en cours d’édition.

Example

Sur le modèle Commande, le champ Client est un champ Many2One qui pointe vers le modèle Contact. Cela permet de lier plusieurs commandes à un seul contact (client).

Diagramme affichant une relation many2one

Astuce

  • Pour empêcher les utilisateurs de créer un nouvel enregistrement dans le modèle lié, cochez Désactiver la création.

  • Pour empêcher les utilisateurs d’ouvrir des enregistrements dans une fenêtre contextuelle, cochez Désactiver l’ouverture.

  • Pour aider les utilisateurs à ne sélectionner que le bon enregistrement, cliquez sur Domaine pour créer un filtre.

  • Badge : affiche la valeur à l’intérieur d’une forme arrondie, semblable à une étiquette. Il n’est pas possible de modifier la valeur sur l’UI.

  • Radio : affiche toutes les valeurs sélectionnables en même temps sous forme de boutons radio.

One2Many (one2many)

Le champ One2Many est utilisé pour afficher les relations existantes entre un enregistrement du modèle actuel et plusieurs enregistrements d’un autre modèle.

Example

Vous pouvez ajouter un champ One2Many au modèle Contact pour consulter les nombreuses commandes d”un seul client.

Diagramme affichant une relation one2many

Note

To use a One2Many field, the two models must have been linked already using a Many2One field. One2Many relations do not exist independently: a reverse-search of existing Many2One relations is performed.

Lignes (one2many)

Le champ Lignes permet de créer un tableau avec des lignes et des colonnes (par ex. les lignes de produits d’une commande).

Astuce

Pour modifier les colonnes, cliquez sur le champ Lignes et ensuite Modifier la vue liste. Pour modifier le formulaire qui apparaît lorsqu’un utilisateur clique sur Ajouter une ligne, cliquez plutôt sur Modifier la vue formulaire.

Example

Exemple d'un champ Lignes

Many2Many (many2many)

The Many2Many field is used to link multiple records from another model to multiple records on the current model. Many2Many fields can use Disable creation, Disable opening, Domain, just like Many2One fields.

Example

Sur le modèle Tâche, le champ Assignés est un champ Many2Many qui pointe vers le modèle Contact. Cela permet à un seul utilisateur d’être assigné à plusieurs tâches et à plusieurs utilisateurs d’être assignés à une seule tâche.

Diagramme affichant des relations many2many
  • Cases à cocher : les utilisateurs peuvent sélectionner plusieurs valeurs à l’aide de cases à cocher.

  • Tags: users can select several values appearing in rounded shapes, also known as tags. This has the same effect as selecting the Tags field.

Étiquettes (many2many)

The Tags field is used to display several values from another model appearing in rounded shapes, also known as tags. This field type is a Many2Many field with the Tags widget selected by default. Consequently, the Checkboxes and Many2Many widgets have the same effects as described under Many2Many.

Astuce

Pour afficher des étiquettes avec différentes couleurs de fond, cochez Utiliser des couleurs.

Example

Exemple d'un champ Étiquettes

Propriétés

General properties

  • Invisible: Enable this property when it is not necessary for users to view a field on the UI. This helps declutter the UI by only showing the essential fields depending on a specific situation.

    The Invisible attribute also applies inside Studio. To view hidden fields in Studio, click on a view’s View tab and enable Show Invisible Elements.

  • Required: Enable this property if a field should always be completed by the user before being able to proceed.

  • Readonly: Enable this property if users should not be able to modify a field.

Note

You can choose to enable Invisible, Required and Readonly for specific records only by clicking on Conditional and creating a filter.

Example

Dans la vue Formulaire du modèle Contact, le champ Titre n’apparaît que lorsque Individuel est sélectionné, car ce champ n’est pas utile pour une Société.

  • Label: the field’s name on the UI. This is not the name used in the PostgreSQL database. To view and change the latter, activate the developer mode and edit the Technical Name.

  • Help Tooltip: To explain the purpose of a field, add a description. The text is displayed inside a tooltip box when hovering with your mouse over the question mark beside the field’s label.

  • Widget : Pour changer l’apparence ou la fonctionnalité par défaut d’un champ, sélectionnez un des widgets disponibles.

  • Placeholder: To provide an example of how a field should be completed, add placeholder text. The text appears in light gray until a value is entered.

  • Default value: To display a default value in a field when a record is created, add a value.

  • Allow visibility to groups: To limit which users can view the field, select one or more user access groups.

  • Forbid visibility to groups: To prevent certain users from seeing the field, select one or more user access groups.

Properties for Date & Time fields

For Date & Time fields that have the Date & Time or Date Range widget set, some specific properties are available:

  • Time interval: Enter a value to determine the minute intervals shown in the time selector. For example, enter 15 to allow quarter-hour intervals. The default value is set to 5 minutes.

  • Warning for future dates: Enable this property to display a warning icon if a future date is selected.

  • Show time: This property is enabled by default for Date & Time fields. On a read-only field, disable the property to show only the date. This can keep a list view less cluttered, for example.

  • Earliest accepted date: Enter the earliest date that can be selected in the date selector in ISO-format, i.e., YYYY-MM-DD. If the current date is always the earliest accepted date, enter today. On the date selector, dates prior to the earliest accepted date are grayed out.

  • Latest accepted date: Enter the latest date that can be selected in the date selector in ISO-format, i.e., YYYY-MM-DD. If the current date is always the latest accepted date, enter today. On the date selector, dates later than the latest accepted date are grayed out.