Campi e widget

Fields structure the models of a database. If you think of a model as a table or spreadsheet, fields are the columns and records are the individual rows. Fields also define the type of data that is stored within them. The way in which a field’s data is presented and formatted on the UI is controlled by its widget.

With Studio, it is possible to:

Studio fields vs. property fields

Fields created using Studio are saved as columns in your Odoo database. Property fields, on the other hand, act as pseudo-fields; they are shared by all records that are linked to the same parent record (e.g., for tasks, the project, or for a product, the product category), but they are not saved as columns in your database.

Example

Adding a Deadline field to the form view of a task using Studio makes that field visible in every task in your database. Adding a Special instructions property field to a task makes the field visible in all tasks within the same project (i.e., its parent) while other projects’ tasks remain unaffected.

Field types

Fields can be broadly divided into two categories:

  • Simple fields, which contain basic values, such as text, numbers, files, etc.

  • Relational fields, which are used to link and display the data from records on another model.

Campi semplici

Nota

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

Testo (char)

Il campo Testo viene utilizzato per testi brevi contenenti qualsiasi carattere. Una riga di testo viene visualizzata quando viene riempito il campo.

  • Badge: visualizza il valore all’interno di una forma arrotondata, simile a un tag. Il valore non può essere modificato nell’interfaccia utente, ma è possibile impostare un valore predefinito

  • Copia negli appunti: gli utenti possono copiare il valore facendo clic su un pulsante

  • E-mail: il valore diventa un link mailto cliccabile

  • Immagine: mostra un’immagine utilizzando un URL. Il valore non può essere modificato manualmente ma è possibile impostare un valore predefinito.

    Nota

    This works differently from 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.

  • Telefono: il valore diventa un link tel cliccabile.

    Suggerimento

    Spunta l’opzione Abilita SMS per aggiungere un’opzione per inviare un SMS direttamente da Odoo accanto al campo.

  • URL: il valore diventa un URL cliccabile.

Example

Esempi di campi testo con vari widget

Testo su più righe (text)

Il campo Testo multiriga viene utilizzato per testi più lunghi contenenti qualsiasi tipo di carattere. Due righe di testo vengono visualizzate nell’IU quando viene riempito il campo.

  • Copia negli appunti: gli utenti possono copiare il valore facendo clic su un pulsante

Example

Esempi di campi Testo multiriga con vari widget

Intero (integer)

Il campo Intero viene utilizzato per tutti i numeri interi (positivo, negativo o zero, senza un decimale).

  • Torta percentuale: mostra il valore all’interno di un cerchio, di solito per un valore calcolato. Il valore non può essere modificato sull’IU ma è possibile impostare un valore predefinito.

  • Barra di avanzamento: mostra il valore accanto alla barra percentuale, di solito per un valore calcolato. Il campo non può essere modificato manualmente ma è possibile impostare un valore predefinito.

  • Maniglia: mostra un’icona a forma di maniglia per ordinare i record manualmente nella vista elenco.

Example

Esempi di campi Intero con vari widget

Decimale (float)

Il campo Decimale viene utilizzato per tutti i numeri decimali (positivo, negativo o zero, con un decimale).

Nota

Nell’IU, i numeri decimali vengono visualizzati con due decimali dopo il punto ma vengono salvati nel database con più precisione.

  • Monetario: è simile all’utilizzo del campo Monetario. È consigliato utilizzarlo in quanto offre più funzionalità.

  • Percentuale: mostra il simbolo di percentuale % dopo il valore.

  • Torta percentuale: mostra il valore all’interno di un cerchio, di solito per un valore calcolato. Il campo non può essere modificato manualmente ma è possibile impostare un valore predefinito.

  • Barra di avanzamento: mostra il valore accanto alla barra percentuale, di solito per un valore calcolato. Il campo non può essere modificato manualmente ma è possibile impostare un valore predefinito.

  • Tempo: il valore deve rispettare il formato hh:mm con un massimo di 59 minuti.

Example

Esempi di campi Decimale con vari widget

Monetario (monetary)

Il campo Monetario viene utilizzato per tutti i valori monetari.

Nota

Quando aggiungi un campo Monetario per la prima volta, ti verrà richiesto di aggiungere il campo Valuta se non esiste già nel modello. Odoo si offre di aggiungere il campo Valuta per te. Una volta aggiunto, riaggiungi il campo Monetario.

Example

Esempio di campo Monetario con il campo Valuta

Html (html)

Il campo Html viene utilizzato per aggiungere del testo che può essere modificato utilizzando l’editor HTML di Odoo.

  • Testo multiriga: disabilita l’editor HTML di Odoo per consentire la modifica dell’HTML puro.

