Câmpuri și widget-uri

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.

AI fields

AI fields are essentially standard Odoo fields with added AI capabilities that allow their values to be generated automatically through prompts.

Câmpuri simple

Notă

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

Text (char)

Câmpul Text este utilizat pentru text scurt care conține orice caracter. O singură linie de text este afișată la completarea câmpului.

  • Etichetă: afișează valoarea într-o formă rotunjită, similar cu o etichetă. Valoarea nu poate fi editată în UI, dar o valoare implicită poate fi setată.

  • Copiază în Clipboard: utilizatorii pot copia valoarea apăsând pe un buton.

  • E-mail: valoarea devine un link mailto (email către).

  • Imagine: afișează o imagine folosind un URL. Valoarea nu poate fi editată manual, dar o valoare implicită poate fi setată.

    Notă

    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.

  • Telefon: valoarea devine un link tel.

    Sfat

    Bifați Activează SMS pentru a adăuga o opțiune de a trimite un SMS direct din Odoo lângă câmp.

  • URL: valoarea devine un URL pe care se poate face clic.

Example

Exemple de câmpuri Text cu diferite widget-uri

Text Multilinie (text)

Câmpul Text Multilinie este utilizat pentru text mai lung care conține orice tip de caracter. Două linii de text sunt afișate în UI la completarea câmpului.

  • Copiază în Clipboard: utilizatorii pot copia valoarea apăsând pe un buton.

Example

Exemple de câmpuri Text Multilinie cu diferite widget-uri

Întregi (integer)

Câmpul Integer este utilizat pentru toate numerele întregi (pozitive, negative, sau zero, fără zecimale).

  • Grafic al proporțiilor: afișează valoarea într-un cerc procentual, de obicei pentru o valoare calculată. Valoarea nu poate fi editată în UI, dar o valoare implicită îi poate fi setată.

  • Bară de progres: afișează valoarea lângă o bară procentuală, de obicei pentru o valoare calculată. Câmpul nu poate fi editat manual, dar o valoare implicită îi poate fi setată.

  • Mâner: afișează o pictogramă de mâner pentru a ordona înregistrările manual în Vizualizarea listă.

Example

Exemple de câmpuri Integer cu diferite widget-uri

Zecimal (float)

Câmpul Zecimal este utilizat pentru toate numerele zecimale (pozitive, negative, sau zero, cu zecimale).

Notă

Numerele zecimale sunt afișate în UI (Interfața cu Utilizatorul) cu două zecimale după virgulă, dar sunt stocate în baza de date cu o precizie mai mare.

  • Monetar: este similar cu utilizarea câmpului Monetar. Se recomandă utilizarea acestuia din urmă deoarece oferă mai multe funcționalități.

  • Procentaj: afișează un caracter procent % după valoare.

  • Grafic al proporțiilor: afișează valoarea într-un cerc procentual, de obicei pentru o valoare calculată. Câmpul nu poate fi editat manual, dar o valoare implicită îi poate fi setată.

  • Bară de progres: afișează valoarea lângă o bară procentuală, de obicei pentru o valoare calculată. Câmpul nu poate fi editat manual, dar o valoare implicită îi poate fi setată.

  • Timp: valoarea trebuie să urmeze formatul hh:mm, cu un maxim de 59 minute.

Example

Exemple de câmpuri Zecimale cu diferite widget-uri

Monetar (monetary)

Câmpul Monetar este utilizat pentru toate valorile monetare.

Notă

Când adăugați prima dată un câmp monetar, vă este solicitat să adăugați un câmp monedă dacă nu există deja unul pe model. Odoo vă întreaba să adăugați câmpul Monedă pentru dvs. Odată adăugat, adăugați câmpul Monetar din nou.

Example

Exemplu de câmp Monetar împreună cu câmpul Monedă

Html (html)

Câmpul Html este utilizat pentru a adăuga text care poate fi editat folosind editorul HTML al Odoo.

  • Text Multilinie: dezactivează editorul HTML al Odoo pentru a permite editarea HTML brut.

Example

Exemple de câmpuri Html cu diferite widget-uri

Dată calendaristică (date)

Câmpul Dată calendaristică este utilizat pentru a selecta o dată pe un calendar.

  • Zile rămase: numărul de zile rămase până la data selectată este afișat (ex: Peste 5 zile), pe baza datei curente. Acest câmp trebuie setat ca Doar citire.

Example

Exemple de câmpuri Dată calendaristică cu diferite widget-uri

Dată și oră (datetime)

Câmpul Dată și oră este utilizat pentru a selecta o dată pe un calendar și o ora anume. Timpul curent al utilizatorului este utilizat automat dacă nu este setat.

