mirror of
https://github.com/odoo/documentation.git
synced 2026-01-04 10:46:04 +07:00
4262 lines
151 KiB
Plaintext
4262 lines
151 KiB
Plaintext
# SOME DESCRIPTIVE TITLE.
|
||
# Copyright (C) Odoo S.A.
|
||
# This file is distributed under the same license as the Odoo package.
|
||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||
#
|
||
# Translators:
|
||
# Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 2025
|
||
# Wil Odoo, 2025
|
||
# Jessica Jakara, 2025
|
||
#
|
||
#, fuzzy
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: Odoo 18.0\n"
|
||
"Report-Msgid-Bugs-To: \n"
|
||
"POT-Creation-Date: 2025-08-18 08:33+0000\n"
|
||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||
"Last-Translator: Jessica Jakara, 2025\n"
|
||
"Language-Team: Finnish (https://app.transifex.com/odoo/teams/41243/fi/)\n"
|
||
"Language: fi\n"
|
||
"MIME-Version: 1.0\n"
|
||
"Content-Type: text/plain; charset=UTF-8\n"
|
||
"Content-Transfer-Encoding: 8bit\n"
|
||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||
|
||
#: ../../content/applications/studio.rst:6
|
||
msgid "Studio"
|
||
msgstr "Studio"
|
||
|
||
#: ../../content/applications/studio.rst:18
|
||
msgid ""
|
||
"**Odoo Studio** is a toolbox used to customize Odoo without coding "
|
||
"knowledge. For example, in any app, add or modify:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:21
|
||
msgid ":doc:`Fields <studio/fields>`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:22
|
||
msgid ":doc:`Views <studio/views>`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:23
|
||
msgid ":doc:`Models <studio/models_modules_apps>`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:24
|
||
msgid ":doc:`Automation rules <studio/automated_actions>`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:25
|
||
msgid ":doc:`Webhooks <studio/automated_actions/webhooks>`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:26
|
||
msgid ":doc:`PDF reports <studio/pdf_reports>`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:27
|
||
msgid ":doc:`Approval rules <studio/approval_rules>`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:28
|
||
msgid "Security rules"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:30
|
||
msgid ""
|
||
"Learn how to :doc:`build an app from scratch <studio/models_modules_apps>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:34
|
||
msgid ""
|
||
"To access **Studio**, navigate to the app and model you want to modify, then "
|
||
"click the :icon:`oi-studio` (:guilabel:`Toggle Studio`) icon. Alternatively, "
|
||
"with any app open, click the :icon:`oi-studio` (:guilabel:`Toggle Studio`) "
|
||
"icon and navigate to the relevant app and model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:38
|
||
msgid "To close **Studio**, click :guilabel:`Close` in the upper-right corner."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:41
|
||
msgid ""
|
||
"Installing **Studio** in an Odoo database on the *Standard* pricing plan "
|
||
"automatically triggers an upsell to the *Custom* pricing plan."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:44
|
||
msgid ""
|
||
"**For yearly or multi-year contracts**: An upsell order is created with a 30-"
|
||
"day limit."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:45
|
||
msgid ""
|
||
"**For monthly contracts**: The subscription automatically switches to the "
|
||
"*Custom* plan and the new rate is applied when the next bill is generated."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:48
|
||
msgid ""
|
||
"For more information, refer to `Odoo's pricing page <https://www.odoo.com/"
|
||
"pricing-plan>`_ or contact your account manager."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio.rst:52
|
||
msgid "`Odoo Tutorials: Studio <https://www.odoo.com/slides/studio-31>`_"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:3
|
||
msgid "Approval rules"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:5
|
||
msgid ""
|
||
"Approval rules are used to automate approval processes for actions. They "
|
||
"allow you to define the criteria for when an approval is required before an "
|
||
"action can be performed using a button."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:9
|
||
msgid "Configuration"
|
||
msgstr "Asetukset"
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:11
|
||
msgid "To add approval rules with Studio, proceed as follows:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:13
|
||
msgid ""
|
||
":ref:`Open Studio <studio/access>` and switch to the required :doc:`view "
|
||
"<views>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:14
|
||
msgid "Select the button to which the rule should be applied."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:15
|
||
msgid ""
|
||
"Click :icon:`fa-plus` :guilabel:`Add an approval step` in the :icon:`fa-"
|
||
"server` :guilabel:`Properties` tab."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:17
|
||
msgid ""
|
||
"Specify which users are responsible for approving the action by using one of "
|
||
"the following fields or both:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:20
|
||
msgid ":guilabel:`Approvers` to specify one or several users;"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:21
|
||
msgid ":guilabel:`Approver Group` to specify one user group."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:24
|
||
msgid ""
|
||
"An activity is created for all users set as :guilabel:`Approvers` when their "
|
||
"approval is requested."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:27
|
||
msgid ""
|
||
"(*optional*) Select the :guilabel:`Users to Notify` via an internal note "
|
||
"when the action is approved or rejected."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:29
|
||
msgid ""
|
||
"(*optional*) Add a :guilabel:`Description` to be displayed on the button."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:32
|
||
msgid ""
|
||
"You can specify under which condition(s) an approval step should be applied "
|
||
"by clicking the :icon:`fa-filter` (:guilabel:`filter`) icon next to "
|
||
"the :guilabel:`Approvers` field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:35
|
||
msgid ""
|
||
"To add another approval step, click :icon:`fa-plus` :guilabel:`Add an "
|
||
"approval step`. When there are multiple steps, you can:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:38
|
||
msgid ""
|
||
"Enable :guilabel:`Exclusive Approval` on any step so that a user who "
|
||
"approves a step cannot approve another step for the same record."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:40
|
||
msgid ""
|
||
"Change the :guilabel:`Approval Order` of the steps by selecting a number, "
|
||
"`1` being the first step, `2` the second step, and so on. A user responsible "
|
||
"for a higher step can approve/reject previous step(s) "
|
||
"unless :guilabel:`Exclusive Approval` is selected."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:44
|
||
msgid ""
|
||
"Click the :icon:`fa-trash` (:guilabel:`trash`) icon next to "
|
||
"the :guilabel:`Approvers` field to remove an approval step."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:48
|
||
msgid ""
|
||
"You can create :ref:`user groups <access-rights/groups>` specifically for "
|
||
"approvals."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:53
|
||
msgid "Use"
|
||
msgstr "Käytä"
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:55
|
||
msgid ""
|
||
"Once an approval rule has been defined for a button, a **user avatar** icon "
|
||
"is displayed next to the button's label for each approval step. Clicking an "
|
||
"icon reveals the step(s)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:-1
|
||
msgid "Confirm button with two approval steps"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:62
|
||
msgid ""
|
||
"If an unauthorized user clicks the button, an error message is displayed and "
|
||
"an activity is created for the users specified in the :guilabel:`Approvers` "
|
||
"field, if any."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:65
|
||
msgid "Authorized users can:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:67
|
||
msgid ""
|
||
"Perform the action directly by clicking the button if it is the last/only "
|
||
"approval step."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:68
|
||
msgid ""
|
||
"Approve the action and let another user perform it - or move it to the next "
|
||
"approval step - by clicking the **user avatar** icon next to the button's "
|
||
"label, then clicking the :icon:`fa-check` (:guilabel:`approve`)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:71
|
||
msgid ""
|
||
"Reject the action by clicking the **user avatar** icon next to the button's "
|
||
"label and then the :icon:`fa-times` (:guilabel:`reject`) button."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:73
|
||
msgid ""
|
||
"(only for users selected under the :guilabel:`Approvers` field) Delegate "
|
||
"their approval rights to one or several users for **all records** by:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:76
|
||
msgid ""
|
||
"Clicking the :icon:`oi-view-kanban` (:guilabel:`kanban view`) icon and "
|
||
"then :guilabel:`Delegate`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:78
|
||
msgid ""
|
||
"Selecting one or several :guilabel:`Approvers`, :guilabel:`Until` when they "
|
||
"will have approval rights (forever if left empty), and, optionally, the "
|
||
"user(s) who should be notified via an internal note using "
|
||
"the :guilabel:`Notify to` field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:0
|
||
msgid "Delegate to dialog"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:86
|
||
msgid ""
|
||
"A user who approves/rejects an action can revoke their decision by clicking "
|
||
"the **user avatar** icon next to the button's label and then the :icon:`fa-"
|
||
"undo` (:guilabel:`revoke`) button. They can also revoke the decision of "
|
||
"other users for steps with a lower :guilabel:`Approval Order` "
|
||
"unless :guilabel:`Exclusive Approval` is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/approval_rules.rst:90
|
||
msgid ""
|
||
"Approvals are tracked in the record's chatter. An approval entry is also "
|
||
"created every time a Studio approval-related action is performed. To access "
|
||
"approval entries, :doc:`activate the developer mode </applications/general/"
|
||
"developer_mode>` and go to :menuselection:`Settings --> Technical --> Studio "
|
||
"Approval Entries`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:5
|
||
msgid "Automation rules"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:7
|
||
msgid ""
|
||
"Automation rules allow the execution of one or more predefined actions in "
|
||
"response to a specific trigger, e.g., create an activity when a field is set "
|
||
"to a specific value, or archive a record 7 days after its last update."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:11
|
||
msgid ""
|
||
"When creating an automation rule, :ref:`domain filters <studio/automated-"
|
||
"actions/conditions>` allow you to add conditions that must be met for the "
|
||
"automation rule to run, e.g., the opportunity must be assigned to a specific "
|
||
"salesperson, or the state of the record must not be :guilabel:`Draft`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:16
|
||
msgid "To create an automation rule with **Odoo Studio**, proceed as follows:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:18
|
||
msgid ""
|
||
":ref:`Open Studio <studio/access>` and click :guilabel:`Automations`, "
|
||
"then :guilabel:`New`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:19
|
||
msgid ""
|
||
"Give the automation rule a clear, meaningful name that identifies its "
|
||
"purpose."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:20
|
||
msgid ""
|
||
"Select the :ref:`trigger <studio/automated-actions/trigger>` and, if "
|
||
"necessary, fill in the fields that appear on the screen based on the chosen "
|
||
"trigger."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:22
|
||
msgid ""
|
||
"Click :guilabel:`Add an action`, then select the :guilabel:`Type` "
|
||
"of :ref:`action <studio/automated-actions/action>` and fill in the fields "
|
||
"that appear on the screen based on your selected action."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:25
|
||
msgid "Click :guilabel:`Save & Close` or :guilabel:`Save & New`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:29
|
||
msgid ""
|
||
"To ensure follow-up on less satisfied clients, this automation rule creates "
|
||
"an activity 3 months after a sales order is created for clients with a "
|
||
"satisfaction percentage lower than 30%."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:0
|
||
msgid "Example of an automation rule on the Subscription model"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:37
|
||
msgid ""
|
||
"Use the :guilabel:`Notes` tab to document the purpose and functioning of "
|
||
"automation rules. This makes rules easier to maintain and facilitates "
|
||
"collaboration between users."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:39
|
||
msgid ""
|
||
"To modify the :doc:`model <models_modules_apps>` targeted by the automation "
|
||
"rule, switch models before clicking :guilabel:`Automations` in Studio, "
|
||
"or :ref:`activate developer mode <developer-mode>`, create or edit an "
|
||
"automation rule, and select the :guilabel:`Model` in "
|
||
"the :guilabel:`Automation Rules` form."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:43
|
||
msgid ""
|
||
"Automation rules can be created from any kanban stage by clicking "
|
||
"the :icon:`fa-cog` :guilabel:`(Settings)` icon that appears when hovering "
|
||
"over the kanban stage name, then selecting :guilabel:`Automations`. In this "
|
||
"case, the :guilabel:`Trigger` is set to :guilabel:`Stage is set to` by "
|
||
"default, but it can be changed if necessary."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:0
|
||
msgid "Create automations from a kanban stage"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:54
|
||
msgid "Trigger"
|
||
msgstr "Liipaisin"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:56
|
||
msgid ""
|
||
"The :guilabel:`Trigger` is used to define what kind of event needs to occur "
|
||
"for the automation rule to run. The available triggers depend on "
|
||
"the :doc:`model <models_modules_apps>`. Five trigger categories are "
|
||
"available overall:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:60
|
||
msgid ":ref:`studio/automated-actions/trigger-values-updated`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:61
|
||
msgid ":ref:`studio/automated-actions/trigger-email-events`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:62
|
||
msgid ":ref:`studio/automated-actions/trigger-timing-conditions`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:63
|
||
msgid ":ref:`studio/automated-actions/trigger-custom`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:64
|
||
msgid ":ref:`studio/automated-actions/trigger-external`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:69
|
||
msgid "Adding conditions"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:71
|
||
msgid ""
|
||
"Domain filters allow you to determine the records an automation rule should "
|
||
"target or exclude. Efficient filtering enhances overall performance as it "
|
||
"avoids unnecessary processing on records that are not impacted by the rule."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:76
|
||
msgid ""
|
||
":ref:`Activate developer mode <developer-mode>` before creating an "
|
||
"automation rule to have the most flexibility in adding domain filters."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:79
|
||
msgid ""
|
||
"Depending on the trigger chosen, it is possible to define one or more "
|
||
"conditions a record must meet *before* and/or *after* a trigger occurs."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:82
|
||
msgid ""
|
||
"The :guilabel:`Before Update Domain` defines the conditions a record must "
|
||
"meet *before* the trigger event occurs, e.g., the record must have `Type = "
|
||
"Customer Invoice` and `Status = Posted`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:85
|
||
msgid ""
|
||
"With :ref:`developer mode activated <developer-mode>`, click :guilabel:`Edit "
|
||
"Domain`, if available, then :guilabel:`New Rule`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:88
|
||
msgid ""
|
||
":guilabel:`Extra Conditions`, or in some cases :guilabel:`Apply on` filters, "
|
||
"define the conditions a record must meet *after* the trigger event occurs, "
|
||
"e.g., the customer invoice must have `Payment Status = Partially Paid`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:92
|
||
msgid ""
|
||
"With :ref:`developer mode activated <developer-mode>` if needed, "
|
||
"click :guilabel:`Add conditions` or :guilabel:`Edit Domain`, as relevant, "
|
||
"then :guilabel:`New Rule`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:95
|
||
msgid ""
|
||
"When a :ref:`trigger <studio/automated-actions/trigger>` occurs, e.g., the "
|
||
"payment status of a posted customer invoice is updated, the automation rule "
|
||
"checks the defined conditions and only executes the :ref:`action <studio/"
|
||
"automated-actions/action>` if the record matches those conditions."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:100
|
||
msgid ""
|
||
"If the automated action should be executed when an email address is set for "
|
||
"the first time (in contrast to modifying an email address) on an existing "
|
||
"contact that is an individual rather than a company, use `Email is not set` "
|
||
"and `Is a Company is not set` as the :guilabel:`Before Update Domain` and "
|
||
"`Email is set` as the :guilabel:`Apply on` domain."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:0
|
||
msgid "Example of a trigger with a Before Update Domain"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:109
|
||
msgid ""
|
||
"The :guilabel:`Before Update Domain` is not checked upon the creation of a "
|
||
"record."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:114
|
||
msgid "Values Updated"
|
||
msgstr "Arvot on päivitetty"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:116
|
||
msgid ""
|
||
"Trigger automated actions when specific changes happen in the database. The "
|
||
"triggers available in this category depend on the model and are based on "
|
||
"common changes, such as adding a specific tag (e.g., to a task) or setting a "
|
||
"field's value (e.g., setting the :guilabel:`User` field)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:120
|
||
msgid "Select the trigger, then select a value if required."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:125
|
||
msgid "Email Events"
|
||
msgstr "Sähköpostitapahtumat"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:127
|
||
msgid "Trigger automated actions upon receiving or sending emails."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:132
|
||
msgid "Timing Conditions"
|
||
msgstr "Ajoitusehdot"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:134
|
||
msgid ""
|
||
"Trigger automated actions at a point in time relative to a date field or to "
|
||
"the creation or update of a record. The following triggers are available:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:137
|
||
msgid ""
|
||
":guilabel:`Based on date field`: The action is triggered a defined period of "
|
||
"time before or after the date of the selected date field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:139
|
||
msgid ""
|
||
":guilabel:`After creation`: The action is triggered a defined period of time "
|
||
"after a record is created and saved."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:141
|
||
msgid ""
|
||
":guilabel:`After last update`: The action is triggered a defined period of "
|
||
"time after an existing record is edited and saved."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:144
|
||
msgid "You can then define:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:146
|
||
msgid ""
|
||
"a :guilabel:`Delay`: Specify the number of minutes, hours, days, or months. "
|
||
"To have an action executed before the trigger date, specify a negative "
|
||
"number. If you selected the :guilabel:`Based on date field` trigger, you "
|
||
"must also select the date field to be used to determine the delay."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:151
|
||
msgid ""
|
||
"By default, the scheduler checks for time-triggered automation rules every "
|
||
"240 minutes, or 4 hours. This frequency is generally sufficient for delays "
|
||
"such as 3 months after the order date or 7 days after the last update."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:155
|
||
msgid ""
|
||
"For delays of less than the equivalent of 2400 minutes, or 40 hours, the "
|
||
"system recalculates the frequency of this check to ensure that more granular "
|
||
"delays, e.g., 1 hour before the event start date and time, or 30 minutes "
|
||
"after creation, can be respected as closely as possible."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:159
|
||
msgid ""
|
||
"An on-screen message indicates the possible delay after the scheduled "
|
||
"triggering of the rule."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:0
|
||
msgid "Message about possible delay after scheduled execution"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:164
|
||
msgid ""
|
||
"To view or manually edit the frequency of the scheduler, "
|
||
"with :ref:`developer mode activated <developer-mode>`, go "
|
||
"to :menuselection:`Settings --> Technical --> Scheduled Actions` to see all "
|
||
"scheduled actions for your database."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:168
|
||
msgid ""
|
||
"Enter `Automation` in the search bar, then, in the list of results, "
|
||
"click :guilabel:`Automation Rules: check and execute`. If desired, update "
|
||
"the value of the :guilabel:`Execute Every` field. Click :guilabel:`Run "
|
||
"Manually` at any time to manually trigger this scheduled action."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:172
|
||
msgid ""
|
||
":guilabel:`Extra Conditions`: Click :guilabel:`Add condition`, then specify "
|
||
"the conditions to be met for the automation rule to run. "
|
||
"Click :guilabel:`New Rule` to add another condition."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:175
|
||
msgid ""
|
||
"The action is executed when the delay is reached and the conditions are met."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:178
|
||
msgid ""
|
||
"To send a reminder email 30 minutes *before* the start of a calendar event, "
|
||
"select :guilabel:`Start (Calendar Event)` as the date field for "
|
||
"the :guilabel:`Trigger` and set the :guilabel:`Delay` to "
|
||
"`-30` :guilabel:`Minutes`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:0
|
||
#: ../../content/applications/studio/automated_actions.rst:-1
|
||
msgid "Example of a Based on date field trigger"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:188
|
||
msgid "Custom"
|
||
msgstr "Mukautettu"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:190
|
||
msgid "Trigger automated actions:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:192
|
||
msgid ":guilabel:`On save`: when a record is saved."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:193
|
||
msgid ":guilabel:`On deletion`: when a record is deleted."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:194
|
||
msgid ""
|
||
":guilabel:`On UI change`: when a field's value is changed on the :ref:`Form "
|
||
"view <studio/views/general/form>`, even before the record is saved."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:197
|
||
msgid ""
|
||
"For the :guilabel:`On save` and :guilabel:`On UI change` triggers, you "
|
||
"**must** then select the field(s) to be used to trigger the automation rule "
|
||
"in the :guilabel:`When updating` field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:201
|
||
msgid ""
|
||
"If no field is selected in the :guilabel:`When updating` field, the "
|
||
"automated action may be executed multiple times per record."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:204
|
||
msgid ""
|
||
"Optionally, you can also define additional conditions to be met to trigger "
|
||
"the automation rule in the :guilabel:`Apply on` field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:208
|
||
msgid ""
|
||
"To trigger an automated action *upon* the creation of a record, e.g., when a "
|
||
"new contact is created, select the :ref:`On save <studio/automated-actions/"
|
||
"trigger-custom>` trigger and use `ID is not set` as the :guilabel:`Before "
|
||
"Update Domain` and `ID is set` as the :guilabel:`Apply on` domain. Make sure "
|
||
"the correct field is selected in the :guilabel:`When updating` field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:214
|
||
msgid ""
|
||
"When a new contact is saved, it is automatically assigned a database ID, "
|
||
"thereby triggering the automation rule."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:0
|
||
msgid "Example of a triggering an action upon creation of a record"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:221
|
||
msgid ""
|
||
"The :guilabel:`On UI change` trigger can only be used with the :ref:`Execute "
|
||
"Code <studio/automated-actions/action-execute-code>` action and only works "
|
||
"when a modification is made manually. The action is not executed if the "
|
||
"field is changed through another automation rule."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:228
|
||
msgid "External"
|
||
msgstr "Ulkoinen"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:230
|
||
msgid ""
|
||
"Trigger automated actions based on a specific event in an external system or "
|
||
"application using a :doc:`webhook <automated_actions/webhooks>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:233
|
||
msgid ""
|
||
"After the webhook is configured in Odoo, where the webhook's URL is "
|
||
"generated and the target record defined, it needs to be implemented in the "
|
||
"external system."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:237
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:6
|
||
msgid ""
|
||
"It is *highly recommended* to consult with a developer, solution architect, "
|
||
"or another technical role when deciding to use webhooks and throughout the "
|
||
"implementation process. If not properly configured, webhooks may disrupt the "
|
||
"Odoo database and can take time to revert."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:245
|
||
msgid ""
|
||
"It is also possible to set up an automated action that :ref:`sends data to a "
|
||
"external system's webhook <studio/automated-actions/action-webhook>` when an "
|
||
"event occurs in your Odoo database."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:249
|
||
msgid ":doc:`Webhook documentation <automated_actions/webhooks>`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:254
|
||
msgid "Actions"
|
||
msgstr "Toiminnot"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:256
|
||
msgid ""
|
||
"Once you have defined the automation rule's :ref:`trigger <studio/automated-"
|
||
"actions/trigger>`, click :guilabel:`Add an action` in the :guilabel:`Actions "
|
||
"To Do` tab to define the action to be executed."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:260
|
||
msgid ""
|
||
"You can define multiple actions for the same automation rule. By default, "
|
||
"actions are executed in the order in which they were defined."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:263
|
||
msgid ""
|
||
"This means, for example, that if you define an :guilabel:`Update record` "
|
||
"action and then a :guilabel:`Send email` action where the email references "
|
||
"the field that was updated, the email uses the updated values. However, if "
|
||
"the :guilabel:`Send email` action is defined before the :guilabel:`Update "
|
||
"record` action, the email uses the values set *before* the record is updated."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:268
|
||
msgid ""
|
||
"To change the order of defined actions, click the :icon:`oi-"
|
||
"draggable` :guilabel:`(drag handle)` icon beside an action and drag it to "
|
||
"the desired position."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:274
|
||
msgid "Update Record"
|
||
msgstr "Päivitä tietue"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:276
|
||
msgid ""
|
||
"This action updates one of the record's (related) fields. Click "
|
||
"the :guilabel:`Update` field and, in the list that opens, select or search "
|
||
"for the field to be updated. If needed, click the :icon:`oi-chevron-"
|
||
"right` :guilabel:`(right arrow)` next to the field name to access the list "
|
||
"of related fields."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:281
|
||
msgid ""
|
||
"If you selected a :ref:`many2many field <studio/fields/relational-fields-"
|
||
"many2many>`, choose whether the field must be updated "
|
||
"by :guilabel:`Adding`, :guilabel:`Removing`, or :guilabel:`Setting it to` "
|
||
"the selected value or by :guilabel:`Clearing it`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:286
|
||
msgid ""
|
||
"If you want the automated action to remove a tag from the customer record, "
|
||
"set the :guilabel:`Update` field to :guilabel:`Customer > Tags`, "
|
||
"select :guilabel:`by Removing`, then select the tag."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:0
|
||
msgid "Example of an Update Record action"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:294
|
||
msgid ""
|
||
"Alternatively, you can also set a record's field dynamically using Python "
|
||
"code. To do so, select :guilabel:`Compute` instead of :guilabel:`Update`, "
|
||
"then enter the code to be used for computing the field's value. For example, "
|
||
"if you want the automation rule to compute a custom :ref:`datetime field "
|
||
"<studio/fields/simple-fields-date-time>` when a task's priority is set to "
|
||
"`High` (by starring the task), you can define the "
|
||
"trigger :guilabel:`Priority is set to` to `High` and define "
|
||
"the :guilabel:`Update Record` action as follows:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:0
|
||
msgid "Compute a custom datetime field using a Python expression"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:307
|
||
msgid "Create Activity"
|
||
msgstr "Luo aktiviteetti"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:309
|
||
msgid ""
|
||
"This action is used to schedule a new activity linked to the record. Select "
|
||
"an :guilabel:`Activity Type`, enter a :guilabel:`Title` and description, "
|
||
"then specify when you want the activity to be scheduled in "
|
||
"the :guilabel:`Due Date In` field, and select a :guilabel:`User type`:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:313
|
||
msgid ""
|
||
"To always assign the activity to the same user, select :guilabel:`Specific "
|
||
"User`, then add the user in the :guilabel:`Responsible` field;"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:315
|
||
msgid ""
|
||
"To target a user linked to the record dynamically, select :guilabel:`Dynamic "
|
||
"User (based on record)` and change the :guilabel:`User Field` if necessary."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:319
|
||
msgid ""
|
||
"After a lead is turned into an opportunity, you want the automated action to "
|
||
"set up a call for the user responsible for the lead. To do so, set "
|
||
"the :guilabel:`Activity Type` to :guilabel:`Call` and the :guilabel:`User "
|
||
"Type` to :guilabel:`Dynamic User (based on record)`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:0
|
||
msgid "Example of a Create Activity action"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:329
|
||
msgid "Send Email and Send SMS"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:331
|
||
msgid ""
|
||
"These actions are used to send an email or a text message to a contact "
|
||
"linked to a specific record. To do so, select or create an :guilabel:`Email "
|
||
"Template` or an :guilabel:`SMS Template`, then, in the :guilabel:`Send Email "
|
||
"As` or :guilabel:`Send SMS As` field, choose how you want to send the email "
|
||
"or text message:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:336
|
||
msgid ""
|
||
":guilabel:`Email`: to send the message as an email to the recipients of "
|
||
"the :guilabel:`Email Template`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:338
|
||
msgid ""
|
||
":guilabel:`Message`: to post the message on the record and notify the "
|
||
"record's followers."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:339
|
||
msgid ""
|
||
":guilabel:`Note`: to send the message as an internal note visible to "
|
||
"internal users in the chatter."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:341
|
||
msgid ""
|
||
":guilabel:`SMS (without note)`: to send the message as a text message to the "
|
||
"recipients of the :guilabel:`SMS template`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:343
|
||
msgid ""
|
||
":guilabel:`SMS (with note)`: to send the message as a text message to the "
|
||
"recipients of the :guilabel:`SMS template` and post it as an internal note "
|
||
"in the chatter."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:345
|
||
msgid ""
|
||
":guilabel:`Note only`: to only post the message as an internal note in the "
|
||
"chatter."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:350
|
||
msgid "Send WhatsApp"
|
||
msgstr "Lähetä WhatsApp"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:353
|
||
msgid ""
|
||
"To automate the sending of WhatsApp messages, one or more :ref:`WhatsApp "
|
||
"templates <productivity/whatsapp/templates>` must be created."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:356
|
||
msgid ""
|
||
"This action is used to send a WhatsApp message to a contact linked to a "
|
||
"specific record. To do so, select the appropriate :guilabel:`WhatsApp "
|
||
"Template` from the dropdown menu."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:362
|
||
msgid "Add Followers and Remove Followers"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:364
|
||
msgid ""
|
||
"This action is used to subscribe/unsubscribe existing contacts to/from the "
|
||
"record."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:369
|
||
msgid "Create Record"
|
||
msgstr "Luo tietue"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:371
|
||
msgid "This action is used to create a new record on any model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:373
|
||
msgid ""
|
||
"Select the required model in the :guilabel:`Record to Create` field; it "
|
||
"contains the current model by default. Specify a :guilabel:`Name` for the "
|
||
"record, and then, if you want to create the record on another model, select "
|
||
"a field in the :guilabel:`Link Field` field to link the record that "
|
||
"triggered the creation of the new record."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:379
|
||
msgid ""
|
||
"The dropdown list related to the :guilabel:`Link Field` field only "
|
||
"contains :ref:`one2many fields <studio/fields/relational-fields-one2many>` "
|
||
"existing on the current model that are linked to a :ref:`many2one field "
|
||
"<studio/fields/relational-fields-many2one>` on the target model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:384
|
||
msgid ""
|
||
"You can create another automation rule with :ref:`studio/automated-actions/"
|
||
"action-update-record` actions to update the fields of the new record if "
|
||
"necessary. For example, you can use a :guilabel:`Create Record` action to "
|
||
"create a new project task and then assign it to a specific user using "
|
||
"an :guilabel:`Update Record` action."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:392
|
||
msgid "Execute Code"
|
||
msgstr "Suorita koodi"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:395
|
||
msgid ""
|
||
"For automation rules that require the execution of :ref:`custom code <studio/"
|
||
"automated-actions/action-execute-code>`, note that maintenance of custom "
|
||
"code is not included in the *Standard* or *Custom* pricing plans and "
|
||
"incurs :ref:`additional fees <charges_standard>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:400
|
||
msgid ""
|
||
"This action is used to execute Python code. You can write your code into "
|
||
"the :guilabel:`Code` tab using the following variables:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:403
|
||
msgid "`env`: environment on which the action is triggered"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:404
|
||
msgid ""
|
||
"`model`: model of the record on which the action is triggered; is a void "
|
||
"recordset"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:405
|
||
msgid "`record`: record on which the action is triggered; may be void"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:406
|
||
msgid ""
|
||
"`records`: recordset of all records on which the action is triggered in "
|
||
"multi-mode; this may be left empty"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:408
|
||
msgid "`time`, `datetime`, `dateutil`, `timezone`: useful Python libraries"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:409
|
||
msgid ""
|
||
"`float_compare`: utility function to compare floats based on specific "
|
||
"precision"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:410
|
||
msgid ""
|
||
"`log(message, level='info')`: logging function to record debug information "
|
||
"in ir.logging table"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:412
|
||
msgid "`_logger.info(message)`: logger to emit messages in server logs"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:413
|
||
msgid "`UserError`: exception class for raising user-facing warning messages"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:414
|
||
msgid "`Command`: x2many commands namespace"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:415
|
||
msgid "`action = {...}`: to return an action"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:418
|
||
msgid ""
|
||
"The available variables are described both in the :guilabel:`Code` "
|
||
"and :guilabel:`Help` tabs."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:421
|
||
msgid ":doc:`Odoo's ORM capabilities <../../developer/reference/backend/orm>`"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:426
|
||
msgid "Send Webhook Notification"
|
||
msgstr "Lähetä Webhook-ilmoitus"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:428
|
||
msgid ""
|
||
"This action is used to send a `POST` API request with the values of the "
|
||
"selected :guilabel:`Fields` to the webhook URL specified in "
|
||
"the :guilabel:`URL` field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:431
|
||
msgid ""
|
||
"The :guilabel:`Sample Payload` provides a preview of the data included in "
|
||
"the request using a random record's data or dummy data if no record is "
|
||
"available."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:435
|
||
msgid ""
|
||
"It is also possible to set up an automated action that :doc:`uses a webhook "
|
||
"to receive data from an external system <automated_actions/webhooks>` when a "
|
||
"predefined event occurs in that system."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:441
|
||
msgid "Execute Existing Actions"
|
||
msgstr "Suorita olemassa oleva toiminto"
|
||
|
||
#: ../../content/applications/studio/automated_actions.rst:443
|
||
msgid ""
|
||
"The action is used to trigger multiple actions (linked to the current model) "
|
||
"at the same time. To do so, click on :guilabel:`Add a line`, then, in "
|
||
"the :guilabel:`Add: Child Actions` pop-up, select an existing action or "
|
||
"click :guilabel:`New` to create a new one."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:3
|
||
msgid "Webhooks"
|
||
msgstr "Webhookit"
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:10
|
||
msgid ""
|
||
"Webhooks, which can be created in **Odoo Studio**, allow you to automate an "
|
||
"action in your Odoo database when a specific event occurs in another, "
|
||
"external system."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:13
|
||
msgid ""
|
||
"In practice, this works as follows: when the event occurs in the external "
|
||
"system, a data file (the \"payload\") is sent to the Odoo webhook's URL via "
|
||
"a `POST` API request, and a predefined action is performed in your Odoo "
|
||
"database."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:17
|
||
msgid ""
|
||
"Unlike scheduled actions, which run at predefined intervals, or manual API "
|
||
"requests, which need to be explicitly invoked, webhooks enable real-time, "
|
||
"event-driven communication and automation. For example, you can set up a "
|
||
"webhook to have your Odoo inventory data updated automatically when a sales "
|
||
"order is confirmed in an external point-of-sale system."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:22
|
||
msgid ""
|
||
"Setting up a webhook in Odoo requires no coding when connecting two Odoo "
|
||
"databases, but :ref:`testing a webhook <studio/webhooks/test-webhook>` "
|
||
"requires an external tool. :ref:`Custom target records or actions <studio/"
|
||
"webhooks/webhook-example>` may require programming skills."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:28
|
||
msgid ""
|
||
"This article covers creating a webhook that *receives* data from an external "
|
||
"source. However, it is also possible to create an automated action "
|
||
"that :ref:`sends data to an external webhook <studio/automated-actions/"
|
||
"action-webhook>` when a change occurs in your Odoo database."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:35
|
||
msgid "Create a webhook in Odoo"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:38
|
||
msgid ""
|
||
"Before implementing a webhook in a live database, configure and test it "
|
||
"using a :ref:`duplicate database <odoo_online/database-management>` to "
|
||
"ensure the webhook performs as intended."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:42
|
||
msgid ""
|
||
":ref:`Activating developer mode <developer-mode>` before creating up a "
|
||
"webhook gives greater flexibility in selecting the :doc:`model <../"
|
||
"models_modules_apps>` the automation rule targets. It also allows you to "
|
||
"find the technical name of the model and fields, which may be needed to "
|
||
"configure the payload."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:47
|
||
msgid ""
|
||
"To find a model's technical name, with developer mode activated, hover over "
|
||
"the model name and then click :icon:`fa-arrow-right` :guilabel:`(Internal "
|
||
"link)`. The technical name can be found in the :guilabel:`Model` field. For "
|
||
"example, a sales order webhook uses the *Sales Order* model, but the "
|
||
"technical name `sale.order` is used in the payload."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:52
|
||
msgid "To create a webhook in **Studio**, proceed as follows:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:54
|
||
msgid ""
|
||
":ref:`Open Studio <studio/access>` and click :guilabel:`Webhooks`, "
|
||
"then :guilabel:`New`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:55
|
||
msgid "Give the webhook a clear, meaningful name that identifies its purpose."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:56
|
||
msgid ""
|
||
"If needed, and provided developer mode is activated, select the "
|
||
"appropriate :guilabel:`Model` from the dropdown. If developer mode is not "
|
||
"activated, the automation rule targets the current model by default."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:60
|
||
msgid ""
|
||
"The webhook's URL is automatically generated, but can be changed if needed "
|
||
"by clicking :guilabel:`Rotate Secret`. This is the URL that should be used "
|
||
"when implementing the webhook in the external system that will send updates "
|
||
"to the database."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:65
|
||
msgid ""
|
||
"The URL is **confidential** and should be treated with care. Sharing it "
|
||
"online or without caution can provide unintended access to the Odoo "
|
||
"database. If the URL is updated after the initial implementation, make sure "
|
||
"to update it in the external system."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:69
|
||
msgid ""
|
||
"If desired, enable :guilabel:`Log Calls` to track the history of API "
|
||
"requests made to the webhook's URL, e.g., for troubleshooting purposes."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:72
|
||
msgid ""
|
||
"If the system sending the webhook is not Odoo, adjust the :guilabel:`Target "
|
||
"Record` code to look for the JSON record included in the payload when the "
|
||
"API request is made to the webhook's URL. If the system sending the webhook "
|
||
"is an Odoo database, ensure that the `id` and `model` appear in the payload."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:77
|
||
msgid ""
|
||
"If the webhook is used to create records in the Odoo database, use "
|
||
"`model.browse(i)` or `model.search(i)` instead of the "
|
||
"default :guilabel:`Target Record` format."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:80
|
||
msgid ""
|
||
"Click :guilabel:`Add an action` in the :guilabel:`Actions To Do` tab to "
|
||
"define the :ref:`actions <studio/automated-actions/action>` to be executed."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:82
|
||
msgid ""
|
||
"Before implementing the webhook in the external system, :ref:`test <studio/"
|
||
"webhooks/test-webhook>` it to ensure it works as intended."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:86
|
||
msgid ""
|
||
"Webhooks can also be created via the :guilabel:`Automations` menu in "
|
||
"**Studio** by selecting the trigger :guilabel:`On webhook`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:88
|
||
msgid ""
|
||
"To access the history of API requests if :guilabel:`Log Calls` has been "
|
||
"enabled, click the :guilabel:`Logs` smart button at the top of "
|
||
"the :guilabel:`Automation rules` form."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:90
|
||
msgid ""
|
||
"If the purpose of the webhook is anything other than to update an existing "
|
||
"record, e.g., to create a new record, the :guilabel:`Execute Code` action "
|
||
"must be chosen."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:96
|
||
msgid "Test a webhook"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:98
|
||
msgid ""
|
||
"Testing a webhook requires a test payload and an external tool or system, "
|
||
"like `Postman <https://www.postman.com/>`_, to send the payload via a `POST` "
|
||
"API request. This section presents the steps to test a webhook in Postman."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:103
|
||
msgid ""
|
||
"See the :ref:`webhook use cases section <studio/webhooks/webhook-examples>` "
|
||
"for step-by-step explanations of how to test webhooks using test payloads."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:105
|
||
msgid ""
|
||
"To get specific help with testing a webhook with Postman, contact their "
|
||
"support team."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:107
|
||
msgid ""
|
||
"In Postman, create a new HTTP request and set its method to :guilabel:`POST`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:108
|
||
msgid ""
|
||
"Copy the webhook's URL from your Odoo database using the :icon:`fa-"
|
||
"link` :guilabel:`(link)` icon and paste it into the URL field in Postman."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:110
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:192
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:267
|
||
msgid "Click the :guilabel:`Body` tab and select :guilabel:`raw`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:111
|
||
msgid ""
|
||
"Set the file type to :guilabel:`JSON`, then copy the code from the test "
|
||
"payload and paste it into the code editor."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:113
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:206
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:281
|
||
msgid "Click :guilabel:`Send`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:117
|
||
msgid ""
|
||
"In the :guilabel:`Response` viewer at the bottom of the screen in Postman, "
|
||
"details, including a HTTP response code, indicate whether or not the webhook "
|
||
"is functioning correctly."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:120
|
||
msgid ""
|
||
"A `200 OK` or `status: ok` message indicates that the webhook is functioning "
|
||
"properly on Odoo's side. From here, implementation can begin with the other "
|
||
"system to automatically send the API requests to the Odoo webhook's URL."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:124
|
||
msgid ""
|
||
"If any other response is returned, the number associated with it helps to "
|
||
"identify the problem. For example, a `500 Internal Server Error` message "
|
||
"means that Odoo could not interpret the call properly. In this case, ensure "
|
||
"the fields found in the JSON file are properly mapped in the webhook's "
|
||
"configuration and in the system sending the test call."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:130
|
||
msgid ""
|
||
"Turning on call logging in the webhook's configuration in Odoo provides "
|
||
"error logs if the webhook is not functioning as intended."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:134
|
||
msgid "Implement a webhook in an external system"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:136
|
||
msgid ""
|
||
"When the webhook has been successfully created in Odoo and tested, implement "
|
||
"it in the system that sends data to the Odoo database, making sure the "
|
||
"`POST` API requests are sent to the webhook's URL."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:142
|
||
msgid "Webhook use cases"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:144
|
||
msgid ""
|
||
"Below are two examples of how to use webhooks in Odoo. A test payload is "
|
||
"provided for each example, and can be found in the section on testing the "
|
||
"webhook. `Postman <https://www.postman.com/>`_ is used to send the test "
|
||
"payload."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:149
|
||
msgid "Update a sales order's currency"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:151
|
||
msgid ""
|
||
"This webhook updates a sales order in the **Sales** app to `USD` when the "
|
||
"external system sends a `POST` API request to the webhook's URL that "
|
||
"includes that sales order number (which is identified by the payload's `id` "
|
||
"record)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:155
|
||
msgid ""
|
||
"This could be useful for subsidiaries outside the United States with a "
|
||
"mother company located inside the United States or during mergers when "
|
||
"consolidating data into one Odoo database."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:159
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:221
|
||
msgid "Create the webhook"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:161
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:223
|
||
msgid "To create this webhook, proceed as follows:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:163
|
||
msgid ""
|
||
"Open the **Sales** app, then :ref:`open Studio <studio/access>` and "
|
||
"click :guilabel:`Webhooks`. The *Sales Order* model is selected by default."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:165
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:227
|
||
msgid ""
|
||
"Click :guilabel:`New`. The :guilabel:`Trigger` is set to :guilabel:`On "
|
||
"webhook` by default."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:166
|
||
msgid ""
|
||
"Set the :guilabel:`Target Record` to "
|
||
"`model.env[payload.get('model')].browse(int(payload.get('id')))`, where:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:169
|
||
msgid ""
|
||
"`payload.get('model')` retrieves the value associated with the `model` key "
|
||
"in the payload, i.e., `sale.order`, which is the technical name of the "
|
||
"*Sales Order* model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:171
|
||
msgid ""
|
||
"`payload.get('id')` retrieves the value associated with the `id` key in the "
|
||
"payload, i.e., the number of the target sales order in your Odoo database "
|
||
"with the `S` and leading zeros removed."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:174
|
||
msgid ""
|
||
"`int` converts the retrieved id to an integer (i.e., a whole number) because "
|
||
"the method `browse()` can only be used with an integer."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:177
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:231
|
||
msgid "Click :guilabel:`Add an action`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:178
|
||
msgid "In the :guilabel:`Type` section, click :guilabel:`Update Record`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:179
|
||
msgid ""
|
||
"In the :guilabel:`Action details` section, select :guilabel:`Update`, choose "
|
||
"the field :guilabel:`Currency`, and select :guilabel:`USD`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:181
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:256
|
||
msgid "Click :guilabel:`Save & Close`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:184
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:259
|
||
msgid "Test the webhook"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:186
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:261
|
||
msgid "To test this webhook, proceed as follows:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:188
|
||
msgid ""
|
||
"With `Postman <https://www.postman.com/>`_ open, create a new HTTP request "
|
||
"and set its method to :guilabel:`POST`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:190
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:265
|
||
msgid ""
|
||
"Copy the URL of the Odoo webhook using the :icon:`fa-"
|
||
"link` :guilabel:`(link)` icon and paste it into the URL field in Postman."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:193
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:268
|
||
msgid ""
|
||
"Set the file type to :guilabel:`JSON`, then copy this code, i.e., the "
|
||
"payload, and paste it into the code editor:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:203
|
||
msgid ""
|
||
"In your Odoo database, choose a sales order to test the webhook on. In the "
|
||
"pasted code, replace `SALES ORDER NUMBER` with the sales order's number "
|
||
"without the `S` or any zeros before the number. For example, a sales order "
|
||
"with the number `S00007` should be entered as `7` in Postman."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:207
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:282
|
||
msgid ""
|
||
"Consult the :ref:`Response viewer <studio/webhooks/test-webhook-response>` "
|
||
"in Postman to determine whether or not the webhook is functioning properly. "
|
||
"If a message other than `200 OK` or `status: ok` is returned, the number "
|
||
"associated with the message helps to identify the problem."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:214
|
||
msgid "Create a new contact"
|
||
msgstr "Luo uusi yhteystieto"
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:216
|
||
msgid ""
|
||
"This webhook uses custom code to create a new contact in an Odoo database "
|
||
"when the external system sends a `POST` API request to the webhook's URL "
|
||
"that includes the contact's information. This could be helpful for "
|
||
"automatically creating new vendors or customers."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:225
|
||
msgid ""
|
||
"Open the **Contacts** app, then :ref:`open Studio <studio/access>` and "
|
||
"click :guilabel:`Webhooks`. The *Contact* model is selected by default."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:228
|
||
msgid ""
|
||
"Set the :guilabel:`Target Record` to `model.browse([2])`. This is "
|
||
"essentially a placeholder as the code in the automated action tells the "
|
||
"webhook what needs to be retrieved from the payload and in which model the "
|
||
"record needs to be created."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:232
|
||
msgid "In the :guilabel:`Type` section, click :guilabel:`Execute Code`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:233
|
||
msgid ""
|
||
"Copy this code and paste it into the code editor in the :guilabel:`Code` tab "
|
||
"of the :guilabel:`Action details` section:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:263
|
||
msgid ""
|
||
"In `Postman <https://www.postman.com/>`_, create a new HTTP request and set "
|
||
"its method to :guilabel:`POST`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/automated_actions/webhooks.rst:279
|
||
msgid ""
|
||
"In the pasted code, replace the `CONTACT NAME`, `CONTACTEMAIL@EMAIL.COM`, "
|
||
"and `CONTACT PHONE NUMBER` with a new contact's information."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:3
|
||
msgid "Fields and widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:5
|
||
msgid ""
|
||
"Fields structure the models of a database. If you picture a model as a table "
|
||
"or spreadsheet, fields are the columns where data is stored in the records "
|
||
"(i.e., the rows). Fields also define the type of data that is stored within "
|
||
"them. How the data is presented and formatted on the :abbr:`UI (User "
|
||
"Interface)` is defined by their widget."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:10
|
||
msgid ""
|
||
"From a technical point of view, there are 15 field types in Odoo. However, "
|
||
"you can choose from 20 fields in Studio, as some field types are available "
|
||
"more than once with a different default widget."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:14
|
||
msgid ""
|
||
":guilabel:`New Fields` can only be added to the :ref:`studio/views/general/"
|
||
"form` and :ref:`studio/views/multiple-records/list` views. On other views, "
|
||
"you can only add :guilabel:`Existing Fields` :dfn:`(fields already on the "
|
||
"model)`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:21
|
||
msgid "Simple fields"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:23
|
||
msgid "Simple fields contain basic values, such as text, numbers, files, etc."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:26
|
||
msgid ""
|
||
"Non-default widgets, when available, are presented as bullet points or sub-"
|
||
"headings below."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:31
|
||
msgid "Text (`char`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:33
|
||
msgid ""
|
||
"The :guilabel:`Text` field is used for short text containing any character. "
|
||
"One text line is displayed when filling out the field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:36
|
||
#: ../../content/applications/studio/fields.rst:258
|
||
msgid ""
|
||
":guilabel:`Badge`: displays the value inside a rounded shape, similar to a "
|
||
"tag. The value cannot be edited on the UI, but a default value can be set."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:38
|
||
#: ../../content/applications/studio/fields.rst:70
|
||
msgid ""
|
||
":guilabel:`Copy to Clipboard`: users can copy the value by clicking a button."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:39
|
||
msgid ":guilabel:`E-mail`: the value becomes a clickable *mailto* link."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:40
|
||
msgid ""
|
||
":guilabel:`Image`: displays an image using a URL. The value cannot be edited "
|
||
"manually, but a default value can be set."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:44
|
||
msgid ""
|
||
"This works differently than selecting the :ref:`Image field <studio/fields/"
|
||
"simple-fields-image>` directly, as the image is not stored in Odoo when "
|
||
"using a :guilabel:`Text` field with the :guilabel:`Image` widget. For "
|
||
"example, it can be useful if you want to save disk space."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:49
|
||
msgid ":guilabel:`Phone`: the value becomes a clickable *tel* link."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:52
|
||
msgid ""
|
||
"Tick :guilabel:`Enable SMS` to add an option to send an SMS directly from "
|
||
"Odoo next to the field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:55
|
||
msgid ":guilabel:`URL`: the value becomes a clickable URL."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of Text fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:65
|
||
msgid "Multiline Text (`text`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:67
|
||
msgid ""
|
||
"The :guilabel:`Multiline Text` field is used for longer text containing any "
|
||
"type of character. Two text lines are displayed on the UI when filling out "
|
||
"the field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of Multiline Text fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:80
|
||
msgid "Integer (`integer`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:82
|
||
msgid ""
|
||
"The :guilabel:`Integer` field is used for all integer numbers "
|
||
"(:dfn:`positive, negative, or zero, without a decimal`)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:85
|
||
msgid ""
|
||
":guilabel:`Percentage Pie`: displays the value inside a percentage circle, "
|
||
"usually for a computed value. The value cannot be edited on the UI, but a "
|
||
"default value can be set."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:87
|
||
#: ../../content/applications/studio/fields.rst:115
|
||
msgid ""
|
||
":guilabel:`Progress Bar`: displays the value next to a percentage bar, "
|
||
"usually for a computed value. The field cannot be edited manually, but a "
|
||
"default value can be set."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:89
|
||
msgid ""
|
||
":guilabel:`Handle`: displays a drag handle icon to order records manually "
|
||
"in :ref:`List view <studio/views/multiple-records/list>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of Integer fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:100
|
||
msgid "Decimal (`float`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:102
|
||
msgid ""
|
||
"The :guilabel:`Decimal` field is used for all decimal numbers "
|
||
"(:dfn:`positive, negative, or zero, with a decimal`)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:106
|
||
msgid ""
|
||
"Decimal numbers are displayed with two decimals after the decimal point on "
|
||
"the UI, but they are stored in the database with more precision."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:109
|
||
msgid ""
|
||
":guilabel:`Monetary`: it is similar to using the :ref:`Monetary field "
|
||
"<studio/fields/simple-fields-monetary>`. It is recommended to use the latter "
|
||
"as it offers more functionalities."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:112
|
||
msgid ""
|
||
":guilabel:`Percentage`: displays a percent character `%` after the value."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:113
|
||
msgid ""
|
||
":guilabel:`Percentage Pie`: displays the value inside a percentage circle, "
|
||
"usually for a computed value. The field cannot be edited manually, but a "
|
||
"default value can be set."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:117
|
||
msgid ""
|
||
":guilabel:`Time`: the value must follow the *hh:mm* format, with a maximum "
|
||
"of 59 minutes."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of Decimal fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:127
|
||
msgid "Monetary (`monetary`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:129
|
||
msgid "The :guilabel:`Monetary` field is used for all monetary values."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:132
|
||
msgid ""
|
||
"When you first add a :guilabel:`Monetary` field, you are prompted to add "
|
||
"a :guilabel:`Currency` field if none exists already on the model. Odoo "
|
||
"offers to add the :guilabel:`Currency` field for you. Once it is added, add "
|
||
"the :guilabel:`Monetary` field again."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Example of a Monetary field along with its Currency field"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:144
|
||
msgid "Html (`html`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:146
|
||
msgid ""
|
||
"The :guilabel:`Html` field is used to add text that can be edited using the "
|
||
"Odoo HTML editor."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:148
|
||
msgid ""
|
||
":guilabel:`Multiline Text`: disables the Odoo HTML editor to allow editing "
|
||
"raw HTML."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of Html fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:158
|
||
msgid "Date (`date`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:160
|
||
msgid "The :guilabel:`Date` field is used to select a date on a calendar."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:162
|
||
msgid ""
|
||
":guilabel:`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 :guilabel:`Read only`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of Date fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:173
|
||
msgid "Date & Time (`datetime`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:175
|
||
msgid ""
|
||
"The :guilabel:`Date & Time` field is used to select a date on a calendar and "
|
||
"a time on a clock. The user's current time is automatically used if no time "
|
||
"is set."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:180
|
||
msgid ""
|
||
"As well as :ref:`general properties <studio/fields/properties>`, "
|
||
"some :ref:`specific properties <studio/fields/properties-date-datetime>` are "
|
||
"available for :guilabel:`Date & Time` fields that have the :guilabel:`Date & "
|
||
"Time` or :guilabel:`Date Range` widget set."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:186
|
||
msgid "Date Range (`daterange`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:188
|
||
msgid ""
|
||
"The :guilabel:`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."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:193
|
||
msgid ""
|
||
"Adding a date range requires two fields: a :guilabel:`Date & Time` field "
|
||
"with the :guilabel:`Date Range` widget set and another field that is "
|
||
"selected as the start date *or* end date. This underlying field can be an "
|
||
"existing :ref:`Date <studio/fields/simple-fields-date>` or :guilabel:`Date & "
|
||
"Time` field, or one created specifically for this purpose."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:198
|
||
msgid "To add a date range:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:200
|
||
msgid ""
|
||
"Identify an existing :guilabel:`Date` or :guilabel:`Date & Time` field that "
|
||
"can be used as the underlying start/end date field, or add a new one. If the "
|
||
"date range:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:203
|
||
msgid ""
|
||
"has a mandatory start date and end date, this field can be either the start "
|
||
"date or end date; the outcome is the same."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:205
|
||
msgid ""
|
||
"allows an optional start or end date, this field is the start date or end "
|
||
"date, respectively."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:208
|
||
msgid ""
|
||
"To avoid displaying the same information twice, the underlying start/end "
|
||
"date field can be made invisible by enabling :guilabel:`Invisible` or "
|
||
"removed from the view by clicking :guilabel:`Remove from view`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:212
|
||
msgid ""
|
||
"Add a :guilabel:`Date & Time` field and set the :guilabel:`Widget` field "
|
||
"to :guilabel:`Date Range`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:214
|
||
msgid "Enter an appropriate :guilabel:`Label`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:215
|
||
msgid ""
|
||
"Select the underlying start/end date field from the :guilabel:`Start date "
|
||
"field` or :guilabel:`End date field` dropdown, as relevant."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:217
|
||
msgid ""
|
||
"If the date range should have a mandatory start and end date, "
|
||
"enable :guilabel:`Always range`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:218
|
||
msgid ""
|
||
"Update any other :ref:`general properties <studio/fields/properties>` or "
|
||
"specific :ref:`properties for Date & Time fields <studio/fields/properties-"
|
||
"date-datetime>` as needed, then click :guilabel:`Close` in the upper right "
|
||
"corner of the screen."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of Date & Time fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:228
|
||
msgid "Remaining Days (`remaining_days`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:230
|
||
msgid ""
|
||
"The :guilabel:`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 :guilabel:`Read only`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:237
|
||
msgid "Checkbox (`boolean`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:239
|
||
msgid ""
|
||
"The :guilabel:`Checkbox` field is used when a value should only be true or "
|
||
"false, indicated by checking or unchecking a checkbox."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:242
|
||
msgid ""
|
||
":guilabel:`Button`: displays a radio button. The widget works without "
|
||
"switching to the edit mode."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:243
|
||
msgid ""
|
||
":guilabel:`Toggle`: displays a toggle button. The widget works without "
|
||
"switching to the edit mode."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of Checkbox fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:253
|
||
msgid "Selection (`selection`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:255
|
||
msgid ""
|
||
"The :guilabel:`Selection` field is used when users should select a single "
|
||
"value from a group of predefined values."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:260
|
||
msgid ""
|
||
":guilabel:`Badges`: displays all selectable values simultaneously inside "
|
||
"rectangular shapes, organized horizontally."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:262
|
||
msgid ""
|
||
":guilabel:`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 :ref:`Priority field <studio/fields/simple-"
|
||
"fields-priority>`, although, for the latter, four priority values are "
|
||
"already predefined."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:266
|
||
#: ../../content/applications/studio/fields.rst:392
|
||
msgid ""
|
||
":guilabel:`Radio`: displays all selectable values at the same time as radio "
|
||
"buttons."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:269
|
||
msgid ""
|
||
"By default, radio buttons are organized vertically. "
|
||
"Enable :guilabel:`Display horizontally` to switch the way they are displayed."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:272
|
||
msgid ""
|
||
":guilabel:`Status Bar`: displays all selectable values at the same time as "
|
||
"an arrow progress bar."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:275
|
||
msgid ""
|
||
"By default, values on the status bar are selectable. "
|
||
"Disable :guilabel:`Clickable` to prevent the value being edited on the UI."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of Selection fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:286
|
||
msgid "Priority (`selection`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:288
|
||
msgid ""
|
||
"The :guilabel:`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 :ref:`Selection field <studio/fields/simple-fields-"
|
||
"selection>` with the :guilabel:`Priority` widget selected by default and "
|
||
"four priority values predefined. Consequently, "
|
||
"the :guilabel:`Badge`, :guilabel:`Badges`, :guilabel:`Radio`, "
|
||
"and :guilabel:`Selection` widgets have the same effects as described "
|
||
"under :ref:`Selection <studio/fields/simple-fields-selection>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:296
|
||
msgid ""
|
||
"To change the number of available stars by adding or removing values, "
|
||
"click :guilabel:`Edit Values`. Note that the first value is equal to 0 stars "
|
||
"(i.e., when no selection is made), so having four values results in a three-"
|
||
"star rating system, for example."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Example of a Priority field"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:308
|
||
msgid "File (`binary`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:310
|
||
msgid ""
|
||
"The :guilabel:`File` field is used to upload any type of file, or sign a "
|
||
"form (:guilabel:`Sign` widget)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:313
|
||
msgid ""
|
||
":guilabel:`Image`: users can upload an image file, which is then displayed "
|
||
"in :ref:`Form view <studio/views/general/form>`. This has the same effect as "
|
||
"using the :ref:`Image field <studio/fields/simple-fields-image>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:316
|
||
msgid ""
|
||
":guilabel:`PDF Viewer`: users can upload a PDF file, which can be then "
|
||
"browsed from the :ref:`Form view <studio/views/general/form>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:318
|
||
msgid ""
|
||
":guilabel:`Sign`: users can electronically sign the form. This has the same "
|
||
"effect as selecting the :ref:`Sign field <studio/fields/simple-fields-sign>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Examples of File fields with different widgets"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:329
|
||
msgid "Image (`binary`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:331
|
||
msgid ""
|
||
"The :guilabel:`Image` field is used to upload an image and display it "
|
||
"in :ref:`Form view <studio/views/general/form>`. This field type is "
|
||
"a :ref:`File field <studio/fields/simple-fields-file>` with "
|
||
"the :guilabel:`Image` widget selected by default. Consequently, "
|
||
"the :guilabel:`File`, :guilabel:`PDF Viewer`, and :guilabel:`Sign` widgets "
|
||
"have the same effects as described under :ref:`File <studio/fields/simple-"
|
||
"fields-file>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:338
|
||
msgid ""
|
||
"To change the display size of uploaded images, "
|
||
"select :guilabel:`Small`, :guilabel:`Medium`, or :guilabel:`Large` under "
|
||
"the :guilabel:`Size` option."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:344
|
||
msgid "Sign (`binary`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:346
|
||
msgid ""
|
||
"The :guilabel:`Sign` field is used to sign the form electronically. This "
|
||
"field type is a :ref:`File field <studio/fields/simple-fields-file>` with "
|
||
"the :guilabel:`Sign` widget selected by default. Consequently, "
|
||
"the :guilabel:`File`, :guilabel:`Image`, and :guilabel:`PDF Viewer` widgets "
|
||
"have the same effects as described under :ref:`File <studio/fields/simple-"
|
||
"fields-file>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:352
|
||
msgid ""
|
||
"To give users the :guilabel:`Auto` option when having to draw their "
|
||
"signature, select one of the available :guilabel:`Auto-complete with` fields "
|
||
"(:ref:`Text <studio/fields/simple-fields-text>`, :ref:`Many2One <studio/"
|
||
"fields/relational-fields-many2one>`, and :ref:`Related Field <studio/fields/"
|
||
"relational-fields-related-field>` on the model only). The signature is "
|
||
"automatically generated using the data from the selected field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:361
|
||
msgid "Relational fields"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:363
|
||
msgid ""
|
||
"Relational fields are used to link and display the data from records on "
|
||
"another model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:366
|
||
msgid ""
|
||
"Non-default widgets, when available, are presented as bullet points below."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:371
|
||
msgid "Many2One (`many2one`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:373
|
||
msgid ""
|
||
"The :guilabel:`Many2One` field is used to link another record (from another "
|
||
"model) to the record being edited. The record's name from the other model is "
|
||
"then displayed on the record being edited."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:377
|
||
msgid ""
|
||
"On the *Sales Order* model, the :guilabel:`Customer` field is "
|
||
"a :guilabel:`Many2One` field pointing at the *Contact* model. This allows "
|
||
"**many** sales orders to be linked to **one** contact (customer)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Diagram showing a many2one relationship"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:385
|
||
msgid ""
|
||
"To prevent users from creating a new record in the linked model, "
|
||
"tick :guilabel:`Disable creation`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:387
|
||
msgid ""
|
||
"To prevent users from opening records in a pop-up window, "
|
||
"tick :guilabel:`Disable opening`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:388
|
||
msgid ""
|
||
"To help users only select the right record, click on :guilabel:`Domain` to "
|
||
"create a filter."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:390
|
||
msgid ""
|
||
":guilabel:`Badge`: displays the value inside a rounded shape, similar to a "
|
||
"tag. The value cannot be edited on the UI."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:397
|
||
msgid "One2Many (`one2many`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:399
|
||
msgid ""
|
||
"The :guilabel:`One2Many` field is used to display the existing relations "
|
||
"between a record on the current model and multiple records from another "
|
||
"model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:403
|
||
msgid ""
|
||
"You could add a :guilabel:`One2Many` field on the *Contact* model to look at "
|
||
"**one** customer's **many** sales orders."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Diagram showing a one2many relationship"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:410
|
||
msgid ""
|
||
"To use a :guilabel:`One2Many` field, the two models must have been linked "
|
||
"already using a :ref:`Many2One field <studio/fields/relational-fields-"
|
||
"many2one>`. One2Many relations do not exist independently: a reverse-search "
|
||
"of existing Many2One relations is performed."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:417
|
||
msgid "Lines (`one2many`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:419
|
||
msgid ""
|
||
"The :guilabel:`Lines` field is used to create a table with rows and columns "
|
||
"(e.g., the lines of products on a sales order)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:423
|
||
msgid ""
|
||
"To modify the columns, click on the :guilabel:`Lines` field and "
|
||
"then :guilabel:`Edit List View`. To edit the form that pops up when a user "
|
||
"clicks on :guilabel:`Add a line`, click on :guilabel:`Edit Form View` "
|
||
"instead."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Example of a Lines field"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:435
|
||
msgid "Many2Many (`many2many`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:437
|
||
msgid ""
|
||
"The :guilabel:`Many2Many` field is used to link multiple records from "
|
||
"another model to multiple records on the current model. Many2Many fields can "
|
||
"use :guilabel:`Disable creation`, :guilabel:`Disable "
|
||
"opening`, :guilabel:`Domain`, just like :ref:`Many2One fields <studio/fields/"
|
||
"relational-fields-many2one>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:443
|
||
msgid ""
|
||
"On the *Task* model, the :guilabel:`Assignees` field is "
|
||
"a :guilabel:`Many2Many` field pointing at the *Contact* model. This allows a "
|
||
"single user to be assigned to **many** tasks and **many** users to be "
|
||
"assigned to a single task."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Diagram showing many2many relationships"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:450
|
||
msgid ""
|
||
":guilabel:`Checkboxes`: users can select several values using checkboxes."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:451
|
||
msgid ""
|
||
":guilabel:`Tags`: users can select several values appearing in rounded "
|
||
"shapes, also known as *tags*. This has the same effect as selecting "
|
||
"the :ref:`Tags field <studio/fields/relational-fields-tags>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:458
|
||
msgid "Tags (`many2many`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:460
|
||
msgid ""
|
||
"The :guilabel:`Tags` field is used to display several values from another "
|
||
"model appearing in rounded shapes, also known as *tags*. This field type is "
|
||
"a :ref:`Many2Many field <studio/fields/relational-fields-many2many>` with "
|
||
"the :guilabel:`Tags` widget selected by default. Consequently, "
|
||
"the :guilabel:`Checkboxes` and :guilabel:`Many2Many` widgets have the same "
|
||
"effects as described under :ref:`Many2Many <studio/fields/relational-fields-"
|
||
"many2many>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:467
|
||
msgid ""
|
||
"To display tags with different background colors, tick :guilabel:`Use "
|
||
"colors`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:0
|
||
msgid "Example of a Tags field"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:477
|
||
msgid "Related Field (`related`)"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:479
|
||
msgid ""
|
||
"A :guilabel:`Related Field` is not a relational field per se; no "
|
||
"relationship is created between models. It uses an existing relationship to "
|
||
"fetch and display information from another record."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:483
|
||
msgid ""
|
||
"To display the email address of a customer on the *Sales Order* model, use "
|
||
"the :guilabel:`Related Field` `partner_id.email` by "
|
||
"selecting :guilabel:`Customer` and then :guilabel:`Email`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:489
|
||
msgid "Properties"
|
||
msgstr "Ominaisuudet"
|
||
|
||
#: ../../content/applications/studio/fields.rst:492
|
||
msgid "General properties"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:494
|
||
msgid ""
|
||
":guilabel:`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."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:498
|
||
msgid ""
|
||
"The :guilabel:`Invisible` attribute also applies inside Studio. To view "
|
||
"hidden fields in Studio, click on a view's :guilabel:`View` tab and "
|
||
"enable :guilabel:`Show Invisible Elements`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:501
|
||
msgid ""
|
||
":guilabel:`Required`: Enable this property if a field should always be "
|
||
"completed by the user before being able to proceed."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:504
|
||
msgid ""
|
||
":guilabel:`Readonly`: Enable this property if users should not be able to "
|
||
"modify a field."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:507
|
||
msgid ""
|
||
"You can choose to enable :guilabel:`Invisible`, :guilabel:`Required` "
|
||
"and :guilabel:`Readonly` for specific records only by clicking "
|
||
"on :guilabel:`Conditional` and creating a filter."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:511
|
||
msgid ""
|
||
"On the *Form* view of the *Contact* model, the :guilabel:`Title` field only "
|
||
"appears when :guilabel:`Individual` is selected, as that field would not be "
|
||
"helpful for a :guilabel:`Company` contact."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:515
|
||
msgid ""
|
||
":guilabel:`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 :ref:`developer mode <developer-mode>` and edit the :guilabel:`Technical "
|
||
"Name`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:519
|
||
msgid ""
|
||
":guilabel:`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."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:523
|
||
msgid ""
|
||
":guilabel:`Widget`: To change the default appearance or functionality of a "
|
||
"field, select one of the available widgets."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:526
|
||
msgid ""
|
||
":guilabel:`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."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:529
|
||
msgid ""
|
||
":guilabel:`Default value`: To display a default value in a field when a "
|
||
"record is created, add a value."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:532
|
||
msgid ""
|
||
":guilabel:`Allow visibility to groups`: To limit which users can view the "
|
||
"field, select one or more user access :ref:`groups <access-rights/groups>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:534
|
||
msgid ""
|
||
":guilabel:`Forbid visibility to groups`: To prevent certain users from "
|
||
"seeing the field, select one or more user access :ref:`groups <access-rights/"
|
||
"groups>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:540
|
||
msgid "Properties for Date & Time fields"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:542
|
||
msgid ""
|
||
"For :guilabel:`Date & Time` fields that have the :guilabel:`Date & Time` "
|
||
"or :guilabel:`Date Range` widget set, some specific properties are available:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:545
|
||
msgid ""
|
||
":guilabel:`Minimal precision`: Determine the smallest date unit that must be "
|
||
"selected in the date selector. The possible values "
|
||
"are :guilabel:`Day`, :guilabel:`Month`, :guilabel:`Year` "
|
||
"or :guilabel:`Decade`. If no value is selected, the user must select a day "
|
||
"in the date selector."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:548
|
||
msgid ""
|
||
":guilabel:`Maximal precision`: Determine the largest date unit that can be "
|
||
"used to navigate the date selector. The possible values "
|
||
"are :guilabel:`Day`, :guilabel:`Month`, :guilabel:`Year` "
|
||
"or :guilabel:`Decade`. If no value is selected, the user can navigate the "
|
||
"date selector by decade."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:551
|
||
msgid ""
|
||
":guilabel:`Warning for future dates`: Enable this property to display a "
|
||
"warning icon if a future date is selected."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:553
|
||
msgid ""
|
||
":guilabel:`Condensed display`: Enable this property to show days, months and "
|
||
"hours with no leading zeros, e.g., `4/2/2025 8:05:00` instead of `04/02/2025 "
|
||
"08:05:00`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:555
|
||
msgid ""
|
||
":guilabel:`Show time`: This property is enabled by default "
|
||
"for :guilabel:`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."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:558
|
||
msgid ""
|
||
":guilabel:`Show seconds`: This property is enabled by default "
|
||
"for :guilabel:`Date & Time` fields. Disable the property to show only hours "
|
||
"and minutes."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:560
|
||
msgid ""
|
||
":guilabel:`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."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:563
|
||
msgid ""
|
||
":guilabel:`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."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/fields.rst:567
|
||
msgid ""
|
||
":guilabel:`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."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:3
|
||
msgid "Models, modules, and apps"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:5
|
||
msgid ""
|
||
"Models determine the logical structure of a database and how data is stored, "
|
||
"organized, and manipulated. In other words, a model is a table of "
|
||
"information that can be linked with other tables. A model usually represents "
|
||
"a business concept, such as a *sales order*, *contact*, or *product*."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:9
|
||
msgid ""
|
||
"Modules and apps contain various elements, such as models, views, data "
|
||
"files, web controllers, and static web data."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:13
|
||
msgid ""
|
||
"All apps are modules. Larger, standalone modules are typically referred to "
|
||
"as apps, whereas other modules usually serve as add-ons to said apps."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:19
|
||
msgid "Suggested features"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:21
|
||
msgid ""
|
||
"When you create a new model or app with Studio, you can choose to add up to "
|
||
"14 features to speed up the creation process. These features bundle fields, "
|
||
"default settings, and views that are usually used together to provide some "
|
||
"standard functionality. Most of these features can be added later on, but "
|
||
"adding them from the start makes the model creation process much easier. "
|
||
"Furthermore, these features interact together in some cases to increase "
|
||
"their usefulness."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:28
|
||
msgid ""
|
||
"Creating a model with the :ref:`studio/models-modules-apps/suggested-"
|
||
"features/picture` and :ref:`studio/models-modules-apps/suggested-features/"
|
||
"pipeline-stages` features enabled adds the image in the card layout of "
|
||
"the :ref:`Kanban view <studio/views/multiple-records/kanban>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:0
|
||
msgid ""
|
||
"Combination of the Picture and Pipeline stages features on the Kanban view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:39
|
||
msgid "Contact details"
|
||
msgstr "Yhteystietojen yksityiskohdat"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:41
|
||
msgid ""
|
||
"Selecting :guilabel:`Contact details` adds to the :ref:`Form view <studio/"
|
||
"views/general/form>` a :ref:`Many2One field <studio/fields/relational-fields-"
|
||
"many2one>` linked to the *Contact* model and two of its :ref:`Related Fields "
|
||
"<studio/fields/relational-fields-related-field>`: :guilabel:`Phone` "
|
||
"and :guilabel:`Email`. The :guilabel:`Contact` field is also added to "
|
||
"the :ref:`List view <studio/views/multiple-records/list>`, and the :ref:`Map "
|
||
"view <studio/views/multiple-records/map>` is activated."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:0
|
||
msgid "Contact details feature on the Form view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:57
|
||
msgid "User assignment"
|
||
msgstr "Käyttäjän määritys"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:59
|
||
msgid ""
|
||
"Selecting :guilabel:`User assignment` adds to the :ref:`Form view <studio/"
|
||
"views/general/form>` a :ref:`Many2One field <studio/fields/relational-fields-"
|
||
"many2one>` linked to the *Contact* model, with the "
|
||
"following :guilabel:`Domain`: `Share User is not set` to only allow the "
|
||
"selection of *Internal Users*. In addition, "
|
||
"the :guilabel:`many2one_avatar_user` widget is used to display the user's "
|
||
"avatar. The :guilabel:`Responsible` field is also added to the :ref:`List "
|
||
"view <studio/views/multiple-records/list>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:0
|
||
msgid "User assignment feature on the Form view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:75
|
||
msgid "Date & Calendar"
|
||
msgstr "Päivämäärä ja kalenteri"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:77
|
||
msgid ""
|
||
"Selecting :guilabel:`Date & Calendar` adds to the :ref:`Form view <studio/"
|
||
"views/general/form>` a :ref:`Date field <studio/fields/simple-fields-date>` "
|
||
"and activates the :ref:`Calendar view <studio/views/timeline/calendar>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:84
|
||
msgid "Date range & Gantt"
|
||
msgstr "Päivämääräalue ja Gantt"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:86
|
||
msgid ""
|
||
"Selecting :guilabel:`Date range & Gantt` adds to the :ref:`Form view <studio/"
|
||
"views/general/form>` two :ref:`Date fields <studio/fields/simple-fields-"
|
||
"date>` next to each other: one to set a start date, the other to set an end "
|
||
"date, using the :guilabel:`daterange` widget, and activates the :ref:`Gantt "
|
||
"view <studio/views/timeline/gantt>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:94
|
||
msgid "Pipeline stages"
|
||
msgstr "Ketjun vaiheet"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:96
|
||
msgid ""
|
||
"Selecting :guilabel:`Pipeline stages` activates the :ref:`Kanban view "
|
||
"<studio/views/multiple-records/kanban>`, adds several fields such "
|
||
"as :ref:`Priority <studio/fields/simple-fields-priority>` "
|
||
"and :guilabel:`Kanban State`, and three "
|
||
"stages: :guilabel:`New`, :guilabel:`In Progress`, and :guilabel:`Done`. "
|
||
"The :guilabel:`Pipeline status bar` and the :guilabel:`Kanban State` field "
|
||
"are added to the :ref:`Form view <studio/views/general/form>`. "
|
||
"The :guilabel:`Color` field is added to the :ref:`List view <studio/views/"
|
||
"multiple-records/list>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:105
|
||
msgid "The :guilabel:`Pipeline stages` feature can be added at a later stage."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:110
|
||
msgid "Tags"
|
||
msgstr "Tunnisteet"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:112
|
||
msgid ""
|
||
"Selecting :guilabel:`Tags` adds to the :ref:`studio/views/general/form` "
|
||
"and :ref:`studio/views/multiple-records/list` views a :ref:`Tags field "
|
||
"<studio/fields/relational-fields-tags>`, creating a *Tag* model with "
|
||
"preconfigured access rights in the process."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:120
|
||
msgid "Picture"
|
||
msgstr "Kuva"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:122
|
||
msgid ""
|
||
"Selecting :guilabel:`Picture` adds to the top-right of the :ref:`Form view "
|
||
"<studio/views/general/form>` an :ref:`Image field <studio/fields/simple-"
|
||
"fields-image>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:126
|
||
msgid "The :guilabel:`Picture` feature can be added at a later stage."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:131
|
||
msgid "Lines"
|
||
msgstr "Rivit"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:133
|
||
msgid ""
|
||
"Selecting :guilabel:`Lines`: adds to the :ref:`Form view <studio/views/"
|
||
"general/form>` a :ref:`Lines field <studio/fields/relational-fields-lines>` "
|
||
"inside a :guilabel:`Tab` component."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:139
|
||
msgid "Notes"
|
||
msgstr "Muistiinpanot"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:141
|
||
msgid ""
|
||
"Selecting :guilabel:`Notes` adds to the :ref:`Form view <studio/views/"
|
||
"general/form>` an :ref:`Html field <studio/fields/simple-fields-html>` using "
|
||
"the full width of the form."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:147
|
||
msgid "Monetary value"
|
||
msgstr "Rahallinen arvo"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:149
|
||
msgid ""
|
||
"Selecting :guilabel:`Monetary value` adds to the :ref:`studio/views/general/"
|
||
"form` and :ref:`studio/views/multiple-records/list` views a :ref:`Monetary "
|
||
"field <studio/fields/simple-fields-monetary>`. The :ref:`studio/views/"
|
||
"reporting/graph` and :ref:`studio/views/reporting/pivot` views are also "
|
||
"activated."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:155
|
||
msgid "A *Currency* field is added and hidden from the view."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:160
|
||
msgid "Company"
|
||
msgstr "Yritys"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:162
|
||
msgid ""
|
||
"Selecting :guilabel:`Company` adds to the :ref:`studio/views/general/form` "
|
||
"and :ref:`studio/views/multiple-records/list` views a :ref:`Many2One field "
|
||
"<studio/fields/relational-fields-many2one>` linked to the *Company* model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:167
|
||
msgid "This is only useful if you work in a multi-company environment."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:172
|
||
msgid "Custom Sorting"
|
||
msgstr "Mukautettu lajittelu"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:174
|
||
msgid ""
|
||
"Selecting :guilabel:`Custom Sorting` adds to the :ref:`List view <studio/"
|
||
"views/multiple-records/list>` a drag handle icon to manually reorder records."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:0
|
||
msgid "Custom Sorting feature on the List view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:186
|
||
msgid "Chatter"
|
||
msgstr "Chatter"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:188
|
||
msgid ""
|
||
"Selecting :guilabel:`Chatter` adds to the :ref:`Form view <studio/views/"
|
||
"general/form>` Chatter functionalities (sending messages, logging notes, and "
|
||
"scheduling activities)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:192
|
||
msgid "The :guilabel:`Chatter` feature can be added at a later stage."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:0
|
||
msgid "Chatter feature on the Form view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:203
|
||
msgid "Archiving"
|
||
msgstr "Arkistointi"
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:205
|
||
msgid ""
|
||
"Selecting :guilabel:`Archiving` adds to the :ref:`studio/views/general/form` "
|
||
"and :ref:`studio/views/multiple-records/list` views the :guilabel:`Archive` "
|
||
"action and hides archived records from searches and views by default."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:212
|
||
msgid "Export and import customizations"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:214
|
||
msgid ""
|
||
"When you do any customization with Studio, a new module named "
|
||
"`studio_customization` is added to your database. You can export this module "
|
||
"as a ZIP file using the :guilabel:`Studio Export` function. The module can "
|
||
"then be imported into another Odoo database. This may be useful, for "
|
||
"example, when setting up a new module or for training purposes."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:220
|
||
msgid ""
|
||
"Exporting and importing customizations in this way, rather than using "
|
||
"the :doc:`standard Odoo export and import <../essentials/"
|
||
"export_import_data>` functions, means data is imported in a logical way. For "
|
||
"example, if the module contains customers and sales orders, the customers "
|
||
"are created first, since these are required for the sales orders to be "
|
||
"created."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:228
|
||
msgid "Export customizations"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:230
|
||
msgid ""
|
||
"To export customizations, click the :icon:`oi-studio` :guilabel:`(Toggle "
|
||
"Studio)` button on the main Odoo dashboard, then :guilabel:`Export`, then "
|
||
"either:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:233
|
||
msgid ""
|
||
"download all Studio customizations by clicking the :guilabel:`Export` "
|
||
"button; or"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:234
|
||
msgid ""
|
||
"choose what data to export by clicking :ref:`Configure data and demo data to "
|
||
"export <studio/export-import/export/configure>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:240
|
||
msgid "Configure data to export"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:242
|
||
msgid ""
|
||
"To select specific models to export, click :guilabel:`New` on "
|
||
"the :guilabel:`Studio Export` screen, then start typing the name of the "
|
||
"relevant model or select it from the list."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:246
|
||
msgid ""
|
||
"Click :guilabel:`Preset` to see a list of all models in your database with "
|
||
"records that have been modified using Studio and all custom models created "
|
||
"using Studio. To configure one of these models for export, click on the "
|
||
"model to open it and make the required changes."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:250
|
||
msgid "Tick the following options as relevant:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:252
|
||
msgid ""
|
||
":guilabel:`Demo`: if the exported records should be considered as demo data "
|
||
"when imported."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:253
|
||
msgid ""
|
||
":guilabel:`Attachments`: if attachments related to exported records should "
|
||
"be included in the export."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:255
|
||
msgid ""
|
||
":guilabel:`Updatable`: if the exported records should be able to be updated "
|
||
"during a module update."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:257
|
||
msgid ""
|
||
"If necessary, edit the :guilabel:`Domain` to determine which of the model's "
|
||
"records should be exported. To do so, click the :guilabel:`Edit Domain` "
|
||
"button or :icon:`fa-caret-right` :guilabel:`(Modify filter)` "
|
||
"then :guilabel:`Edit Domain`, as appropriate. Proceed to make any required "
|
||
"changes."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:262
|
||
msgid ""
|
||
"After configuring a model for export, click :guilabel:`Studio Export` to "
|
||
"return to the main screen. To download a ZIP file with the customizations "
|
||
"for all the listed models, click :guilabel:`Export`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:266
|
||
msgid ""
|
||
"It is not necessary to select one or more models as all listed models will "
|
||
"be included in the export. To remove a model from the export, select it and "
|
||
"click the :icon:`fa-cog` :guilabel:`Actions` button then :icon:`fa-trash-"
|
||
"o` :guilabel:`Delete`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:270
|
||
msgid "In the :guilabel:`Studio Export` window:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:272
|
||
msgid ""
|
||
"leave the checkboxes unticked to export only the customizations done with "
|
||
"Studio."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:273
|
||
msgid ""
|
||
"tick :guilabel:`Include Data` to include data from the selected models in "
|
||
"the export."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:274
|
||
msgid ""
|
||
"tick :guilabel:`Include Demo Data` to include data from the selected models "
|
||
"that is flagged as demo data. Ticking this option also "
|
||
"ticks :guilabel:`Include Data`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:277
|
||
msgid "Click the :guilabel:`Export` button to download the ZIP file."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:-1
|
||
msgid "Choosing to export both data and demo data"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:285
|
||
msgid "Import customizations"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:288
|
||
msgid ""
|
||
"Before importing, make sure the destination database is on the same Odoo "
|
||
"version and contains the same apps and modules as the source database. "
|
||
"Studio does not add the underlying modules as dependencies of the exported "
|
||
"module."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:292
|
||
msgid "To import and install Studio customizations in another Odoo database:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:294
|
||
msgid "Connect to the destination database."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:295
|
||
msgid ""
|
||
"Click the :icon:`oi-studio` :guilabel:`(Toggle Studio)` button on the main "
|
||
"Odoo dashboard, then :guilabel:`Import`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:297
|
||
msgid ""
|
||
"Upload the exported ZIP file. If demo data should be imported, "
|
||
"tick :guilabel:`Load demo data`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/models_modules_apps.rst:298
|
||
msgid "Click :guilabel:`Install`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:3
|
||
msgid "PDF reports"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:5
|
||
msgid ""
|
||
"With Studio, you can :ref:`edit existing PDF reports <studio/pdf-reports/"
|
||
"edit>` (e.g., invoices, quotations, etc.) or :ref:`create new ones <studio/"
|
||
"pdf-reports/edit>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:11
|
||
msgid "Default layout"
|
||
msgstr "Oletusasettelu"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:13
|
||
msgid ""
|
||
"The default layout of reports is managed outside Studio. Go "
|
||
"to :menuselection:`Settings`, then, in the :guilabel:`Companies` section of "
|
||
"the main page, click :guilabel:`Configure Document Layout`. Layout settings "
|
||
"are company-specific but apply to all reports."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:18
|
||
msgid ""
|
||
"You can see how the different settings affect the report layout in the "
|
||
"report preview on the right side of the :guilabel:`Configure your document "
|
||
"layout` window. When creating or editing a report, you can see a preview of "
|
||
"the report by clicking :guilabel:`Print preview` on the left side of the "
|
||
"screen."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:23
|
||
msgid "Use the following settings:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:27
|
||
msgid ":guilabel:`Layout`: Seven layouts are available:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:31
|
||
msgid "Light"
|
||
msgstr "Vaalea"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Light report layout sample"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:37
|
||
msgid "Boxed"
|
||
msgstr "Laatikkomainen"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Boxed report layout sample"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:43
|
||
msgid "Bold"
|
||
msgstr "Lihavoitu"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Bold report layout sample"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:49
|
||
msgid "Striped"
|
||
msgstr "Raidallinen"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Striped report layout sample"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:55
|
||
msgid "Bubble"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Bubble report layout sample"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:61
|
||
msgid "Wave"
|
||
msgstr "Aalto"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Wave report layout sample"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:67
|
||
msgid "Folder"
|
||
msgstr "Kansio"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Folder report layout sample"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:75
|
||
msgid ":guilabel:`Background`: The following backgrounds are available:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:77
|
||
msgid ":guilabel:`Blank`: Nothing is displayed."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:78
|
||
msgid ":guilabel:`Demo logo`: A demo logo is displayed in the background."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:79
|
||
msgid ":guilabel:`Custom`: Upload a custom background image."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:83
|
||
msgid ""
|
||
":guilabel:`Text`: Eight fonts are available: Lato, Roboto, Open Sans, "
|
||
"Montserrat, Oswald, Raleway, Tajawal (which supports Arabic and Latin "
|
||
"scripts), and Fira Mono. Go to the `Google Fonts website <https://"
|
||
"fonts.google.com/>`_ to preview them."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:89
|
||
msgid ""
|
||
":guilabel:`Company logo`: Click the :guilabel:`Edit` button to upload or "
|
||
"change the logo. This adds the logo to the company’s record on the *Company* "
|
||
"model, which you can access by going to :menuselection:`Settings` and then "
|
||
"clicking :guilabel:`Update Info` in the :guilabel:`Companies` section."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:96
|
||
msgid ""
|
||
":guilabel:`Colors`: Change the primary and secondary colors used to "
|
||
"structure reports. The default colors are automatically generated based on "
|
||
"the colors of the logo."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:101
|
||
msgid ""
|
||
":guilabel:`Address`: The company name and address are displayed in the "
|
||
"header of :ref:`external reports <studio/pdf-reports/header-footer>`. You "
|
||
"can add multiple lines of text."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:106
|
||
msgid ""
|
||
":guilabel:`Tagline`: This is displayed in the header of :ref:`external "
|
||
"reports <studio/pdf-reports/header-footer>` using the Light, Striped, "
|
||
"Bubble, Wave and Folder layouts and in the footer of external reports using "
|
||
"the Boxed and Bold layouts. You can add multiple lines of text."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:113
|
||
msgid ""
|
||
":guilabel:`Footer`: This text is used in the footer of :ref:`external "
|
||
"reports <studio/pdf-reports/header-footer>`. You can add multiple lines of "
|
||
"text. You can also edit the footer using the :ref:`report editor <studio/pdf-"
|
||
"reports/edit>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:119
|
||
msgid ""
|
||
":guilabel:`Paper format`: This defines the default paper size of reports. "
|
||
"You can select :guilabel:`A4` (21 cm x 29.7 cm) and :guilabel:`US Letter` "
|
||
"(21.59 cm x 27.54 cm). This can also be defined for individual reports in "
|
||
"the :guilabel:`Paper format` field in :ref:`Studio <studio/pdf-reports/edit-"
|
||
"options>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:125
|
||
msgid ""
|
||
"Other paper formats may be available depending on which apps or modules you "
|
||
"have installed, for example, label sheets for the Inventory app or event "
|
||
"badges for the Events app."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:131
|
||
msgid "Creating new PDF reports"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:133
|
||
msgid ""
|
||
"To create a new report for a :doc:`model </applications/studio/"
|
||
"models_modules_apps>`, (e.g., sales orders) access the model, click "
|
||
"the :icon:`oi-studio` (:guilabel:`Toggle Studio`) button, then "
|
||
"click :guilabel:`Reports`. Click :guilabel:`New` and, in the popup window "
|
||
"that opens, select the type of report. This is solely used to determine what "
|
||
"is displayed in the header and footer:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:141
|
||
msgid ":guilabel:`External`:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:143
|
||
msgid ""
|
||
"The header displays the company's :ref:`logo <studio/pdf-reports/default-"
|
||
"layout-logo>` and its :ref:`name and address <studio/pdf-reports/default-"
|
||
"layout-address>`. For reports using the Light, Striped, Bubble, Wave and "
|
||
"Folder layouts, the :ref:`tagline <studio/pdf-reports/default-layout-"
|
||
"tagline>` also appears in the header."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:148
|
||
msgid ""
|
||
"The footer displays the values set in the :ref:`Footer <studio/pdf-reports/"
|
||
"default-layout-footer>` field and the page number. For reports using the "
|
||
"Boxed and Bold layouts, the :ref:`tagline <studio/pdf-reports/default-layout-"
|
||
"tagline>` also appears in the footer."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:153
|
||
msgid ""
|
||
":guilabel:`Internal`: The header displays the user's current date and time, "
|
||
"the company's :ref:`name and address <studio/pdf-reports/default-layout-"
|
||
"address>` and the page number. There is no footer."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:157
|
||
msgid ""
|
||
":guilabel:`Blank`: There is neither a header nor a footer. Click in the "
|
||
"upper left corner of the page to edit the report."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:160
|
||
msgid ""
|
||
"Once you have created the report, you can start :ref:`editing it <studio/pdf-"
|
||
"reports/edit>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:165
|
||
msgid "Editing PDF reports"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:167
|
||
msgid ""
|
||
"To access the reports available for a model, access the model, click "
|
||
"the :icon:`oi-studio` (:guilabel:`Toggle Studio`) button, then "
|
||
"click :guilabel:`Reports`. Select an existing report to open it."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:171
|
||
msgid ""
|
||
"Alternatively, you can also open Studio, click :guilabel:`Reports`, and "
|
||
"search for a specific report or model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:175
|
||
msgid ""
|
||
"It is strongly recommended to **duplicate** the standard report and make "
|
||
"changes in the duplicated version. To duplicate a report, hover the mouse "
|
||
"pointer on the top right corner of the report, click the :icon:`fa-ellipsis-"
|
||
"vertical` (:guilabel:`vertical ellipsis`) icon, and then "
|
||
"select :guilabel:`Duplicate`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Duplicating a PDF report"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:186
|
||
msgid "Options"
|
||
msgstr "Vaihtoehdot"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:188
|
||
msgid ""
|
||
"Once you have selected or created a report, you can use the options in the "
|
||
"left part of the screen to:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:191
|
||
msgid ""
|
||
"Change the :guilabel:`Report name`: The new name is applied everywhere (in "
|
||
"Studio, in the :guilabel:`Print` menu under the :icon:`fa-cog` "
|
||
"(:guilabel:`gear`) icon in the form view, and in the PDF file name)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:194
|
||
msgid ""
|
||
"Modify the :guilabel:`Paper format`: If no value is selected, the format "
|
||
"defined in the :ref:`default layout <studio/pdf-reports/default-layout-"
|
||
"paper>` is used."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:196
|
||
msgid ""
|
||
":guilabel:`Show in print menu`: to add the report to the :guilabel:`Print` "
|
||
"menu in the form view."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:197
|
||
msgid ""
|
||
":guilabel:`Reload from attachment`: to save the report as an attachment on "
|
||
"the record the first time it is generated and reload the original version of "
|
||
"the report any subsequent time. This is legally required for invoices and is "
|
||
"mainly used in this case."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:200
|
||
msgid ""
|
||
":guilabel:`Limit visibility to groups`: to limit the availability of the PDF "
|
||
"report to specific :doc:`user groups <../general/users/access_rights>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:202
|
||
msgid ""
|
||
":guilabel:`Edit sources`: to modify the report directly in the :ref:`XML "
|
||
"file <studio/pdf-reports/XML-editing>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:204
|
||
msgid ""
|
||
":guilabel:`Reset report`: to discard all changes made to the report and "
|
||
"reset it to its standard version."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:206
|
||
msgid ":guilabel:`Print preview`: to generate and download a report preview."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:211
|
||
msgid "Report editor"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:213
|
||
msgid ""
|
||
"The report editor allows you to modify the content and formatting of the "
|
||
"report."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:216
|
||
msgid ""
|
||
"You can :guilabel:`Undo` or :guilabel:`Redo` changes using the related "
|
||
"buttons or the shortcuts `CTRL` + `Z` and `CTRL` + `Y`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:219
|
||
msgid ""
|
||
"Changes are saved automatically when you leave the report or manually using "
|
||
"the :guilabel:`Save` button."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:222
|
||
msgid ""
|
||
"You can reset the report to its standard version by clicking "
|
||
"the :guilabel:`Reset report` button in the left part of the screen."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:226
|
||
msgid ""
|
||
"Editing the header and footer of a report impacts all standard and custom "
|
||
"reports."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:229
|
||
msgid "Conditional blocks"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:231
|
||
msgid ""
|
||
"The dashed rectangles represent **conditional blocks** (*if/else* "
|
||
"statements). These are used to show/hide content based on specific "
|
||
"conditions. Click on the block to view the conditions."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:-1
|
||
msgid "View conditions applied to a block."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:237
|
||
msgid ""
|
||
"Select a value to preview its corresponding output and edit it if necessary."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:-1
|
||
msgid "Preview the output of another condition."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:243
|
||
msgid ""
|
||
"Conditions can only be edited in the :ref:`XML <studio/pdf-reports/XML-"
|
||
"editing>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:246
|
||
msgid "Other content"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:248
|
||
msgid "There are two types of text content in reports:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:250
|
||
msgid ""
|
||
"Static text, i.e., the text that is not highlighted in blue, which can be "
|
||
"modified directly in the editor."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:252
|
||
msgid ""
|
||
"Dynamic text, i.e., the text that is highlighted in blue, which is replaced "
|
||
"by :doc:`field </applications/studio/fields>` values when the report is "
|
||
"generated, e.g., the sales order number or the quotation date."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:256
|
||
msgid ""
|
||
"You can add content (e.g., fields, lists, tables, images, banners, etc.) to "
|
||
"the report using commands. Type `/` to open the :ref:`powerbox <essentials/"
|
||
"html_editor/commands>`, then type the command's name or select it from the "
|
||
"list."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:260
|
||
msgid "To add static text to the report, type the text where you want it."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:262
|
||
msgid ""
|
||
"For more advanced changes, you can :ref:`edit the report in the XML directly "
|
||
"<studio/pdf-reports/XML-editing>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:268
|
||
msgid "Add a field"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:270
|
||
msgid ""
|
||
"To add a field, type `/` and select the :guilabel:`Field` command. In the "
|
||
"list that opens, select or search for the field; click the right arrow next "
|
||
"to the field name to access the list of related fields if needed. Then, "
|
||
"specify the default value that will be shown if the field is not completed "
|
||
"in the record and press `Enter`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:-1
|
||
msgid "Select a related field."
|
||
msgstr "Valitse liittyvä kenttä."
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:281
|
||
msgid "Add or edit a table"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:283
|
||
msgid "There are two types of tables in reports:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:285
|
||
msgid ""
|
||
":ref:`Static tables <studio/pdf-reports/static-table>`, which are used to "
|
||
"display static text or fields. For this type of table, you define the number "
|
||
"of columns and rows when adding the table."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:287
|
||
msgid ""
|
||
":ref:`Dynamic tables <studio/pdf-reports/dynamic-table>`, which are used to "
|
||
"display data from :ref:`relational fields <studio/fields/relational-"
|
||
"fields>`. For this type of table, you only define the number of columns when "
|
||
"adding the table. The number of rows in the generated report will be "
|
||
"determined by the number of records in the related model that are linked "
|
||
"with the current model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:294
|
||
msgid ""
|
||
"In a sales order report, a dynamic table is used to show the order lines "
|
||
"related to the sales order. If the sales order contains 10 order lines, the "
|
||
"table in the generated report has 10 rows; if it contains two order lines, "
|
||
"the table has two rows."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:301
|
||
msgid "Add or edit a static table"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:303
|
||
msgid ""
|
||
"To add a static table, type `/` and select the :guilabel:`Table` command. "
|
||
"Determine the number of columns and rows for the table. Once the table has "
|
||
"been added, you can start editing it."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:306
|
||
msgid ""
|
||
"You can insert, move and delete columns and rows using the table tools. "
|
||
"Position the cursor on top of the column or to the left of the row then "
|
||
"click the purple rectangle and select an option."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:-1
|
||
msgid "List of available options for editing table structure."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:312
|
||
msgid ""
|
||
"To resize a column, drag the column border to the desired position; reset "
|
||
"all columns to their standard size by selecting :guilabel:`Reset Size` from "
|
||
"the table tools."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:315
|
||
msgid ""
|
||
"Add the :ref:`field of your choice <studio/pdf-reports/add-field>` in a cell "
|
||
"or add static text by typing."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:319
|
||
msgid ""
|
||
"To add text in a structured way without using a table, you can use columns. "
|
||
"Add columns by typing `/` and selecting the appropriate "
|
||
"command: :guilabel:`2 columns`, :guilabel:`3 columns` or :guilabel:`4 "
|
||
"columns`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:326
|
||
msgid "Add or edit a dynamic table"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:329
|
||
msgid ""
|
||
"Only relations of type `one2many` or `many2many` can be displayed as dynamic "
|
||
"tables."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:330
|
||
msgid ""
|
||
"An existing dynamic table in a standard report has a more complex structure "
|
||
"than a dynamic table you add yourself. For such tables, it is possible to "
|
||
"insert or delete columns; it is not possible to move columns or to insert, "
|
||
"move or delete rows."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:334
|
||
msgid ""
|
||
"To add a dynamic table, type `/` and select the :guilabel:`Dynamic Table` "
|
||
"command. In the list that opens, select or search for the relation the table "
|
||
"will be based on and press `Enter`. Once the table has been added, you can "
|
||
"start editing it."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:338
|
||
msgid ""
|
||
"You can insert, move and delete columns using the table tools, as for "
|
||
"a :ref:`static table <studio/pdf-reports/static-table>`. It is also possible "
|
||
"to insert static rows that will appear above or below the generated rows."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:342
|
||
msgid ""
|
||
"To add a field to a cell, delete any placeholder text then add "
|
||
"the :ref:`field of your choice <studio/pdf-reports/add-field>`. The dialog "
|
||
"box that opens shows the source object for the field (e.g., the *Order "
|
||
"Lines* model) and the list of available fields."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:-1
|
||
msgid "List of available fields for the sale order lines model."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:349
|
||
msgid "Replace the :guilabel:`Column name` label by the label of your choice."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:352
|
||
msgid ""
|
||
"The default row automatically iterates over the field's content, generating "
|
||
"a row on the report for each field value (e.g., one row per order line)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:356
|
||
msgid "Formatting"
|
||
msgstr "Muotoilu"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:358
|
||
msgid ""
|
||
"To format text in the report, select it, then format it using the options in "
|
||
"the :doc:`text editor </applications/essentials/html_editor>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Format text using the text editor."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:367
|
||
msgid "Editing the report's XML"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:370
|
||
msgid ""
|
||
"Modifying the XML directly may result in report issues during :doc:`upgrades "
|
||
"<../../../administration/upgrade>`. If this happens, simply copy your "
|
||
"changes from the old database into your upgraded database."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:374
|
||
msgid ""
|
||
"To edit the report's XML, click :guilabel:`Edit sources` in the left pane."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:377
|
||
msgid "Examples"
|
||
msgstr "Esimerkkejä"
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:381
|
||
msgid ""
|
||
"To change how data is presented in your report, you can modify a field's "
|
||
"default :doc:`widget </applications/studio/fields>` manually. In the example "
|
||
"below, the order date shows the date and time by default, while the unit "
|
||
"price defaults to a precision of two decimal places."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:394
|
||
msgid ""
|
||
"By using `t-options`, in this case the `widget` option, these fields can be "
|
||
"modified to show only the date and a precision of four decimal places, "
|
||
"respectively:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:407
|
||
msgid ""
|
||
"If you want to show/hide content based on specific conditions, you can "
|
||
"manually add `if/else` control statements in the report XML."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:410
|
||
msgid ""
|
||
"For example, if you want to hide a custom data table if there are no tags, "
|
||
"you can use the `t-if` attribute to define the condition, which is then "
|
||
"evaluated as `True` or `False`. The table will not be displayed if there are "
|
||
"no tags in the quotation."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:439
|
||
msgid ""
|
||
"If you want to display another block in case the `t-if` statement is "
|
||
"evaluated as `False`, you can specify it using the `t-else` statement. The "
|
||
"`t-else` block must directly follow the `t-if` block in the document "
|
||
"structure. There is no need to specify any condition in the `t-else` "
|
||
"attribute. As an example, let's show a quick message explaining that there "
|
||
"are no tags on the quotation:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:471
|
||
msgid ""
|
||
"By using the `t-if/t-else` notation, the report editor recognizes that these "
|
||
"sections are mutually exclusive and should be displayed as conditional "
|
||
"blocks:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Output preview if there are tags."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:477
|
||
msgid "You can switch conditions using the editor to preview their output:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Output preview if there are no tags."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:482
|
||
msgid ""
|
||
"If you wish to have multiple options, you can also use `t-elif` directives "
|
||
"to add intermediary conditions. For example, this is how the title of sales "
|
||
"order reports changes based on the condition of the underlying document."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:495
|
||
msgid ""
|
||
"The title *Pro-Forma Invoice* is used depending on some contextual "
|
||
"conditions. If these conditions are not met and the state of the document is "
|
||
"either `draft` or `sent`, then *Quotation* is used. If none of those "
|
||
"conditions are met, the report's title is *Order*."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:501
|
||
msgid ""
|
||
"Working with images in a report can be challenging, as precise control over "
|
||
"image size and behavior is not always obvious. You can insert image fields "
|
||
"using the report editor (by using the :ref:`Field command <studio/pdf-"
|
||
"reports/add-field>`), but inserting them in XML using the `t-field` "
|
||
"directive and accompanying `t-options` attributes provides better sizing and "
|
||
"positioning control."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:507
|
||
msgid ""
|
||
"For example, the following code outputs the field `image_128` of the line's "
|
||
"product as a 64px-wide image (with an automatic height based on the image's "
|
||
"aspect ratio)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:514
|
||
msgid "The following options are available for image widgets:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:516
|
||
msgid ""
|
||
"`width`: width of the image, usually in pixels or CSS length units (e.g., "
|
||
"`rem`) (leave empty for auto-width)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:518
|
||
msgid ""
|
||
"`height`: height of the image, usually in pixels or CSS length units (e.g., "
|
||
"`rem`) (leave empty for auto-height)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:520
|
||
msgid ""
|
||
"`class`: CSS classes applied on the `img` tag; `Bootstrap classes <https://"
|
||
"getbootstrap.com/docs/5.1/content/tables>`_ are available."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:522
|
||
msgid "`alt`: alternative text of the image"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:523
|
||
msgid ""
|
||
"`style`: style attribute; it allows you to override styles more freely than "
|
||
"with `Bootstrap classes <https://getbootstrap.com/docs/5.1/content/tables>`_."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:526
|
||
msgid ""
|
||
"These attributes must contain strings, i.e., text enclosed within quotes "
|
||
"within quotes, e.g., `t-options-width=\"'64px'\"` (or, alternatively, a "
|
||
"valid Python expression)."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:530
|
||
msgid ""
|
||
"The image widget cannot be used on an `img` tag. Instead, set the `t-field` "
|
||
"directive on a `span` (for inline content) or `div` (for block content) node."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:533
|
||
msgid ""
|
||
"For example, let's add a column with the product image in the quotation "
|
||
"table:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:561
|
||
msgid ""
|
||
"The `t-options-width` attribute restricts the image width to 64 pixels, and "
|
||
"the Bootstrap classes used in `t-options-class` create a thumbnail-like "
|
||
"border with rounded corners and a shadow."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||
msgid "Add a column with the product image in the quotation table."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:3
|
||
msgid "Views"
|
||
msgstr "Näkymät"
|
||
|
||
#: ../../content/applications/studio/views.rst:5
|
||
msgid ""
|
||
"Views are the interface that allows displaying the data contained in "
|
||
"a :doc:`model <models_modules_apps>`. One model can have several views, "
|
||
"which are simply different ways to show the same data. In Studio, views are "
|
||
"organized into four categories: :ref:`general <studio/views/"
|
||
"general>`, :ref:`multiple records <studio/views/multiple-"
|
||
"records>`, :ref:`timeline <studio/views/timeline>`, and :ref:`reporting "
|
||
"<studio/views/reporting>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:12
|
||
msgid ""
|
||
"To change the default view of a model, :ref:`access Studio <studio/access>`, "
|
||
"go to :guilabel:`Views`, click the :icon:`fa-ellipsis-v` "
|
||
"(:guilabel:`ellipsis`) icon next to the desired view, and "
|
||
"click :guilabel:`Set as Default`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:15
|
||
msgid ""
|
||
"You can modify views using the built-in XML editor: Activate "
|
||
"the :ref:`Developer mode <developer-mode>`, go to the view you want to edit, "
|
||
"select the :guilabel:`View` tab, and click :guilabel:`</> XML`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:20
|
||
msgid ""
|
||
"If you are editing a view using the XML editor, avoid making changes "
|
||
"directly to standard and inherited views, as these would be reset and lost "
|
||
"during updates or module upgrades. Always make sure you select the right "
|
||
"Studio inherited views: When you modify a view in Studio by dragging and "
|
||
"dropping a new field, for example, a specific Studio inherited view and its "
|
||
"corresponding XPath, which defines the modified part of the view, are "
|
||
"automatically generated."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:30
|
||
msgid "General views"
|
||
msgstr "Yleiset näkymät"
|
||
|
||
#: ../../content/applications/studio/views.rst:33
|
||
#: ../../content/applications/studio/views.rst:106
|
||
#: ../../content/applications/studio/views.rst:207
|
||
#: ../../content/applications/studio/views.rst:322
|
||
msgid ""
|
||
"The settings described below are found under the view's :guilabel:`View` tab "
|
||
"unless specified otherwise."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:39
|
||
msgid "Form"
|
||
msgstr "Lomake"
|
||
|
||
#: ../../content/applications/studio/views.rst:41
|
||
msgid ""
|
||
"The :guilabel:`Form` :icon:`fa-address-card` view is used when creating and "
|
||
"editing records, such as contacts, sales orders, products, etc."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:44
|
||
msgid ""
|
||
"To structure a form, drag and drop the :guilabel:`Tabs and Columns` element "
|
||
"found under the :guilabel:`+ Add` tab."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:46
|
||
#: ../../content/applications/studio/views.rst:139
|
||
msgid ""
|
||
"To prevent users from creating, editing, or deleting records, "
|
||
"untick :guilabel:`Can Create`, :guilabel:`Can Edit`, or :guilabel:`Can "
|
||
"Delete`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:48
|
||
msgid ""
|
||
"To add a button, click :guilabel:`Add a button` at the top of the form, "
|
||
"enter a :guilabel:`Label`, and select the button's action:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:51
|
||
#: ../../content/applications/studio/views.rst:155
|
||
msgid ""
|
||
":guilabel:`Run a Server Action`: select the :ref:`server action <reference/"
|
||
"actions/server>` to be executed from the dropdown list;"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:53
|
||
#: ../../content/applications/studio/views.rst:157
|
||
msgid ""
|
||
":guilabel:`Call a method`: specify an existing Python method already defined "
|
||
"in Odoo."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:55
|
||
msgid ""
|
||
"To change a button's label or style, click the button and edit "
|
||
"its :guilabel:`Label` or :guilabel:`Class` (either `btn-primary` or `btn-"
|
||
"secondary`) in the :guilabel:`Properties` tab."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:57
|
||
msgid ""
|
||
"To add a smart button, click the :icon:`fa-plus-square` (:guilabel:`plus`) "
|
||
"icon in the top-right corner of the form. Enter a :guilabel:`Label`, choose "
|
||
"an :guilabel:`Icon`, and select a :ref:`related field <studio/fields/"
|
||
"relational-fields-related-field>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Sales order model's Form view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:69
|
||
msgid "Activity"
|
||
msgstr "Toimenpide"
|
||
|
||
#: ../../content/applications/studio/views.rst:71
|
||
msgid ""
|
||
"The :guilabel:`Activity` :icon:`fa-clock-o` view is used to schedule and "
|
||
"have an overview of activities (emails, calls, etc.) linked to records."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:75
|
||
msgid "This view can only be modified within Studio by editing the XML code."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Lead/Opportunity model's Activity view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:85
|
||
msgid "Search"
|
||
msgstr "Hae"
|
||
|
||
#: ../../content/applications/studio/views.rst:87
|
||
msgid ""
|
||
"The :guilabel:`Search` :icon:`oi-search` view is added on top of other views "
|
||
"to filter, group, and search records."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:90
|
||
msgid ""
|
||
"To add custom :guilabel:`Filters` and structure them "
|
||
"using :guilabel:`Separators`, go to the :guilabel:`+ Add` tab and drag and "
|
||
"drop them under :guilabel:`Filters`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:92
|
||
msgid ""
|
||
"To add an existing field under the search dropdown menu, go to "
|
||
"the :guilabel:`+ Add` tab and drag and drop it "
|
||
"under :guilabel:`Autocompletion Fields`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Project model's Search view on the Kanban view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:103
|
||
msgid "Multiple records views"
|
||
msgstr "Useiden tietueiden näkymä"
|
||
|
||
#: ../../content/applications/studio/views.rst:112
|
||
msgid "Kanban"
|
||
msgstr "Kanban"
|
||
|
||
#: ../../content/applications/studio/views.rst:114
|
||
msgid ""
|
||
"The :guilabel:`Kanban` :icon:`oi-view-kanban` view is often used to support "
|
||
"business flows by moving records across stages or as an alternative way to "
|
||
"display records inside *cards*."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:118
|
||
msgid ""
|
||
"If the :guilabel:`Kanban` view exists, it is used by default to display data "
|
||
"on mobile devices instead of the :ref:`List view <studio/views/multiple-"
|
||
"records/list>`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:121
|
||
msgid ""
|
||
"To prevent users from creating new records, untick :guilabel:`Can Create`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:122
|
||
msgid ""
|
||
"To create records directly within the view, in a minimalistic form, "
|
||
"enable :guilabel:`Quick Create`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:124
|
||
#: ../../content/applications/studio/views.rst:151
|
||
msgid ""
|
||
"To set a default grouping for records, select a field "
|
||
"under :guilabel:`Default Group By`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Project model's Kanban view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:134
|
||
msgid "List"
|
||
msgstr "Lista"
|
||
|
||
#: ../../content/applications/studio/views.rst:136
|
||
msgid ""
|
||
"The :guilabel:`List` :icon:`oi-view-list` view is used to overview many "
|
||
"records at once, look for records, and edit simple records."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:141
|
||
msgid ""
|
||
"To create and edit records directly within the view, select "
|
||
"either :guilabel:`Add record at the bottom`, :guilabel:`Add record on top` "
|
||
"or :guilabel:`Open form view` under :guilabel:`When Creating Record`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:146
|
||
msgid ""
|
||
"This prevents users from opening records in :ref:`Form view <studio/views/"
|
||
"general/form>` from the :guilabel:`List` view."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:149
|
||
msgid "To edit several records at once, tick :guilabel:`Enable Mass Editing`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:150
|
||
msgid ""
|
||
"To change the way records are sorted by default, select a field "
|
||
"under :guilabel:`Sort By`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:152
|
||
msgid ""
|
||
"To add a button, click :guilabel:`Add a button` at the top of the list, "
|
||
"enter a :guilabel:`Label`, and select the button's action:"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:160
|
||
msgid ""
|
||
"To add a :icon:`oi-draggable` (:guilabel:`drag handle`) icon to reorder "
|
||
"records manually, add an :ref:`Integer field <studio/fields/simple-fields-"
|
||
"integer>` with the :guilabel:`Handle` widget."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Drag handle icon enabling to sort records manually in List view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Sales order model's List view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:174
|
||
msgid "Map"
|
||
msgstr "Kartta"
|
||
|
||
#: ../../content/applications/studio/views.rst:176
|
||
msgid ""
|
||
"The :guilabel:`Map` :icon:`fa-map-marker` view is used to display records on "
|
||
"a map. For example, it is used in the Field Service app to plan an itinerary "
|
||
"between different tasks."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:180
|
||
msgid ""
|
||
"A :ref:`Many2One field <studio/fields/relational-fields-many2one>` linked to "
|
||
"the *Contact* model is required to activate the view, as the contact address "
|
||
"is used to position records on the map."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:183
|
||
msgid ""
|
||
"To select which kind of contact should be used on the map, select it "
|
||
"under :guilabel:`Contact Field`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:185
|
||
msgid ""
|
||
"To hide the name or the address of the record, tick :guilabel:`Hide Name` "
|
||
"or :guilabel:`Hide Address`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:187
|
||
msgid ""
|
||
"To add information from other fields, select them "
|
||
"under :guilabel:`Additional Fields`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:188
|
||
msgid ""
|
||
"To have a route suggested between the different records, "
|
||
"tick :guilabel:`Enable Routing` and select which field should be used to "
|
||
"sort records for the routing."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Task model's Map view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:199
|
||
msgid "Timeline views"
|
||
msgstr "Aikajananäkymät"
|
||
|
||
#: ../../content/applications/studio/views.rst:202
|
||
msgid ""
|
||
"When you first activate one of the timeline views, you need to select "
|
||
"which :ref:`Date <studio/fields/simple-fields-date>` or :ref:`Date & Time "
|
||
"<studio/fields/simple-fields-date-time>` fields on your model should be used "
|
||
"to define when the records start and stop in order to display them on the "
|
||
"view. You can modify the :guilabel:`Start Date Field` and :guilabel:`Stop "
|
||
"Date Field` after activating the view."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:213
|
||
msgid "Calendar"
|
||
msgstr "Kalenteri"
|
||
|
||
#: ../../content/applications/studio/views.rst:215
|
||
msgid ""
|
||
"The :guilabel:`Calendar` :icon:`fa-calendar` view is used to overview and "
|
||
"manage records inside a calendar."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:218
|
||
msgid ""
|
||
"To create records directly within the view instead of opening the :ref:`Form "
|
||
"view <studio/views/general/form>`, enable :guilabel:`Quick Create`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:222
|
||
msgid ""
|
||
"This only works on specific models that can be *quick-created* using only a "
|
||
"*name*. However, most models do not support quick creation and open "
|
||
"the :guilabel:`Form` view to fill in the required fields."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:226
|
||
msgid ""
|
||
"To color records on the calendar, select a field under :guilabel:`Color`. "
|
||
"All the records sharing the same value for that field are displayed using "
|
||
"the same color."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:230
|
||
msgid ""
|
||
"As the number of colors is limited, the same color can end up being assigned "
|
||
"to different values."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:233
|
||
msgid ""
|
||
"To display events lasting the whole day at the top of the calendar, select "
|
||
"a :ref:`Checkbox field <studio/fields/simple-fields-checkbox>` that "
|
||
"specifies if the event lasts the whole day."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:236
|
||
msgid ""
|
||
"To choose the default time scale used to display events, "
|
||
"select :guilabel:`Day`, :guilabel:`Week`, :guilabel:`Month`, "
|
||
"or :guilabel:`Year` under :guilabel:`Default Display Mode`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:240
|
||
msgid ""
|
||
"You can also use a :guilabel:`Delay Field` to display the duration of the "
|
||
"event in hours by selecting a :ref:`Decimal <studio/fields/simple-fields-"
|
||
"decimal>` or :ref:`Integer <studio/fields/simple-fields-integer>` field on "
|
||
"the model which specifies the duration of the event. However, if you set "
|
||
"an :guilabel:`End Date Field`, the :guilabel:`Delay Field` will not be taken "
|
||
"into account."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Calendar Event model's Calendar view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:254
|
||
msgid "Cohort"
|
||
msgstr "Kohortti"
|
||
|
||
#: ../../content/applications/studio/views.rst:256
|
||
msgid ""
|
||
"The :guilabel:`Cohort` :icon:`oi-view-cohort` view is used to examine the "
|
||
"life cycle of records over a time period. For example, it is used in the "
|
||
"Subscriptions app to view the subscriptions' retention rate."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:260
|
||
msgid ""
|
||
"To display a measure (i.e., the aggregated value of a given field) by "
|
||
"default on the view, select a :guilabel:`Measure Field`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:262
|
||
msgid ""
|
||
"To choose which time interval is used by default to group results, "
|
||
"select :guilabel:`Day`, :guilabel:`Week`, :guilabel:`Month`, "
|
||
"or :guilabel:`Year` under :guilabel:`Interval`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:264
|
||
msgid ""
|
||
"To change the cohort :guilabel:`Mode`, select "
|
||
"either :guilabel:`Retention` :dfn:`the percentage of records staying over a "
|
||
"period of time, it starts at 100% and decreases with time` "
|
||
"or :guilabel:`Churn` :dfn:`the percentage of records moving out over a "
|
||
"period of time - it starts at 0% and increases with time`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:268
|
||
msgid ""
|
||
"To change the way the :guilabel:`Timeline` (i.e., the columns) progresses, "
|
||
"select either :guilabel:`Forward` (from 0 to +15) or :guilabel:`Backward` "
|
||
"(from -15 to 0). For most purposes, the :guilabel:`Forward` timeline is used."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Subscription model's Cohort view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:280
|
||
msgid "Gantt"
|
||
msgstr "Gantt"
|
||
|
||
#: ../../content/applications/studio/views.rst:282
|
||
msgid ""
|
||
"The :guilabel:`Gantt` :icon:`fa-tasks` view is used to forecast and examine "
|
||
"the overall progress of records. Records are represented by a bar under a "
|
||
"time scale."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:285
|
||
msgid ""
|
||
"To prevent users from creating or editing records, untick :guilabel:`Can "
|
||
"Create` or :guilabel:`Can Edit`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:287
|
||
msgid ""
|
||
"To fill cells in gray whenever a record should not be created there (e.g., "
|
||
"on weekends for employees), tick :guilabel:`Display Unavailability`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:291
|
||
msgid ""
|
||
"The underlying model must support this feature, and support for it cannot be "
|
||
"added using Studio. It is supported for the Project, Time Off, Planning, and "
|
||
"Manufacturing apps."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:294
|
||
msgid "To show a total row at the bottom, tick :guilabel:`Display Total row`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:295
|
||
msgid ""
|
||
"To collapse multiple records in a single row, tick :guilabel:`Collapse First "
|
||
"Level`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:296
|
||
msgid ""
|
||
"To choose which way records are grouped by default on rows (e.g., per "
|
||
"employee or project), select a field under :guilabel:`Default Group by`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:298
|
||
msgid ""
|
||
"To define a default time scale to view records, "
|
||
"select :guilabel:`Day`, :guilabel:`Week`, :guilabel:`Month`, "
|
||
"or :guilabel:`Year` under :guilabel:`Default Scale`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:300
|
||
msgid ""
|
||
"To color records on the view, select a field under :guilabel:`Color`. All "
|
||
"the records sharing the same value for that field are displayed using the "
|
||
"same color."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:304
|
||
msgid ""
|
||
"As the number of colors is limited, the same color can be assigned to "
|
||
"different values."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:306
|
||
msgid ""
|
||
"To specify with which degree of precision each time scale should be divided "
|
||
"by, select :guilabel:`Quarter Hour`, :guilabel:`Half Hour`, "
|
||
"or :guilabel:`Hour` under :guilabel:`Day Precision`, :guilabel:`Half Day` "
|
||
"or :guilabel:`Day` under :guilabel:`Week Precision`, and :guilabel:`Month "
|
||
"Precision`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Planning Shift model's Gantt view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:319
|
||
msgid "Reporting views"
|
||
msgstr "Raportointinäkymät"
|
||
|
||
#: ../../content/applications/studio/views.rst:328
|
||
msgid "Pivot"
|
||
msgstr "Taulukko"
|
||
|
||
#: ../../content/applications/studio/views.rst:330
|
||
msgid ""
|
||
"The :guilabel:`Pivot` :icon:`oi-view-pivot` view is used to explore and "
|
||
"analyze the data contained in records in an interactive manner. It is "
|
||
"especially useful to aggregate numeric data, create categories, and drill "
|
||
"down the data by expanding and collapsing different levels of data."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:334
|
||
msgid ""
|
||
"To access all records whose data is aggregated under a cell, "
|
||
"tick :guilabel:`Access records from cell`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:336
|
||
msgid ""
|
||
"To divide the data into different categories, select field(s) "
|
||
"under :guilabel:`Column grouping`, :guilabel:`Row grouping - First level`, "
|
||
"or :guilabel:`Row grouping - Second level`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:338
|
||
msgid ""
|
||
"To add different types of data to be measured using the view, select a field "
|
||
"under :guilabel:`Measures`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:340
|
||
msgid ""
|
||
"To display a count of records that made up the aggregated data in a cell, "
|
||
"tick :guilabel:`Display count`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Purchase Report model's Pivot view"
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:351
|
||
msgid "Graph"
|
||
msgstr "Kaavio"
|
||
|
||
#: ../../content/applications/studio/views.rst:353
|
||
msgid ""
|
||
"The :guilabel:`Graph` :icon:`fa-area-chart` view is used to showcase data "
|
||
"from records in a bar, line, or pie chart."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:356
|
||
msgid ""
|
||
"To change the default chart, select :guilabel:`Bar`, :guilabel:`Line`, "
|
||
"or :guilabel:`Pie` under :guilabel:`Type`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:358
|
||
msgid ""
|
||
"To choose a default data dimension (category), select a field "
|
||
"under :guilabel:`First dimension` and, if needed, another "
|
||
"under :guilabel:`Second dimension`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:360
|
||
msgid ""
|
||
"To select a default type of data to be measured using the view, select a "
|
||
"field under :guilabel:`Measure`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:362
|
||
msgid ""
|
||
"*For Bar and Line charts only*: To sort the different data categories by "
|
||
"their value, select :guilabel:`Ascending` (from lowest to highest value) "
|
||
"or :guilabel:`Descending` (from highest to lowest) under :guilabel:`Sorting`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:365
|
||
msgid ""
|
||
"*For Bar and Pie charts only*: To access all records whose data is "
|
||
"aggregated under a data category on the chart, tick :guilabel:`Access "
|
||
"records from graph`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:367
|
||
msgid ""
|
||
"*For Bar charts only*: When using two data dimensions (categories), display "
|
||
"the two columns on top of each other by default by "
|
||
"ticking :guilabel:`Stacked graph`."
|
||
msgstr ""
|
||
|
||
#: ../../content/applications/studio/views.rst:0
|
||
msgid "Sales Analysis Report model's Bar chart on Graph view"
|
||
msgstr ""
|