Example

Esempi di campi HTML con vari widget

Data (date)

Il campo Data viene utilizzato per selezionare una data sul calendario.

  • Giorni residui: il numero di giorni rimanenti prima della visualizzazione della data selezionata (ad es., Tra 5 giorni), in base alla data attuale. Questo campo dovrebbe essere impostato su Sola lettura.

Example

Esempi di campi Data con vari widget

Data e ora (datetime)

Il campo Data e ora viene utilizzato per selezionare una data sul calendario e un orario per l’orologio. L’orario attuale dell’utente viene utilizzato automaticamente se non imposti un altro orario.

Suggerimento

Come nel caso delle proprietà generali, alcune proprietà specifiche sono disponibili per i campi Data e ora che hanno il widget Data e ora o Intervallo data configurato.

Intervallo data (daterange)

Il widget Intervallo data viene utilizzato per mostrare un periodo di tempo definito da una data di inizio e una data di fine in una singola riga. Un intervallo di date può avere una data di inizio e di fine obbligatoria, ad esempio per un evento di più giorni, o consentire una data di inizio o di fine opzionale, ad esempio per un intervento di assistenza sul campo o un’attività di progetto.

L’aggiunta di un intervallo data richiede due campi: un campo Data e ora con il widget Intervallo data configurato e un altro campo selezionato come data di inizio o data di fine. Questo campo sottostante può essere un campo Data o Data e ora esistente, oppure uno creato specificatamente per questo scopo.

Per aggiungere un intervallo data:

  1. individua un campo Data o Data e ora esistente che può essere usato come il campo data inizio/fine sottostante oppure aggiungine uno nuovo. Se l’intervallo data:

    • ha una data di inizio e di fine obbligatorie, il campo può corrispondere sia alla data di inizio che alla data di fine; il risultato è lo stesso.

    • permette di aggiungere una data di inizio o fine facoltativa, questo campo corrisponde alla data di inizio o di fine.

    Suggerimento

    Per evitare di mostrare le stesse informazioni due volte, il campo data inizio/fine sottostante può essere reso invisibile attivando Invisibile oppure può essere eliminato dalla vista facendo clic su Elimina da vista.

  2. Aggiungi un campo Data e ora e imposta il campo Widget su Intervallo data.

  3. Inserisci una Etichetta appropriata.

  4. Seleziona il campo data inizio/fine sottostante dal menu a discesa Campo data inizio o Campo data fine.

  5. Se l’intervallo data deve avere una data di inizio e fine obbligatorie, attiva Sempre intervallo.

  6. Aggiorna qualsiasi altra proprietà generale o specifica per i campi Data e ora se necessario. In seguito, fai clic su Chiudi nell’angolo in alto a destra dello schermo.

Example

Esempi di campi Data e ora con vari widget
Giorni rimanenti (remaining_days)

Il widget Giorni rimanenti mostra il numero restante di giorni che precedono la data selezionata (ad es., Tra 5 giorni), in base a data e orario attuali. Il campo dovrebbe essere impostato su Sola lettura.

Casella (boolean)

Il campo Casella viene utilizzato quando un valore può essere solo vero o falso, indicato spuntando o meno la casella.

  • Pulsante: visualizza un pulsante rotondo. Il widget funziona senza dover passare alla modalità di modifica.

  • Interruttore: visualizza un pulsante a forma di interruttore. Il widget funziona senza dover passare alla modalità di modifica.

Example

Esempi di campi Casella con vari widget

Selezione (selection)

Il campo Selezione viene utilizzato quando gli utenti devono scegliere un solo valore da un gruppo di valori predefiniti.

  • Badge: visualizza il valore all’interno di una forma arrotondata, simile a un tag. Il valore non può essere modificato nell’interfaccia utente, ma è possibile impostare un valore predefinito

  • Badge: mostra tutti i valori selezionabili contemporaneamente all’interno di forme rettangolari, organizzate orizzontalmente.

  • Priorità: mostra simboli a forma di stella invece di valori utilizzabili per indicare il livello di importanza o soddisfazione, ad esempio. È come selezionare il campo Priorità, sebbene, per quest’ultimo, sono previsti quattro valori.

  • Pulsante di selezione: mostra tutti i valori selezionabili allo stesso tempo come pulsanti di selezione.

    Suggerimento

    Per impostazione predefinita, i pulsanti di selezione vengono organizzati verticalmente. Spunta Visualizza in orizzontale per modificare la visualizzazione.

  • Barra di stato: mostra tutti i valori selezionabili allo stesso tempo come una freccia che avanza.

    Suggerimento

    Per impostazione predefinita, i valori sulla barra di stato sono selezionabili. Disattiva Cliccabile per evitare di modificare il valore sull’interfaccia utente.