Sfat

Pe lângă proprietățile generale, unele proprietăți specifice sunt disponibile pentru câmpurile Dată & Oră care au setat widget-ul Dată & Oră sau Interval de date.

Interval de date (daterange)

Widget-ul Interval de date este folosit pentru a afișa o perioadă de timp definită de o dată de început și una de sfârșit pe o singură linie. Un interval de date poate avea o dată de început și de sfârșit obligatorii, de exemplu pentru un eveniment de mai multe zile, sau poate permite o dată de început sau de sfârșit opțională, de exemplu pentru o intervenție pe teren sau o sarcină de proiect.

Adăugarea unui interval de date necesită două câmpuri: un câmp Dată & Oră cu widget-ul Interval de date setat și un alt câmp care este selectat ca dată de început sau de sfârșit. Acest câmp de bază poate fi un câmp Dată existent sau un câmp Dată & Oră, sau unul creat special pentru acest scop.

Pentru a adăuga un interval de date:

  1. Identificați un câmp Dată sau Dată & Oră existent care poate fi folosit ca dată de început/sfârșit de bază sau adăugați unul nou. Dacă intervalul de date:

    • are o dată de început și de sfârșit obligatorii, acest câmp poate fi fie data de început, fie data de sfârșit; rezultatul este același.

    • permite o dată de început sau de sfârșit opțională, acest câmp este data de început sau de sfârșit, respectiv.

    Sfat

    Pentru a evita afișarea aceleiași informații de două ori, câmpul de bază pentru data de început/sfârșit poate fi făcut invizibil activând Invizibil sau eliminat din vizualizare apăsând Elimină din vizualizare.

  2. Adăugați un câmp Dată & Oră și setați câmpul Widget la Interval de date.

  3. Introduceți o Etichetă potrivită.

  4. Selectați câmpul de bază pentru data de început/sfârșit din lista derulantă Câmp dată început sau Câmp dată sfârșit, după caz.

  5. Dacă intervalul de date trebuie să aibă o dată de început și de sfârșit obligatorii, activați Întotdeauna interval.

  6. Actualizați orice alte proprietăți generale sau proprietăți specifice pentru câmpurile Dată & Oră după necesitate, apoi apăsați Închide în colțul din dreapta sus al ecranului.

Example

Exemple de câmpuri Dată și oră cu diferite widget-uri
Zile rămase (remaining_days)

Widget-ul Zile rămase afișează numărul de zile rămase până la data selectată (ex: Peste 5 zile), pe baza datei și orei curente. Acest câmp trebuie setat ca Doar citire.

Bifă (boolean)

Câmpul Bifă este utilizat atunci când o valoare trebuie să fie adevărată sau falsă, indicată prin bifarea sau debifarea unui câmp.

  • Buton: afișează un buton radio. Widget-ul funcționează fără a trebui să treci în modul de editare.

  • Comutator: afișează un buton de comutare. Widget-ul funcționează fără a trebui să treci în modul de editare.

Example

Exemple de câmpuri Bifă cu diferite widget-uri

Selcție (selection)

Câmpul Selcție este utilizat atunci când utilizatorii trebuie să selecteze o singură valoare dintr-un grup de valori predefinite.

  • Etichetă: afișează valoarea într-o formă rotunjită, similar cu o etichetă. Valoarea nu poate fi editată în UI, dar o valoare implicită poate fi setată.

  • Etichete: afișează toate valorile selectabile simultan în interiorul formelor dreptunghiulare, organizate orizontal.

  • Prioritate: afișează simboluri de stea în loc de valori, care pot fi folosite pentru a indica, de exemplu, un nivel de importanță sau satisfacție. Are același efect ca selectarea câmpului Prioritate, deși pentru acesta din urmă există deja patru valori predefinite.

  • Radio: afișează toate valorile selectabile simultan ca butoane radio.

    Sfat

    În mod implicit, butoanele radio sunt organizate vertical. Activați Afișează orizontal pentru a schimba modul de afișare.

  • Bară de stare: afișează toate valorile selectabile simultan sub forma unei bare de progres cu săgeți.

    Sfat

    În mod implicit, valorile din bara de stare sunt selectabile. Dezactivați Clickabil pentru a preveni editarea valorii în interfață.

Example

Exemple de câmpuri Selecție cu diferite widget-uri

Prioritate (selection)

Câmpul Prioritate este folosit pentru a afișa un sistem de evaluare cu trei stele, care poate indica nivelul de importanță sau satisfacție. Acest tip de câmp este un câmp de selecție cu widget-ul Prioritate selectat implicit și patru valori de prioritate predefinite. În consecință, widget-urile Insignă, Insigne, Radio și Selecție au aceleași efecte ca cele descrise la Selecție.