Example

Esempi di campi Selezione con vari widget

Priorità (selection)

Il campo Priorità viene utilizzato per visualizzare un sistema di valutazione a tre stelle che può essere utilizzato per indicare il livello di importanza o soddisfazione. Questo tipo di campo è campo Selezione con il widget Priorità selezionato per impostazione predefinita con quattro valori di priorità. Di conseguenza, i widget Badge, Badge, Pulsante di selezione e Selezione hanno lo stesso effetto descritto nel campo Selezione.

Suggerimento

Per modificare il numero di stelle disponibili aggiungendo o rimuovendo valori, fai clic su Modifica valori. Nota che il primo valore è pari a 0 stelle (ad es., quando non viene effettuata nessuna scelta) quindi quando si hanno quattro valori, il sistema di valutazione sarà caratterizzato da tre stelle.

Example

Esempio di campo Priorità

File (binary)

Il campo File viene utilizzato per caricare qualsiasi tipo di file oppure per firmare un modulo (Sign widget).

  • Immagine: gli utenti possono caricare un file immagine che poi viene visualizzato nella vista modulo. Questo ha lo stesso effetto del campo Immagine.

  • Visualizzatore PDF: gli utenti possono caricare un file PDF che può essere consultato dalla vista modulo.

  • Firma: gli utenti possono firmare digitalmente il modulo. Questo ha lo stesso effetto del campo Firma.

Example

Esempi di campi File con vari widget

Immagine (binary)

Il campo Immagine viene utilizzato per caricare un’immagine e visualizzarla nella vista modulo. Questo tipo di campo è un campo File con il widget Immagine selezionato per impostazione predefinita. Di conseguenza, i widget File, Visualizzatore PDF e Firma hanno lo stesso effetto descritto per il campo File.

Suggerimento

Per modificare la dimensione delle immagini caricate, scegli Piccola, Media o Grande nel campo Dimensione.

Firma (binary)

Il campo Firma viene utilizzato per firmare il modulo digitalmente. Questo tipo di campo è un campo File con il widget Firma selezionato per impostazione predefinita. Di conseguenza, i widget File, Immagine e Visualizzatore PDF widgets hanno lo stesso effetto del campo File.

Suggerimento

Per fornire l’opzione Automatica al momento dell’inserimento della firma, seleziona uno dei campi Completa automaticamente con (Text, molti a uno e Campo correlato solo sul modello). La firma viene generata automaticamente utilizzando i dati del campo selezionato.

Campi di relazione

Nota

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

Molti a uno (many2one)

Il campo Molti a uno viene utilizzato per collegare un record (di un altro modello) al record che si sta modificando. Il nome del record dell’altro modello viene poi visualizzato sul record che si sta modificando.

Example

Sul modello Ordine di vendita, il campo Cliente è un campo Molti a uno che punta al modello Contatto. Questo permette di collegare più ordini di vendita a un solo contatto (cliente).

Diagramma che mostra la relazione molti a uno

Suggerimento

  • Spunta l’opzione Disattiva creazione per impedire agli utenti di creare un nuovo record nel modello collegato.

  • Spunta l’opzione Disattiva apertura per impedire agli utenti di aprire record in una finestra pop-up.

  • Fai clic su Dominio per creare un filtro che aiuta gli utenti a selezionare solo il record giusto.

  • Badge: mostra il valore all’interno di una forma arrotondata, simile a un tag. Il valore non può essere modificato nell’interfaccia utente.

  • Pulsante di selezione: mostra tutti i valori selezionabili allo stesso tempo come pulsanti di selezione.

Uno a molti (one2many)

Il campo Uno a molti viene utilizzato per mostrare le relazioni esistenti tra un record del modello attuale e altri record di un altro modello.

Example

È possibile aggiungere un campo Uno a molti al modello Contatto per visualizzare molti ordini di vendita di un solo cliente.

Diagramma che mostra la relazione uno a molti

Nota

Per utilizzare un campo Uno a molti, i due modelli devono essere già collegati utilizzando un campo Molti a uno. Le relazioni Uno a molti non esistono in modo indipendente: viene eseguita una ricerca inversa delle relazioni Molti a uno esistenti.

Righe (one2many)

Il campo Righe viene utilizzato per creare una tabella con righe e colonne (ad es., le righe dei prodotti di un ordine di vendita).

Suggerimento

Per modificare le colonne, fai clic sul campo Righe e poi su Modifica vista elenco. Per modificare il modulo che appare quando un utente fa clic su Aggiungi riga, fai clic su Modifica vista modulo.

Example

Esempio di campo Righe

Molti a molti (many2many)

Il campo Molti a molti viene utilizzato per collegare più record di un altro modello a più record del modello attuale. I campi Molti a molti possono usare Disattiva apertura, Dominio proprio come i campi Molti a uno.

Example

Nel modello Lavoro, il campo Assegnatari è un campo Molti a molti che punta al modello Contatto. Questo permette a un singolo utente di essere assegnato a più lavori e più utenti possono essere assegnati a un solo lavoro.

Diagramma che mostra le relazioni Molti a molti
  • Caselle di controllo: gli utenti possono selezionare vari valori utilizzando le caselle di controllo.

  • Tag: gli utenti possono selezionare vari valori visualizzati in forme rotonde e denominati tag. Questo ha lo stesso effetto della selezione del campo Tag.

Tag (many2many)

Il campo Tag viene utilizzato per visualizzare vari valori di un altro modello che si presentano con una forma arrotondata, conosciuti anche come tag. Questo tipo di campo è un campo Molti a molti con il widget Tag selezionato in automatico. Di conseguenza, i widget Caselle di controllo e Molti a molti hanno lo stesso effetto descritto nella sezione Molti a molti.

Suggerimento

Per mostrare tag con vari colori di sfondo è necessario spuntare l’opzione Usa colori.

Example

Esempio di campo Tag

Add a field to a view

With Studio, it is possible to add:

Suggerimento

Add a new field to a form or list view to save it to the model and make it available as an existing field in other views of the same model.

Add a new field

Suggerimento

Activate developer mode before adding a new field to see, and be able to edit, the field’s technical name during configuration.

To add a new field, follow these steps:

  1. Navigate to the relevant form or list view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant form or list view.

  2. In the Add tab, drag the relevant field type from the New Fields section and drop it in the desired position. If the new field is a relational field, select the relevant reciprocal field, model, or related field in the pop-up.

  3. In the Properties tab, configure the field’s properties:

    • Enter the Label to be displayed as the field name on the UI; this is also used to generate the default technical name of the field.

    • Click anywhere outside the Label field to see the Technical Name updated with the default technical name.

      Nota

      • The Technical Name of a new field can be edited in Studio during the configuration process. At any other time, a field’s technical name can only be modified via the technical settings of the database.

      • The technical name of a new field added using Studio is by default prefixed by x_studio_.

    • Optionally, select a different Widget via the dropdown; the default widget for the field type is selected by default.

    • Optionally, configure any other field properties.

  4. Click Close in the top-right corner to close Studio.

Add an existing field

To add a field that exists on the model but that is not present on the current view, follow these steps:

  1. Navigate to the relevant view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant view.

  2. In the Add tab, in the left panel, click Existing Fields to reveal a list of all the model’s fields that are not currently present in the view.

  3. Drag the relevant field and drop it in the desired position.

  4. In the Properties tab, configure the relevant properties for the field in the current view.

    Nota

    Various properties can be configured independently for different views, if needed, such as the Label, the Widget, the visibility of the field for certain user groups, as well as whether or not the field is Invisible, Required, or Readonly.

  5. Click Close in the top-right corner to close Studio.

Field properties

A series of general properties can be configured for most combinations of field type and widget. Additional properties are available depending on the specific field type and widget selected. For example, Date & Time fields using the Date & Time or Date Range widget have various specific properties that can be configured.

Proprietà generali

  • Class: Use Bootstrap or other custom classes defined in Odoo to customize how the field is styled and displayed on the UI.

  • Invisibile: abilita questa proprietà quando non è necessario che gli utenti visualizzino un campo nell’interfaccia utente. Questo aiuta a snellire l’interfaccia utente, mostrando solo i campi essenziali in base a una situazione specifica.

  • Richiesto: attiva questa proprietà se un campo deve essere sempre compilato dall’utente prima di essere in grado di proseguire.

  • Sola lettura: abilita questa proprietà se gli utenti non devono poter modificare un campo.