Sfat

Pentru a modifica numărul de stele disponibile prin adăugarea sau eliminarea valorilor, faceți clic pe Editează valorile. Rețineți că prima valoare este egală cu 0 stele (adică, de exempu, atunci când nu este făcută nicio selecție), astfel încât având patru valori rezultă într-un sistem de evaluare cu trei stele.

Example

Exemplu de câmp Prioritate

Fișier (binary)

Câmpul Fișier este utilizat pentru a încărca orice tip de fișier, sau pentru a semna un formular (Semnează widget).

Example

Exemple de câmpuri Fișier cu diferite widget-uri

Imagine (binary)

Câmpul Imagine este folosit pentru a încărca o imagine și a o afișa în Vizualizarea formular. Acest tip de câmp este un câmp fișier cu widget-ul Imagine selectat implicit. În consecință, widget-urile Fișier, Vizualizator PDF și Semnătură au aceleași efecte ca cele descrise la Fișier.

Sfat

Pentru a modifica dimensiunea afișării imaginilor încărcate, selectați Mic, Mediu, sau Mare sub opțiunea Dimensiune.

Semnătură (binary)

Câmpul Semnătură este folosit pentru a semna electronic formularul. Acest tip de câmp este un câmp fișier cu widget-ul Semnătură selectat implicit. În consecință, widget-urile Fișier, Imagine și Vizualizator PDF au aceleași efecte ca cele descrise la Fișier.

Sfat

Pentru a oferi utilizatorilor opțiunea Auto când trebuie să deseneze semnătura, selectați unul dintre câmpurile disponibile Completare automată cu (Text, Many2One și Câmp corelat doar pe model). Semnătura este generată automat folosind datele din câmpul selectat.

Câmpuri relaționale

Notă

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

Many2One (many2one)

Câmpul Many2One este utilizat pentru a lega o altă înregistrare (de pe alt model) cu înregistrarea care este editată. Numele înregistrării din alt model este apoi afișat în înregistrarea care este editată.

Example

Pe modelul Comandă de Vânzare, câmpul Client este un câmp Many2One care indică modelul Contact. Acest lucru permite multe comenzi de vânzare să fie legate de un contact (client).

Diagramă care arată o relație many2one

Sfat

  • Pentru a preveni utilizatorii din a crea o nouă înregistrare în modelul legat, bifați Dezactivează crearea.

  • Pentru a preveni utilizatorii din a deschide înregistrări într-o fereastră pop-up, bifați Dezactivează deschiderea.

  • Pentru a ajuta utilizatorii să selecteze doar înregistrarea potrivită, faceți clic pe Domeniu pentru a crea un filtru.

  • To only trigger the search for a linked record after a minimum number of characters has been entered, enter the desired number in the Typeahead search field. In situations where the data set is large, this can enhance both search relevancy and performance.

  • Etichetă: afișează valoarea într-o formă rotunjită, similară cu o etichetă. Valoarea nu poate fi editată în interfața utilizatorului.

  • Radio: afișează toate valorile selectabile simultan ca butoane radio.

One2Many (one2many) (Unul către mai multe)

Câmpul One2Many este utilizat pentru a afișa relațiile existente între o înregistrare de pe modelul curent și mai multe înregistrări de pe alt model.

Example

Aveți posibilitatea să adăugați un câmp One2Many pe modelul Contact pentru a vedea mai multe comenzi de vânzare ale unui client.

Diagrama care arată o relație one2many

Notă

Pentru a folosi un câmp One2Many, cele două modele trebuie să fi fost deja legate folosind un câmp Many2One. Relațiile One2Many nu există independent: se realizează o căutare inversă a relațiilor Many2One existente.

Linii (one2many)

Câmpul Linii este utilizat pentru a crea o tabelă cu rânduri și coloane (de exemplu, linii de produse pe o comandă de vânzare).

Sfat

Pentru a modifica coloanele, faceți clic pe câmpul Linii și apoi Editați vizualizarea de tip lista. Pentru a edita formularul care apare atunci când un utilizator face clic pe Adăugați o linie, faceți clic pe Editați vizualizarea formularului.

Example

Exemplu de câmp Linii

Many2Many (many2many)

Câmpul Many2Many este folosit pentru a lega mai multe înregistrări dintr-un alt model la mai multe înregistrări din modelul curent. Câmpurile Many2Many pot folosi Dezactivează crearea, Dezactivează deschiderea, Domeniu, la fel ca câmpurile Many2One.

Example

Pe modelul Task, câmpul Atribuiți este un câmp Many2Many care indică modelul Contact. Acest lucru permite unui singur utilizator să îi fie atribuite mai multe sarcini și mai mulți utilizatori să fie atribuiți unei singure sarcini.

Diagrama care arată relațiile many2many

Sfat

To only trigger the search for the linked record after a minimum number of characters has been entered, enter the desired number in the Typeahead search field. In situations where the data set is large, this can enhance both search relevancy and performance.

  • Casete de selectare: utilizatorii pot selecta mai multe valori folosind casetele de selectare.

  • Etichete: utilizatorii pot selecta mai multe valori afișate sub formă de forme rotunjite, cunoscute și ca etichete. Are același efect ca selectarea câmpului Etichete.

Etichete (many2many)

Câmpul Etichete este folosit pentru a afișa mai multe valori dintr-un alt model sub formă de forme rotunjite, cunoscute și ca etichete. Acest tip de câmp este un câmp Many2Many cu widget-ul Etichete selectat implicit. În consecință, widget-urile Bife, Many2Many au aceleași efecte ca cele descrise la Many2Many.

Sfat

Pentru a afișa etichete cu culori de fundal diferite, bifați Folosiți culori.

Example

Exemplu de câmp Etichete

Add a field to a view

With Studio, it is possible to add:

Sfat

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

Sfat

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.

      Notă

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

    Notă

    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ăți generale

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

  • Invizibil: Activați această proprietate când nu este necesar ca utilizatorii să vadă un câmp în interfață. Acest lucru ajută la simplificarea interfeței afișând doar câmpurile esențiale în funcție de situație.

  • Obligatoriu: Activați această proprietate dacă un câmp trebuie completat întotdeauna de utilizator înainte de a putea continua.

  • Doar citire: Activați această proprietate dacă utilizatorii nu trebuie să poată modifica un câmp.

Sfat

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

  • Tooltip de ajutor: Pentru a explica scopul unui câmp, adăugați o descriere. Textul este afișat într-o casetă de tip tooltip când treceți cu mouse-ul peste semnul întrebării de lângă eticheta câmpului.

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

    Sfat

    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: Pentru a schimba aspectul sau funcționalitatea implicită a unui câmp, selectați unul dintre widget-urile disponibile.

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

  • Valoare implicită: Pentru a afișa o valoare implicită într-un câmp la crearea unei înregistrări, adăugați o valoare.

  • Permite vizibilitatea pentru grupuri: Pentru a limita ce utilizatori pot vedea câmpul, selectați unul sau mai multe grupuri de acces.

  • Interzice vizibilitatea pentru grupuri: Pentru a împiedica anumiți utilizatori să vadă câmpul, selectați unul sau mai multe grupuri de acces.

Proprietăți pentru câmpurile Dată & Oră

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.

  • Avertisment pentru date viitoare: Activează această proprietate pentru a afișa o pictogramă de avertizare dacă este selectată o dată viitoare.

  • Date format: By default the date will be shown as Apr 2, 2025, 08:05 AM. Enable this property to show the date in the format 4/2/2025 08:05:00. The numeric mode is the format set on the current language. In this mode the seconds are always shown.

  • Show date: This property is enabled by default for Date & Time fields. Disable this property to show only the time.

  • Afișează ora: Această proprietate este activată implicit pentru câmpurile Dată & Oră. Pe un câmp doar pentru citire, dezactivează proprietatea pentru a afișa doar data. Acest lucru poate menține o vizualizare de listă mai aerisită, de exemplu.

  • Show seconds: This property is disabled by default for Date & Time fields. Enable the property to show the seconds.

  • Interval de timp: Introdu o valoare pentru a determina intervalele de minute afișate în selectorul de timp. De exemplu, introdu 15 pentru a permite intervale de un sfert de oră. Valoarea implicită este setată la 5 minute.

  • Cea mai devreme dată acceptată: Introdu cea mai devreme dată care poate fi selectată în selectorul de date în format ISO, adică YYYY-MM-DD. Dacă data curentă este întotdeauna cea mai devreme dată acceptată, introdu today. În selectorul de date, datele anterioare celei mai devreme date acceptate sunt estompate.

  • Cea mai târzie dată acceptată: Introdu cea mai târzie dată care poate fi selectată în selectorul de date în format ISO, adică YYYY-MM-DD. Dacă data curentă este întotdeauna cea mai târzie dată acceptată, introdu today. În selectorul de date, datele ulterioare celei mai târzii date acceptate sunt estompate.

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.

    Sfat

    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.

Notă

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.

Important

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.

Sfat

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