Suggerimento

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

  • The Invisible, Required, and Readonly properties can be enabled for specific records only by clicking on Conditional and creating a filter.

    Example

    On the form view of the Contact model, the Title field only appears when Individual is selected, as that field would not be helpful for a Company contact.

  • Label: This is the field name on the UI; the label is used to generate the technical name of the field.

  • Suggerimento di aiuto: per spiegare lo scopo di un campo, inserisci una descrizione. Il testo viene visualizzato all’interno di una casella di suggerimento quando si passa il mouse sul punto interrogativo accanto all’etichetta del campo.

  • Technical Name: To view a field’s technical name in Studio (and, during the configuration of a new field, edit it if desired), activate developer mode.

    Suggerimento

    If this field needs to be updated but is no longer editable via Studio, the technical name can be modified via the technical settings of the database.

  • Widget: per modificare l’aspetto predefinito o la funzionalità di un campo, seleziona uno o più widget disponibili.

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

  • Dynamic Placeholder: To provide the value of the selected field as an example of how a field should be completed. The text appears in light gray until a value is entered.

  • Valore predefinito: per visualizzare un valore predefinito in un campo quando viene creato un record, aggiungere un valore.

  • Consenti visibilità gruppi: per limitare gli utenti che possono visualizzare il campo, seleziona uno o più gruppi utenti di accesso.

  • Impedisci visibilità gruppi: per evitare che alcuni utenti possano visualizzare il campo, seleziona uno o più gruppi utenti accesso.

Proprietà per campi Data e ora

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

  • Minimal precision: Determine the smallest date unit that must be selected in the date selector. The possible values are Day, Month, Year or Decade. If no value is selected, the user must select a day in the date selector.

  • Maximal precision: Determine the largest date unit that can be used to navigate the date selector. The possible values are Day, Month, Year or Decade. If no value is selected, the user can navigate the date selector by decade.

  • Avviso per date future: attiva questa proprietà per visualizzare un’icona di avviso se selezioni una data futura.

  • Visualizzazione breve: attiva questa proprietà per mostrare giorni, mesi e ore senza zeri iniziali, ad esempio 4/2/2025 8:05:00 invece di 04/02/2025 08:05:00.

  • Mostra ora: questa proprietà è abilitata per impostazione predefinita per i campi Data e ora. In un campo di sola lettura, disabilita la proprietà per mostrare solo la data. In questo modo, ad esempio, la visualizzazione di un elenco può risultare meno ingombrante.

  • Mostra secondi: questa proprietà è abilitata per impostazione predefinita per i campi Data e ora. Disattiva la proprietà per mostrare solo ore e minuti.

  • Intervallo di tempo: inserisci un valore per determinare gli intervalli di minuti visualizzati nel selettore orario. Ad esempio, inserisci 15 per consentire intervalli di un quarto d’ora. Il valore predefinito è impostato su 5 minuti.

  • 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.

  • Ultima data accettata: inserisci la data più recente che può essere selezionata nel selettore in formato ISO, ossia AAAA-MM-GG. Se la data corrente è sempre l’ultima data accettata, inserisci oggi. Nel selettore di date, le date successive all’ultima data accettata sono oscurate.

Modify a field’s properties

To modify the properties of a field, follow these steps:

  1. Navigate to the relevant view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant view.

  2. Click on the relevant field.

  3. In the Properties tab, make any desired changes to the field properties.

    Suggerimento

    Various properties can be configured independently for different views, such as the Label, the Widget, the visibility of the field for certain user groups, as well as whether or not the field is Invisible, Required, or Readonly.

  4. Click Close in the top-right corner to close Studio.

Nota

The Technical Name of a field (visible in Studio with developer mode activated) cannot be modified in Studio; this can be done via the technical settings of the database.

Modify a field’s technical name

To modify the technical name of a field, activate developer mode, then follow these steps:

  1. With the field open in Studio, copy the technical name of the field.

  2. Remove the field from all views in Studio, then click Close to close Studio.

  3. Navigate to Settings app ‣ Technical ‣ Fields.

  4. Paste the copied technical name into the search bar, then open the relevant field.

  5. Modify the Field Name as needed.

Once the field’s technical name has been updated, the field can then be added (back) to the relevant view(s) from the list of existing fields.

Importante

When updating the technical name of a field, make sure to keep at least the x_ prefix, which is required for any custom field; for fields created using Studio, keep the x_studio_ prefix to allow such fields to be more easily identified.

Remove a field from a view

To remove a field from a view, follow these steps:

  1. Navigate to the relevant view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant view.

  2. Click on the relevant field.

  3. Scroll to the bottom of the Properties tab, then click Remove from view.

  4. Click Ok to confirm the action.

Suggerimento

  • A removed field can be easily added back to the view at a later stage, if needed.

  • If the intention is to declutter the view, it is also possible to modify a field and make it Invisible on the view in question.