Compare commits
13 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ec4ce88953 |
[IMP] core: make author field mandatory in manifests
External contributors (and namely Odoo PS) forget to set the author field in their manifest file. The result is that the module is wrongly registered with `'author': 'Odoo S.A.'`. This work makes the field mandatory, with a warning when not set. It also offers an upgrade-code script to mass-rewrite all the manifests in order to set the author. task-4485983 |
||
|
|
e9269e8128 |
[MOV] accounting: invoice sequence section on a separate page
closes odoo/documentation#12142
X-original-commit:
|
||
|
|
b86296750e |
[IMP] contributing: documentation macOS make install
closes odoo/documentation#12149
X-original-commit:
|
||
|
|
c968e3814a |
[IMP] Purchase: Reordering Rules Update
closes odoo/documentation#12138
X-original-commit:
|
||
|
|
03defbfc60 |
[IMP] pos: resize & scale content (table and screenshots)
task-4521596
closes odoo/documentation#11900
X-original-commit:
|
||
|
|
e55ae1cbf4 |
[IMP] inventory: view empty locations
closes odoo/documentation#12132
X-original-commit:
|
||
|
|
5f9b6e4825 |
[I18N] *: re-export pot files
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)
closes odoo/documentation#12131
X-original-commit:
|
||
|
|
8c685239b4 |
[IMP] sales: gelato feedback
Apply suggestions from JERO review
edits
closes odoo/documentation#12123
X-original-commit:
|
||
|
|
224e1f5982 |
[IMP] account_reports: Unambiguous cross_report aggregations
Before this commit, when using cross_report subformula it would search for a report that has an line with this code. We had to ensure there was no duplicate codes and so it was difficult to maintain. Now, when we use a cross_report subformula, we need to explicitly target the report from where the code is from. task-4457667 closes odoo/documentation#11747 Related: odoo/odoo#193106 Related: odoo/enterprise#76845 Signed-off-by: Logan Staelens (lost) <lost@odoo.com> |
||
|
|
606b56ccda |
[FIX] Use <chatter> instead of <div class="oe_chatter">
closes odoo/documentation#12110
X-original-commit:
|
||
|
|
c1154c0c5d |
[ADD] Purchase: Templates
closes odoo/documentation#12103
X-original-commit:
|
||
|
|
cd3086cea4 |
[ADD] sales: gelato integration
edit image sizes
edits
Apply suggestions from FEKU review
edits
Apply suggestions from FEKU review
edits
Apply suggestions from FEKU review
edits
Update content/applications/sales/sales/gelato.rst
edits
Apply suggestions from ZST review
edits
edits
sales file
Apply suggestions from SALI review
Apply suggestions from SALI review2
images
Edits
closes odoo/documentation#12090
X-original-commit:
|
||
|
|
cc4e3a87f6 |
[IMP] accounting: clarify invoice sequence format
task-4564980
closes odoo/documentation#12100
X-original-commit:
|
@@ -7,8 +7,7 @@ Customer invoices
|
||||
A customer invoice is a document issued by a company for products and/or services sold to a
|
||||
customer. It records receivables as they are sent to customers. Customer invoices can include
|
||||
amounts due for the goods and/or services provided, applicable sales taxes, shipping and handling
|
||||
fees, and other charges.
|
||||
Odoo supports multiple invoicing and payment workflows.
|
||||
fees, and other charges. Odoo supports multiple invoicing and payment workflows.
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/finance/accounting/customer_invoices/overview`
|
||||
@@ -84,14 +83,14 @@ Invoice confirmation
|
||||
|
||||
Click :guilabel:`Confirm` when the invoice is completed. The invoice's status changes to
|
||||
:guilabel:`Posted`, and a journal entry is generated based on the invoice configuration. On
|
||||
confirmation, Odoo assigns each invoice a unique number from a defined
|
||||
:ref:`sequence <accounting/invoice/sequence>`.
|
||||
confirmation, Odoo assigns each invoice a unique number from a defined :doc:`sequence
|
||||
<customer_invoices/sequence>`.
|
||||
|
||||
.. note::
|
||||
- Once confirmed, an invoice can no longer be updated. Click :guilabel:`Reset to draft` if
|
||||
changes are needed.
|
||||
- If required, invoices and other journal entries can be locked once posted
|
||||
using the :ref:`Secure posted entries with hash <data-inalterability/restricted>` feature.
|
||||
- If required, invoices and other journal entries can be locked once posted using the
|
||||
:ref:`Secure posted entries with hash <data-inalterability/restricted>` feature.
|
||||
|
||||
.. _accounting/invoice/sending:
|
||||
|
||||
@@ -172,81 +171,6 @@ how much the customer is overdue. These actions are bundled into follow-up level
|
||||
an invoice is overdue by a certain number of days. If there are multiple overdue invoices for the
|
||||
same customer, the actions are performed on the most overdue invoice.
|
||||
|
||||
.. _accounting/invoice/sequence:
|
||||
|
||||
Sequence
|
||||
========
|
||||
|
||||
Odoo assigns each document a unique sequence made up of a prefix and a number. The prefix combines
|
||||
the journal code and the entry date and groups entries by period. The number is unique for each
|
||||
period and is used to identify the entry. The default sequence on customer invoices is
|
||||
INV/YYYY/number. In some specific cases, :ref:`resequencing <accounting/invoice/resequencing>`
|
||||
invoices might be necessary.
|
||||
|
||||
.. _accounting/invoice/resequencing:
|
||||
|
||||
Resequencing
|
||||
------------
|
||||
|
||||
Resequencing is not possible:
|
||||
|
||||
- When entries are before a lock date.
|
||||
- When the sequence leads to a duplicate.
|
||||
- When the :guilabel:`Invoice Date` doesn't match the date contained in the new sequence number,
|
||||
e.g., if the sequence is changed to INV/2023/XXXXX for a document with an :guilabel:`Invoice Date`
|
||||
of 2024.
|
||||
|
||||
To change the invoice sequence with the structure INV/YYYY/MM/number, add `/MM` with the number of
|
||||
the month of the :guilabel:`Invoice date`. Odoo will recognize the "/" term as a month and update
|
||||
the future invoice sequence appropriately with the month of the :guilabel:`Invoice date`. For
|
||||
example, if the invoice date is January, change the sequence to `INV/2024/01/XXXXX`.
|
||||
|
||||
In this case, if the :guilabel:`Invoice date` isn't aligned with the sequence number, a
|
||||
:guilabel:`Validation Error` message appears.
|
||||
|
||||
.. note::
|
||||
|
||||
- All sequence changes are logged in the chatter to keep the information.
|
||||
- Sequence changes also affect the format of future invoices' sequences.
|
||||
|
||||
.. _accounting/invoice/resequencing-one-invoice:
|
||||
|
||||
Resequencing a single invoice
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To resequence the last confirmed invoice, click :guilabel:`Reset to Draft`, then change the
|
||||
sequence. The invoice now appears in red on the :guilabel:`Customer Invoices` list.
|
||||
|
||||
.. _accounting/invoice/mass-resequencing:
|
||||
|
||||
Mass-resequencing invoices
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
It can be helpful to resequence multiple invoice numbers. For example, when importing invoices from
|
||||
another invoicing or accounting system and the reference originates from the previous software,
|
||||
continuity for the current year must be maintained without restarting from the beginning.
|
||||
|
||||
.. note::
|
||||
This feature is only available to users with administrator or advisor access.
|
||||
|
||||
Follow these steps to resequence invoice numbers:
|
||||
|
||||
#. Activate the :ref:`developer mode <developer-mode>`.
|
||||
#. From the :guilabel:`Accounting Dashboard`, open the :guilabel:`Customer Invoices` journal.
|
||||
#. Select the invoices that need a new sequence.
|
||||
#. Click the :icon:`fa-cog` :guilabel:`Actions` menu and select :guilabel:`Resequence`.
|
||||
#. In the :guilabel:`Ordering` field, choose to
|
||||
|
||||
- :guilabel:`Keep current order`: The order of the numbers remains the same.
|
||||
- :guilabel:`Reorder by accounting date`: The number is reordered by accounting date.
|
||||
#. Set the :guilabel:`First New Sequence`.
|
||||
#. :guilabel:`Preview Modifications` and click :guilabel:`Confirm`.
|
||||
|
||||
The first invoice using the new sequence appears in red in the :guilabel:`Customer Invoices` list.
|
||||
|
||||
.. image:: customer_invoices/invoice-sequencing.png
|
||||
:alt: Resequence options window
|
||||
|
||||
.. _accounting/invoice/reporting:
|
||||
|
||||
Reporting
|
||||
@@ -270,18 +194,18 @@ go to :menuselection:`Accounting --> Reporting --> Partner Ledger`.
|
||||
Aged Receivable
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
To review outstanding customer invoices and their related due dates, use the
|
||||
:ref:`Aged Receivable <accounting/reporting/aged-receivable>` report. To access it, go to
|
||||
:menuselection:`Accounting --> Reporting --> Aged Receivable`.
|
||||
To review outstanding customer invoices and their related due dates, use the :ref:`Aged Receivable
|
||||
<accounting/reporting/aged-receivable>` report. To access it, go to :menuselection:`Accounting -->
|
||||
Reporting --> Aged Receivable`.
|
||||
|
||||
.. _accounting/invoices/aged-payable:
|
||||
|
||||
Aged Payable
|
||||
~~~~~~~~~~~~
|
||||
|
||||
To review outstanding vendor bills and their related due dates, use the
|
||||
:ref:`Aged Payable <accounting/reporting/aged-payable>` report. To access it, go to
|
||||
:menuselection:`Accounting --> Reporting --> Aged Payable`.
|
||||
To review outstanding vendor bills and their related due dates, use the :ref:`Aged Payable
|
||||
<accounting/reporting/aged-payable>` report. To access it, go to :menuselection:`Accounting -->
|
||||
Reporting --> Aged Payable`.
|
||||
|
||||
.. _accounting/invoices/profit-and-loss:
|
||||
|
||||
@@ -311,6 +235,7 @@ liabilities, and equity at a specific time.
|
||||
customer_invoices/cash_rounding
|
||||
customer_invoices/deferred_revenues
|
||||
customer_invoices/electronic_invoicing
|
||||
customer_invoices/sequence
|
||||
customer_invoices/snailmail
|
||||
customer_invoices/epc_qr_code
|
||||
customer_invoices/incoterms
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
================
|
||||
Invoice sequence
|
||||
================
|
||||
|
||||
When confirming an invoice, Odoo generates a unique invoice reference number. By default, Odoo uses
|
||||
the following sequence format `INV/year/incrementing-number` (e.g., `INV/2025/00001`), which
|
||||
restarts from `00001` each year.
|
||||
|
||||
However, it is possible to :ref:`change the sequence format <accounting/invoice/resequencing>` and
|
||||
its periodicity, and to :ref:`mass-resequence invoices <accounting/invoice/mass-resequencing>`.
|
||||
|
||||
.. note::
|
||||
Changes made to reference numbers are logged in the chatter.
|
||||
|
||||
.. _accounting/invoice/resequencing:
|
||||
|
||||
Changing the default sequence
|
||||
=============================
|
||||
|
||||
To customize the default sequence, open the last confirmed invoice, click :guilabel:`Reset to
|
||||
Draft`, and edit the invoice's reference number.
|
||||
|
||||
.. image:: sequence/reference-number.png
|
||||
:alt: Editing the reference number of an invoice.
|
||||
|
||||
Odoo then explains how the detected format will be applied to all future invoices. For example, if
|
||||
the current invoice's month is added, the sequence's periodicity will change to every month instead
|
||||
of every year.
|
||||
|
||||
.. image:: sequence/sequence-dialog.png
|
||||
:alt: Editing the reference number of an invoice.
|
||||
|
||||
.. tip::
|
||||
The sequence format can be edited directly when creating the first invoice of a given sequence
|
||||
period.
|
||||
|
||||
.. _accounting/invoice/mass-resequencing:
|
||||
|
||||
Mass-resequencing invoices
|
||||
==========================
|
||||
|
||||
It can be helpful to resequence multiple invoice numbers. For example, when importing invoices from
|
||||
another invoicing or accounting system and the reference originates from the previous software,
|
||||
continuity for the current year must be maintained without restarting from the beginning.
|
||||
|
||||
.. note::
|
||||
This feature is only available to users with administrator or advisor access.
|
||||
|
||||
Follow these steps to resequence invoice numbers:
|
||||
|
||||
#. Activate the :ref:`developer mode <developer-mode>`.
|
||||
#. From the :guilabel:`Accounting Dashboard`, open the :guilabel:`Customer Invoices` journal.
|
||||
#. Select the invoices that need a new sequence.
|
||||
#. Click the :icon:`fa-cog` :guilabel:`Actions` menu and select :guilabel:`Resequence`.
|
||||
#. In the :guilabel:`Ordering` field, choose to
|
||||
|
||||
- :guilabel:`Keep current order`: The order of the numbers remains the same.
|
||||
- :guilabel:`Reorder by accounting date`: The number is reordered by accounting date.
|
||||
|
||||
#. Set the :guilabel:`First New Sequence`.
|
||||
#. :guilabel:`Preview Modifications` and click :guilabel:`Confirm`.
|
||||
|
||||
The first invoice using the new sequence appears in red in the :guilabel:`Customer Invoices` list.
|
||||
|
||||
.. image:: sequence/invoice-sequencing.png
|
||||
:alt: Resequence options window
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
@@ -173,7 +173,8 @@ expression's **label** (ex. **code.label**).
|
||||
`CUR` is the currency code in capital letters, and `amount` is the amount of the bound expressed in
|
||||
that currency.
|
||||
|
||||
You can also use the `cross_report` subformula to match an expression found in another report.
|
||||
`cross_report(xml_id | report_id)`
|
||||
Used to match an expression from another report targeted by the xml_id or the report ID itself.
|
||||
|
||||
'Prefix of Account Codes' engine
|
||||
--------------------------------
|
||||
|
||||
@@ -2,22 +2,20 @@
|
||||
Locations dashboard
|
||||
===================
|
||||
|
||||
.. |down| replace:: :icon:`fa-caret-down` :guilabel:`(caret down)`
|
||||
|
||||
The *Locations* dashboard in the *Inventory* application provides an overview of on-hand storage
|
||||
The *Locations* dashboard in the **Inventory** application provides an overview of on-hand storage
|
||||
locations for company products. Use this report to see where stock is stored, identify
|
||||
:ref:`misplaced items <inventory/warehouse_storage/stranded>`, or view past inventory to see product
|
||||
locations on specific dates.
|
||||
|
||||
.. note::
|
||||
The *Reporting* menu in *Inventory* is only accessible to users with :doc:`admin access
|
||||
<../../../../general/users/access_rights>`.
|
||||
|
||||
To access the locations report, the *Storage Locations* feature must be enabled. To do that, go to
|
||||
:menuselection:`Inventory app --> Configuration --> Settings`. In the :guilabel:`Warehouse` section,
|
||||
tick the checkbox for :guilabel:`Storage Locations`, and click :guilabel:`Save`. Then, access the
|
||||
locations dashboard by navigating to :menuselection:`Inventory app --> Reporting --> Locations`.
|
||||
|
||||
.. note::
|
||||
The *Reporting* menu in **Inventory** is only accessible to users with :doc:`admin access
|
||||
<../../../../general/users/access_rights>`.
|
||||
|
||||
.. _inventory/warehouses_storage/locations-report:
|
||||
|
||||
Navigate the locations dashboard
|
||||
@@ -31,7 +29,7 @@ By default, the :guilabel:`Locations` dashboard lists all on-hand products in st
|
||||
- :guilabel:`Package`: the package that the product is stored in, if any.
|
||||
- :guilabel:`Lot/Serial Number`: if the product has a lot or serial number, it is specified here.
|
||||
- :guilabel:`On Hand Quantity`: current quantity of products. Click the :icon:`fa-pencil`
|
||||
:guilabel:`(pencil)` icon to :doc:`modify the on-hand quantity
|
||||
:guilabel:`(edit)` icon to :doc:`modify the on-hand quantity
|
||||
<../inventory_management/count_products>`.
|
||||
- :guilabel:`Reserved Quantity`: on-hand quantity reserved for operations, such as pickings,
|
||||
delivery orders, or manufacturings.
|
||||
@@ -47,25 +45,35 @@ Click the buttons to the right of each row item to access additional information
|
||||
View what the product is reserved for, by clicking the :icon:`fa-history` :guilabel:`History`
|
||||
button on the far-right of the product line.
|
||||
|
||||
On the :guilabel:`Moves History` page, remove the :icon:`fa-filter` :guilabel:`Done` filter.
|
||||
Then, click the |down| icon to the right of the :guilabel:`Search...` bar to reveal filter
|
||||
options, and select the :guilabel:`To Do` filter.
|
||||
On the :guilabel:`Moves History` page, remove the :icon:`fa-filter` :guilabel:`Done` filter
|
||||
from the search bar to reveal filter options, and select the :guilabel:`To Do` filter.
|
||||
|
||||
.. image:: locations/reserved-products.png
|
||||
:align: center
|
||||
:alt: Display *Moves History* page of to-do deliveries that reserved the product.
|
||||
|
||||
- :icon:`fa-refresh` :guilabel:`Replenishment`: access the :doc:`reordering rules
|
||||
<../replenishment/reordering_rules>` page to replenish products at the specific location.
|
||||
|
||||
In the upper-left corner of the page, click the the :guilabel:`New` button to make an
|
||||
:doc:`inventory adjustment <../inventory_management/count_products>` to record quantities of a
|
||||
certain product at a specific :guilabel:`Location`.
|
||||
In the upper-left corner of the page, click the :guilabel:`New` button to make an :doc:`inventory
|
||||
adjustment <../inventory_management/count_products>` to record quantities of a certain product at a
|
||||
specific :guilabel:`Location`.
|
||||
|
||||
To view products, quantities, and their locations for a specified date, click the
|
||||
:guilabel:`Inventory At Date` button (also located in the upper-left corner of the page). Select a
|
||||
date and time in the :guilabel:`Inventory at Date` field, then click :guilabel:`Confirm`.
|
||||
|
||||
View empty locations
|
||||
--------------------
|
||||
|
||||
To view which locations are currently empty, navigate to :menuselection:`Inventory --> Configuration
|
||||
--> Locations`.
|
||||
|
||||
Empty locations are designated by the checkbox in the :guilabel:`Is Empty` column. To show only
|
||||
empty locations, click into the search bar and select the :guilabel:`Empty Locations` filter.
|
||||
|
||||
.. image:: locations/empty-locations.png
|
||||
:alt: A list of the empty locations in the Inventory app.
|
||||
|
||||
Generate reports
|
||||
================
|
||||
|
||||
@@ -82,8 +90,8 @@ Dead stock report
|
||||
To get list of expired items, also referred to as *dead stock*, follow these steps:
|
||||
|
||||
#. Go to :menuselection:`Inventory app --> Reporting --> Locations`.
|
||||
#. Then, click the |down| icon to the right of the :guilabel:`Search...` bar to reveal a drop-down
|
||||
list of :guilabel:`Filters`, :guilabel:`Group By`, and :guilabel:`Favorite` options.
|
||||
#. Then, click into the search bar to reveal a drop-down list of :guilabel:`Filters`,
|
||||
:guilabel:`Group By`, and :guilabel:`Favorite` options.
|
||||
#. Enable the :guilabel:`Internal Locations` and :guilabel:`Expiration Alerts` option under the
|
||||
:guilabel:`Filters` section.
|
||||
|
||||
@@ -95,7 +103,6 @@ The report now displays a list of expired products.
|
||||
:menuselection:`Inventory app --> Products --> Lots/Serial Numbers`.
|
||||
|
||||
.. image:: locations/dead-stock.png
|
||||
:align: center
|
||||
:alt: Show a list of products whose expiration dates have exceeded today.
|
||||
|
||||
.. _inventory/warehouse_storage/stranded:
|
||||
@@ -103,21 +110,20 @@ The report now displays a list of expired products.
|
||||
Stranded inventory report
|
||||
-------------------------
|
||||
|
||||
Businesses using multi-step flows in the *Inventory* or *Manufacturing* apps, may have *stranded*
|
||||
items, which are products not in their proper storage locations, due to human error. Use this report
|
||||
to periodically check transfer locations (e.g. *WH/Input*, *WH/Pre-Processing*) to ensure items are
|
||||
moved to their intended storage locations, and accurately recorded in the database.
|
||||
Businesses using multi-step flows in the **Inventory** or **Manufacturing** apps, may have
|
||||
*stranded* items, which are products not in their proper storage locations, due to human error. Use
|
||||
this report to periodically check transfer locations (e.g. *WH/Input*, *WH/Pre-Processing*) to
|
||||
ensure items are moved to their intended storage locations, and accurately recorded in the database.
|
||||
|
||||
To get a list of items that might be sitting idly in storage, follow these steps:
|
||||
|
||||
#. Go to :menuselection:`Inventory app --> Reporting --> Locations`.
|
||||
#. In the :guilabel:`Search...` bar, begin typing the name of the location where products are
|
||||
intended to be moved to, such as `WH/Input`, or `WH/Packing`.
|
||||
#. In the search bar, begin typing the name of the location where products are intended to be moved
|
||||
to, such as `WH/Input`, or `WH/Packing`.
|
||||
#. Select the :guilabel:`Search Location for:` [location name] option from the resulting drop-down
|
||||
menu that appears beneath the :guilabel:`Search...` bar.
|
||||
menu that appears beneath the search bar.
|
||||
|
||||
.. image:: locations/search-input-location.png
|
||||
:align: center
|
||||
:alt: Show search result for the location.
|
||||
|
||||
The report now displays a list of products at the transit location.
|
||||
@@ -130,7 +136,6 @@ The report now displays a list of products at the transit location.
|
||||
non-storage locations.
|
||||
|
||||
.. image:: locations/stranded-inventory.png
|
||||
:align: center
|
||||
:alt: Show items stored at a specific location.
|
||||
|
||||
Inventory discrepancy report
|
||||
@@ -140,20 +145,17 @@ To generate a report of items that have been moved since the last :doc:`inventor
|
||||
<../inventory_management/cycle_counts>`, follow these steps:
|
||||
|
||||
#. Go to :menuselection:`Inventory app --> Reporting --> Locations`.
|
||||
#. Then, click the |down| icon to the right of the :guilabel:`Search...` bar to reveal a drop-down
|
||||
list of :guilabel:`Filters`, :guilabel:`Group By`, and :guilabel:`Favorite` options.
|
||||
#. Then, click into the search bar to reveal a drop-down list of :guilabel:`Filters`,
|
||||
:guilabel:`Group By`, and :guilabel:`Favorite` options.
|
||||
#. Enable the :guilabel:`Internal Locations` and :guilabel:`Conflicts` option from the
|
||||
:guilabel:`Filters` section.
|
||||
#. The report now displays items whose quantities have changed since the last cycle count.
|
||||
|
||||
.. image:: locations/discrepancy.png
|
||||
:align: center
|
||||
:alt: Show items from the *Conflicts* filter in the report.
|
||||
|
||||
#. Click the :icon:`fa-history` :guilabel:`History` button to view inventory transfers, including
|
||||
receipts and deliveries, that have occurred since the inventory adjustment.
|
||||
|
||||
.. image:: locations/history.png
|
||||
:align: center
|
||||
:alt: Show *Moves History*, showing a delivery that occurred after an inventory adjustment.
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
@@ -10,5 +10,6 @@ Manage deals
|
||||
manage_deals/rfq
|
||||
manage_deals/blanket_orders
|
||||
manage_deals/calls_for_tenders
|
||||
manage_deals/purchase_templates
|
||||
manage_deals/control_bills
|
||||
manage_deals/manage
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
==================
|
||||
Purchase templates
|
||||
==================
|
||||
|
||||
.. |Pts| replace:: Purchase templates
|
||||
.. |pt| replace:: purchase template
|
||||
.. |RFQ| replace:: :abbr:`RFQ (request for quotation)`
|
||||
.. |RFQs| replace:: :abbr:`RFQs (requests for quotation)`
|
||||
|
||||
*Purchase templates* are an agreement type that allow for the repeated creation of requests for
|
||||
quotations (RFQs) for recurring purchases. Products can then be added and quantities can be changed,
|
||||
as needed. |Pts| can be used for multiple vendors, saving time and simplifying the |RFQ| process.
|
||||
|
||||
|Pts| differ from *blanket orders* in that a :doc:`blanket order <blanket_orders>` is a large order
|
||||
split into several deliveries, therefore all |RFQs| must be for the same vendor. |PTs| can be
|
||||
replicated for multiple vendors, and can copy over quantities, which is useful when placing frequent
|
||||
orders.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
First, navigate to :menuselection:`Purchase app --> Configuration --> Settings`. Under the
|
||||
:guilabel:`Orders` section, tick the :guilabel:`Purchase Agreements` checkbox. Click
|
||||
:guilabel:`Save` to save the changes.
|
||||
|
||||
.. image:: purchase_templates/purchase-agreements-setting.png
|
||||
:alt: The Purchase agreements setting in the Purchase app.
|
||||
|
||||
Create a new template
|
||||
---------------------
|
||||
|
||||
Navigate :menuselection:`Purchase app --> Orders --> Purchase Agreements` and click :guilabel:`New`.
|
||||
|
||||
Select a :guilabel:`Vendor` from the drop-down list.
|
||||
|
||||
.. tip::
|
||||
To make this template available to use with multiple vendors, leave the :guilabel:`Vendor` field
|
||||
blank.
|
||||
|
||||
In the :guilabel:`Agreement Type` field, select :guilabel:`Purchase Template` from the drop-down.
|
||||
|
||||
Confirm the information in the remaining fields is correct, or update as needed.
|
||||
|
||||
On the :guilabel:`Products` tab, click :guilabel:`Add a line`, and select the desired product.
|
||||
Update the :guilabel:`Quantity`, and set the :guilabel:`Unit Price`.
|
||||
|
||||
.. important::
|
||||
When adding products to a new blanket order, the pre-existing prices of products are not
|
||||
automatically added to the product lines. Instead, the prices **must** be manually assigned, by
|
||||
changing the value in the :guilabel:`Unit Price` column to an agreed-upon price with the listed
|
||||
vendor. Otherwise, the price will remain `0`.
|
||||
|
||||
After adding all necessary products, click :guilabel:`Confirm`.
|
||||
|
||||
Create a new RFQ from a purchase template
|
||||
=========================================
|
||||
|
||||
After confirming a |pt|, new quotations can be created directly from the |pt| form. |RFQs| using
|
||||
this form are pre-populated with information based on the rules set in the form. Additionally, new
|
||||
quotations are automatically linked to this |pt| form, via the :icon:`fa-list-alt`
|
||||
:guilabel:`RFQs/Orders` smart button at the top of the form.
|
||||
|
||||
To :ref:`create a new quotation <purchase/manage_deals/create-new-rfq>`, click :guilabel:`New
|
||||
Quotation`. This opens a new |RFQ|, that is pre-populated with the correct information, depending on
|
||||
the settings configured on the |pt| form.
|
||||
|
||||
If there was no vendor identified on the |pt|, choose a :guilabel:`Vendor` from the drop-down list.
|
||||
Products can be added to the |RFQ| by clicking :guilabel:`Add a product` in the :guilabel:`Products`
|
||||
tab. To remove a product, click the :icon:`fa-trash-o` :guilabel:`(trash)` icon at the far-right of
|
||||
the product line.
|
||||
|
||||
From the new |RFQ| form, click :guilabel:`Send by Email` to compose and send an email to the listed
|
||||
vendor. Click :guilabel:`Print RFQ` to generate a printable PDF of the quotation; or, once ready,
|
||||
click :guilabel:`Confirm Order` to confirm the purchase order.
|
||||
|
||||
After confirming the order, return to the |pt| via the breadcrumbs. The :icon:`fa-list-alt`
|
||||
:guilabel:`RFQs/Orders` smart button has been updated to list the confirmed order.
|
||||
|
||||
.. image:: purchase_templates/rfq-smart-button.png
|
||||
:alt: The RFQ smart button on a purchase template.
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 17 KiB |
@@ -91,6 +91,8 @@ In addition to various view options, the :guilabel:`Requests for Quotation` dash
|
||||
.. seealso::
|
||||
:doc:`../../../essentials/search`
|
||||
|
||||
.. _purchase/manage_deals/create-new-rfq:
|
||||
|
||||
Create new |RFQ|
|
||||
----------------
|
||||
|
||||
|
||||
@@ -3,12 +3,20 @@ Configure reordering rules
|
||||
==========================
|
||||
|
||||
For certain products, it is necessary to ensure that there is always a minimum amount available on
|
||||
hand at any given time. By adding a reordering rule to a product, it is possible to automate the
|
||||
reordering process so that a purchase order is automatically created whenever the amount on hand
|
||||
falls below a set threshold.
|
||||
hand at any given time. Maintaining a minimum stock level ensures that businesses can meet customer
|
||||
demand without delays, and keep operations running smoothly. It also helps buffer against supply
|
||||
chain disruptions and unexpected spikes in demand. Inefficiencies may arise from inaccurate demand
|
||||
forecasting, supply chain delays, and warehouse mismanagement, all of which can lead to increased
|
||||
operational costs and wasted resources.
|
||||
|
||||
Keep highly demanded products in-stock at all times using reordering rules, that trigger a RFQ
|
||||
(Request for Quotation) each time the forecasted stock quantities fall below the minimum.
|
||||
:abbr:`RFQs (Requests for Quotation)` generated from reordering rules have the vendor, price,
|
||||
quantity needed to reorder, which makes things faster and more convenient.
|
||||
|
||||
.. important::
|
||||
The *Inventory* module must be installed to use reordering rules.
|
||||
The **Inventory** app must be installed to use reordering rules, as it keeps track of stock
|
||||
quantity.
|
||||
|
||||
Configure products for reordering
|
||||
=================================
|
||||
@@ -16,28 +24,29 @@ Configure products for reordering
|
||||
Products must be configured in a specific way before a reordering rule can be added to them.
|
||||
|
||||
Starting from the :menuselection:`Inventory`, :menuselection:`Manufacturing`,
|
||||
:menuselection:`Purchase`, or :menuselection:`Sales` module, navigate to :menuselection:`Products
|
||||
--> Products` and then click :guilabel:`Create` to make a new product. Alternatively, find a product
|
||||
that already exists in the database and click into it's product form.
|
||||
:menuselection:`Purchase`, or :menuselection:`Sales` app, navigate to :menuselection:`Products -->
|
||||
Products` and then click :guilabel:`New` to make a new product. Alternatively, find a product that
|
||||
already exists in the database and click into it's product form.
|
||||
|
||||
Next, on the product form, enable reordering by checking the :guilabel:`Can be Purchased` option
|
||||
underneathe the :guilabel:`Product Name` field. Finally, set the :guilabel:`Product Type` to
|
||||
`Storable Product` under the :guilabel:`General Information` tab.
|
||||
Next, on the product form, enable reordering by ticking the :guilabel:`Purchase` checkbox
|
||||
underneath the :guilabel:`Product` name field. Then, under the :guilabel:`General Information` tab,
|
||||
set the :guilabel:`Product Type` to :guilabel:`Goods`. Finally, tick the checkbox labeled
|
||||
:guilabel:`Track Inventory`, and select an :doc:`option
|
||||
<../../inventory/product_management/product_tracking>` from the drop-down.
|
||||
|
||||
.. image:: reordering/product-configured-for-reordering.png
|
||||
:align: center
|
||||
:alt: Configure a product for reordering in Odoo.
|
||||
|
||||
Add a reordering rule to a product
|
||||
==================================
|
||||
|
||||
After properly configuring a product, a reordering rule can be added to it by selecting the now
|
||||
visible :guilabel:`Reordering Rules` tab at the top of that product's form, and then clicking
|
||||
:guilabel:`Create` on the :guilabel:`Reordering Rules` dashboard.
|
||||
visible :icon:`fa-refresh` :guilabel:`Reordering Rules` smart button at the top of that product's
|
||||
form, then clicking :guilabel:`Create` on the :guilabel:`Reordering Rules` dashboard.
|
||||
|
||||
.. image:: reordering/reordering-rules-tab.png
|
||||
:align: center
|
||||
:alt: Access reordering rules for a product from the product page in Odoo.
|
||||
.. tip::
|
||||
If the :icon:`fa-refresh` :guilabel:`Reordering Rules` smart button is not visible, click
|
||||
:guilabel:`More`.
|
||||
|
||||
Once created, the reordering rule can be configured to generate purchase orders automatically by
|
||||
defining the following fields:
|
||||
@@ -46,11 +55,11 @@ defining the following fields:
|
||||
received and entered into stock.
|
||||
- :guilabel:`Min Quantity` sets the lower threshold for the reordering rule while :guilabel:`Max
|
||||
Quantity` sets the upper threshold. If the stock on hand falls below the minimum quantity, a new
|
||||
purchase order will be created to replenish it up to the maximum quantity.
|
||||
purchase order is then created to replenish it up to the maximum quantity.
|
||||
|
||||
.. example::
|
||||
If :guilabel:`Min Quantity` is set to `5` and :guilabel:`Max Quantity` is set to `25` and the
|
||||
stock on hand falls to four, a purchase order will be created for 21 units of the product.
|
||||
stock on hand falls to four, a purchase order is then created for 21 units of the product.
|
||||
|
||||
- :guilabel:`Multiple Quantity` can be configured so that products are only ordered in batches of a
|
||||
certain quantity. Depending on the number entered, this can result in the creation of a purchase
|
||||
@@ -59,24 +68,26 @@ defining the following fields:
|
||||
|
||||
.. example::
|
||||
If :guilabel:`Max Quantity` is set to `100` but :guilabel:`Multiple Quantity` is set to order
|
||||
the product in batches of `200`, a purchase order will be created for 200 units of the
|
||||
the product in batches of `200`, a purchase order is then created for 200 units of the
|
||||
product.
|
||||
|
||||
- :guilabel:`UoM` specifies the unit of measurement by which the quantity will be ordered. For
|
||||
- :guilabel:`Unit` specifies the unit of measurement by which the quantity is to be ordered. For
|
||||
discrete products, this should be set to `Units`. However, it can also be set to units of
|
||||
measurement like `Volume` or `Weight` for non-discrete products like water or bricks.
|
||||
|
||||
.. image:: reordering/reordering-rule-configuration.png
|
||||
:align: center
|
||||
:alt: Configure the reordering rule in Odoo.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../../inventory/warehouses_storage/replenishment/reordering_rules`
|
||||
|
||||
Manually trigger reordering rules using the scheduler
|
||||
=====================================================
|
||||
|
||||
Reordering rules will be automatically triggered by the scheduler, which runs once a day by
|
||||
default. To trigger reordering rules manually, navigate to :menuselection:`Inventory --> Operations
|
||||
--> Run Scheduler`. On the pop-up window, confirm the manual action by clicking :guilabel:`Run
|
||||
Scheduler`.
|
||||
Reordering rules are automatically triggered by the scheduler, which runs once a day by default. To
|
||||
trigger reordering rules manually, turn on developer mode, navigate to :menuselection:`Inventory app
|
||||
--> Operations --> Procurement: Run Scheduler`. On the pop-up window, confirm the manual action by
|
||||
clicking :guilabel:`Run Scheduler`.
|
||||
|
||||
.. note::
|
||||
Manually triggering reordering rules will also trigger any other scheduled actions.
|
||||
@@ -85,10 +96,10 @@ Manage reordering rules
|
||||
=======================
|
||||
|
||||
To manage the reordering rules for a single product, navigate to that product page's form and select
|
||||
the :guilabel:`Reordering Rules` tab at the top of the form.
|
||||
the :guilabel:`Reordering Rules` smart button at the top of the form.
|
||||
|
||||
To manage all reordering rules for every product, go to :menuselection:`Inventory --> Configuration
|
||||
--> Reordering Rules`. From this dashboard, typical bulk actions in Odoo can be performed such as
|
||||
To manage all reordering rules for every product, go to :menuselection:`Inventory app --> Operations
|
||||
--> Replenishment`. From this dashboard, typical bulk actions in Odoo can be performed such as
|
||||
exporting data or archiving rules that are no longer needed. As well, the :guilabel:`Filters`,
|
||||
:guilabel:`Group By` or triple-dotted menu on the form are available to search for and/or organize
|
||||
the reordering rules as desired.
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 13 KiB |
@@ -21,6 +21,7 @@ Then, as the QR code type differs depending on your country, follow the correspo
|
||||
page from the following table to set them up.
|
||||
|
||||
.. list-table::
|
||||
:widths: 20 20 20 40
|
||||
:header-rows: 1
|
||||
|
||||
* - QR code types
|
||||
@@ -75,6 +76,7 @@ Create the payment method
|
||||
|
||||
.. image:: qr_code_payment/qr-payment-methods-setting.png
|
||||
:alt: QR code payment method configuration
|
||||
:scale: 85 %
|
||||
|
||||
.. important::
|
||||
At least one bank account must be defined in the journal to allow QR code payments to be
|
||||
@@ -85,6 +87,7 @@ the payment method to your POS under the :guilabel:`Payment` section.
|
||||
|
||||
.. image:: qr_code_payment/qr-configuration-setting.png
|
||||
:alt: Enable QR code payment method
|
||||
:scale: 85 %
|
||||
|
||||
Register payments using QR codes
|
||||
================================
|
||||
@@ -94,6 +97,7 @@ and displayed on the screen for the customer to scan and pay with their mobile b
|
||||
|
||||
.. image:: qr_code_payment/qr-payment-example.png
|
||||
:alt: QR code payment example
|
||||
:scale: 75 %
|
||||
|
||||
Hit :guilabel:`Confirm Payment` to validate the transaction.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 18 KiB |
@@ -21,3 +21,4 @@ deliver and invoice what has been sold.
|
||||
sales/products_prices
|
||||
sales/amazon_connector
|
||||
sales/shopee_connector
|
||||
sales/gelato
|
||||
|
||||
@@ -1,7 +1,164 @@
|
||||
:orphan:
|
||||
|
||||
======
|
||||
Gelato
|
||||
======
|
||||
|
||||
The documentation for Gelato will be added soon.
|
||||
Gelato is a global print-on-demand platform that integrates with Odoo to sync product catalogs and
|
||||
automate order fulfillment.
|
||||
|
||||
Connecting Gelato's services with Odoo's **Sales** and **eCommerce** apps enables the following:
|
||||
|
||||
- Sync Odoo sales orders with Gelato for automated order fulfillment
|
||||
- Create and manage Gelato products within Odoo; supports product variant and image sync
|
||||
- Configure delivery options in Odoo and receive order updates via webhooks.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
.. important::
|
||||
The company information (*Company name* and *Billing address*) in the Gelato account *must* match
|
||||
the company information in the Odoo database in order for sales orders to be confirmed and sent
|
||||
to Gelato for fulfillment.
|
||||
|
||||
.. image:: gelato/gelato-company.png
|
||||
:alt: Company information in Gelato.
|
||||
|
||||
.. image:: gelato/odoo-company.png
|
||||
:alt: Company information in Odoo.
|
||||
|
||||
Configure API keys and webhooks in Gelato
|
||||
-----------------------------------------
|
||||
|
||||
Before configuring the Gelato connector in Odoo, first obtain API credentials and webhooks from the
|
||||
Gelato account.
|
||||
|
||||
API connectors enable Odoo **Sales** to send and receive data from Gelato for order processing,
|
||||
while webhooks provide real-time updates on order status and shipment tracking.
|
||||
|
||||
API Key
|
||||
~~~~~~~
|
||||
|
||||
An API Key is a unique authentication token that allows Odoo to securely communicate with Gelato's
|
||||
API, enabling order transmission, status updates, and data synchronization.
|
||||
|
||||
After logging into Gelato, click :icon:`fa-code` :guilabel:`Developer` in the left menu bar. From
|
||||
here, click on :guilabel:`API keys`. In the new page, click the :guilabel:`Add API Key` button to
|
||||
open a new API key form. Type in a name, then click :guilabel:`Create Key`.
|
||||
|
||||
Copy the generated API key using :guilabel:`Copy to Clipboard`.
|
||||
|
||||
.. image:: gelato/gelato-api-key.png
|
||||
:alt: Newly generated API key in the Gelato platform.
|
||||
|
||||
.. important::
|
||||
Copy the API key and store it somewhere safe and secure before leaving this page. Once the page
|
||||
is refreshed or exited, the key will not be available to copy.
|
||||
|
||||
If the key cannot be copied or is lost, return to the :guilabel:`API key` page and start over,
|
||||
creating a new API key.
|
||||
|
||||
Webhook
|
||||
~~~~~~~
|
||||
|
||||
A webhook is an automated notification system that instantly updates Odoo when Gelato processes,
|
||||
ships, or delivers an order, ensuring real-time tracking and minimal manual intervention.
|
||||
|
||||
To create a webhook, go to :menuselection:`Developer --> Webhooks` under the :guilabel:`Developer`
|
||||
drop-down menu in the left menu bar. In the new page, click :guilabel:`Add Webhook` to open a
|
||||
:guilabel:`Create Webhook` form.
|
||||
|
||||
The webhook form requires several specific configurations:
|
||||
|
||||
- :guilabel:`URL`: This tells Gelato where to send the order updates in Odoo. Copy and paste the
|
||||
Odoo database URL with the additional suffix `/gelato/webhook`.
|
||||
|
||||
.. example::
|
||||
`https://stealthywood.odoo.com/gelato/webhook`
|
||||
|
||||
- :guilabel:`Events`: Click into the field and select :guilabel:`order_status_updated`. Selecting
|
||||
:guilabel:`order_status_updated` ensures Odoo receives order changes automatically.
|
||||
- :guilabel:`Method`: Click into the field and select the :guilabel:`HTTP Post` option, as this is
|
||||
the request method used to send data from Gelato to Odoo.
|
||||
- Tick the checkbox next to :guilabel:`I want to take Authorization to this webhook`.
|
||||
- :guilabel:`Header Name`: In this field, type in `signature` to match the field in Odoo.
|
||||
- Click :guilabel:`Generate Key` to generate a :guilabel:`Header Value`.
|
||||
- Click :guilabel:`Create` to complete this webhook configuration.
|
||||
|
||||
.. image:: gelato/gelato-webhook.png
|
||||
:alt: Newly configured webhook in the Gelato platform.
|
||||
|
||||
.. tip::
|
||||
Copy and paste the API key and webhook on a notepad before tabbing out of the Gelato webpage as
|
||||
backup.
|
||||
|
||||
Configure Gelato connector in Odoo
|
||||
----------------------------------
|
||||
|
||||
In Odoo, navigate to :menuselection:`Sales app --> Configuration --> Settings`, then scroll to the
|
||||
:guilabel:`Connectors` section. Enable the :guilabel:`Gelato` connector by ticking the checkbox.
|
||||
Next, paste the newly generated API keys and webhook secret key into their respective fields. Once
|
||||
saved, Gelato is available in Odoo **Sales** and **eCommerce** products.
|
||||
|
||||
Synchronizing Gelato products with Odoo Sales
|
||||
=============================================
|
||||
|
||||
It is recommended to have products already configured in Gelato before configuring them in Odoo. To
|
||||
get the product ID in Gelato, navigate to the :guilabel:`Templates` page from the side bar menu.
|
||||
Select which product to synchronize in Odoo, then hover over the product card to reveal the
|
||||
:icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` menu icon. Click the menu icon, then click
|
||||
:guilabel:`Copy Template ID` to copy the product template ID to the clipboard.
|
||||
|
||||
.. seealso::
|
||||
`Start selling products with Gelato: Quick & easy setup
|
||||
<https://www.gelato.com/blog/get-started-with-gelato-creating-products>`_
|
||||
|
||||
|
||||
Odoo Sales product
|
||||
------------------
|
||||
|
||||
To create a product in Odoo that matches the Gelato product, navigate to :menuselection:`Sales app
|
||||
--> Products --> Products`, select :guilabel:`New` to create a new product form. Type in the product
|
||||
:guilabel:`Name`, then navigate to the :guilabel:`Sales` tab. Find the :guilabel:`Gelato` section,
|
||||
then click into the :guilabel:`Template Reference` field and paste the copied template ID from the
|
||||
Gelato product. Finally, click :guilabel:`Synchronize`.
|
||||
|
||||
Successful synchronization pulls the Gelato product variant options into the newly configured Odoo
|
||||
product.
|
||||
|
||||
In the new :guilabel:`Print Images` field, click the :guilabel:`default` marker to set a default
|
||||
product image. Click the :icon:`fa-pencil` :guilabel:`(edit)` icon and select the product image file
|
||||
to upload, then :guilabel:`Save & Close`.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Print Images` field *must* be configured on all Gelato products and their
|
||||
respective product variations before they can be ordered.
|
||||
|
||||
Product variants
|
||||
----------------
|
||||
|
||||
To view and edit the newly synchronized product variants, navigate to the :guilabel:`Attributes &
|
||||
Variants` tab, which will have the variants pulled from the Gelato product configuration. Click the
|
||||
:guilabel:`Configure` button to edit and configure the variant images, delivery methods, additional
|
||||
pricing, etc.
|
||||
|
||||
Order a Gelato product from Odoo
|
||||
--------------------------------
|
||||
|
||||
Once synchronized, Gelato products are available to order in Odoo through :doc:`sales quotations
|
||||
<send_quotations>` or on the **eCommerce** store. Gelato delivery options are automatically
|
||||
synchronized upon API and webhook configuration.
|
||||
|
||||
To add Gelato delivery, click :guilabel:`Add shipping` on the sales order. Select
|
||||
:guilabel:`Standard Delivery` or :guilabel:`Express Delivery` in the :guilabel:`Shipping Method`
|
||||
field, then click :guilabel:`Get rate`.
|
||||
|
||||
Once the quotation is confirmed, it becomes an active sales order, and the order is sent to Gelato
|
||||
for fulfillment. Once a sales order is sent from Odoo to Gelato, Gelato processes the order,
|
||||
produces the product at the nearest fulfillment center, and ships it directly to the end-customer.
|
||||
|
||||
.. seealso::
|
||||
:doc:`send_quotations/create_quotations`
|
||||
|
||||
.. important::
|
||||
When creating a sales order for Gelato products in the database, only Gelato products can be
|
||||
added to the same sales order. Multivendor orders are not available with the Gelato connector at
|
||||
this time.
|
||||
|
||||
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 18 KiB |
@@ -132,12 +132,16 @@ to make changes from the GitHub interface.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Linux and macOS
|
||||
.. group-tab:: Linux
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo apt install make -y
|
||||
|
||||
.. group-tab:: macOS
|
||||
|
||||
Follow the `guide to install Make on macOS <https://formulae.brew.sh/formula/make>`_
|
||||
|
||||
.. group-tab:: Windows
|
||||
|
||||
Follow the `guide to install Make on Windows
|
||||
|
||||
@@ -277,6 +277,7 @@ Basic :file:`__manifest__.py` file for such a module looks as following:
|
||||
"name": "COUNTRY - Accounting Reports",
|
||||
"category": "Accounting/Localizations/Reporting",
|
||||
"version": "1.0.0",
|
||||
"author": "Odoo S.A.",
|
||||
"license": "OEEL-1",
|
||||
"depends": [
|
||||
"l10n_XX", "account_reports"
|
||||
|
||||
@@ -766,11 +766,11 @@ widgets, respectively).
|
||||
<field name="arch" type="xml">
|
||||
<form string="Business Trip">
|
||||
<!-- Your usual form view goes here -->
|
||||
<div class="oe_chatter">
|
||||
<chatter>
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
<field name="activity_ids" widget="mail_activity"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</chatter>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -63,7 +63,7 @@ On the other hand, the ``__manifest__.py`` file must describe our module and can
|
||||
Its only required field is the ``name``, but it usually contains much more information.
|
||||
|
||||
Take a look at the
|
||||
`CRM file <https://github.com/odoo/odoo/blob/fc92728fb2aa306bf0e01a7f9ae1cfa3c1df0e10/addons/crm/__manifest__.py#L1-L67>`__
|
||||
`CRM file <https://github.com/odoo/odoo/blob/67a952f30731fc00941587ae165b7a885da0e77e/addons/crm/__manifest__.py>`__
|
||||
as an example. In addition to providing the description of the module (``name``, ``category``,
|
||||
``summary``, ``website``...), it lists its dependencies (``depends``). A dependency means that the
|
||||
Odoo framework will ensure that these modules are installed before our module is installed. Moreover, if
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 18.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-01-28 12:25+0000\n"
|
||||
"POT-Creation-Date: 2025-02-20 16:01+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -341,7 +341,7 @@ msgid "The iOS app cannot be updated and will be deprecated at some point in the
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/administration/mobile.rst:67
|
||||
msgid "While the store apps support multi-accounts, they are not compatible with SS0 authentication."
|
||||
msgid "While the store apps support multi-accounts, they are not compatible with SSO authentication."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/administration/neutralized_database.rst:3
|
||||
@@ -4392,7 +4392,7 @@ msgid "The `num2words` Python package - needed to render textual amounts - does
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/administration/on_premise/packages.rst:135
|
||||
msgid "Odoo 18 'rpm' package supports Fedora 36."
|
||||
msgid "Odoo 18 'rpm' package supports Fedora 38."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/administration/on_premise/packages.rst:137
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 18.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-01-28 12:25+0000\n"
|
||||
"POT-Creation-Date: 2025-02-20 16:01+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -4465,11 +4465,11 @@ msgid "Marketing Automation"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:7
|
||||
msgid "The Odoo *Marketing Automation* application enables users to create dynamic campaigns with actions that automatically occur within a defined duration, such as sending a series of timed mass emails or engaging with leads based on their interactions with marketing campaigns."
|
||||
msgid "Use the Odoo **Marketing Automation** application to create dynamic campaigns with actions that automatically occur within a defined duration, such as sending a series of timed mass emails or engaging with leads based on their interactions with marketing campaigns."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:11
|
||||
msgid "While the application is designed to be user-friendly for quickly creating, launching, and reviewing marketing campaigns, it also provides advanced features to automate repetitive tasks throughout the database."
|
||||
msgid "While the application is designed to be user-friendly for creating, launching, and reviewing marketing campaigns, it also provides advanced features to automate repetitive tasks throughout the database."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:15
|
||||
@@ -4483,57 +4483,53 @@ msgid "`Odoo Tutorials: Marketing <https://www.odoo.com/slides/marketing-27>`_"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:46
|
||||
msgid "To install the *Marketing Automation* application, navigate to the :menuselection:`Apps application` and search for `Marketing Automation`."
|
||||
msgid "To begin, make sure the **Marketing Automation** application is :ref:`installed <general/install>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:49
|
||||
msgid "In the list of results, click the :guilabel:`Activate` button on the :guilabel:`Marketing Automation` application to install it."
|
||||
msgid "Installing the **Marketing Automation** application also installs the :doc:`Email Marketing <email_marketing>` app, as most features of Odoo **Marketing Automation** are dependent on that specific application."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:53
|
||||
msgid "Installing the *Marketing Automation* application also installs the :doc:`Email Marketing <email_marketing>` app, as most features of Odoo *Marketing Automation* are dependent on that specific application."
|
||||
msgid "Additionally, install the :doc:`CRM <../sales/crm>` and :doc:`SMS Marketing <sms_marketing>` applications to access *all* of the features available in **Marketing Automation**."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:57
|
||||
msgid "Additionally, install the :doc:`CRM <../sales/crm>` and :doc:`SMS Marketing <sms_marketing>` applications to access *all* of the features available in *Marketing Automation*."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:60
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:56
|
||||
msgid "The following documentation assumes that all three of these dependent applications are installed on the database."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:66
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:62
|
||||
msgid "Campaigns"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:68
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:64
|
||||
msgid "A *campaign* refers to a workflow of activities that are automatically executed to a target audience, based on predefined filters, triggers, and durations of activities."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:71
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:67
|
||||
msgid "A new campaign can be created from scratch or from a :ref:`template <marketing_automation/campaign-templates>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:74
|
||||
msgid "To create a campaign, navigate to the :menuselection:`Marketing Automation` application, from the main Odoo dashboard, to open the :guilabel:`Campaigns` dashboard. From here, click the :guilabel:`New` button to reveal a new campaign form."
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:70
|
||||
msgid "To create a campaign, navigate to the :menuselection:`Marketing Automation` application and click the :guilabel:`New` button to reveal a new campaign form."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:81
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:76
|
||||
#: ../../content/applications/marketing/marketing_automation/campaign_templates.rst:5
|
||||
#: ../../content/applications/marketing/sms_marketing/marketing_campaigns.rst:82
|
||||
msgid "Campaign templates"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:83
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:78
|
||||
msgid "Odoo provides six campaign templates to help users get started. The campaign template cards **only** display when there are no existing campaigns in the database. Once a campaign has been created, the template cards on the *Campaigns* dashboard are replaced with a Kanban view of the existing campaigns."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:88
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:83
|
||||
msgid "To get started with a template, navigate to the :menuselection:`Marketing Automation` application, from the main Odoo dashboard, to open the :guilabel:`Campaigns` dashboard, which displays six :doc:`campaign template <marketing_automation/campaign_templates>` cards:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
msgid ":guilabel:`🏷️ Tag Hot Contacts`"
|
||||
msgid ":icon:`fa-tag` :guilabel:`Tag Hot Contacts`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
@@ -4541,7 +4537,7 @@ msgid ":guilabel:`Send a welcome email to contacts and tag them if they click it
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
msgid ":guilabel:`✌️ Welcome Flow`"
|
||||
msgid ":icon:`fa-hand-peace-o` :guilabel:`Welcome Flow`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
@@ -4557,7 +4553,7 @@ msgid ":guilabel:`Send an email to new recipients to confirm their consent.`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
msgid ":guilabel:`🔍 Commercial prospection`"
|
||||
msgid ":icon:`fa-search` :guilabel:`Commercial prospection`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
@@ -4565,7 +4561,7 @@ msgid ":guilabel:`Send a free catalog and follow-up according to reactions.`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
msgid ":guilabel:`📞 Schedule Calls`"
|
||||
msgid ":icon:`fa-phone` :guilabel:`Schedule Calls`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
@@ -4573,7 +4569,7 @@ msgid ":guilabel:`If a lead is created for existing contact, schedule a call wit
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
msgid ":guilabel:`⭐️ Prioritize Hot leads`"
|
||||
msgid ":icon:`fa-star` :guilabel:`Prioritize Hot leads`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:0
|
||||
@@ -4584,145 +4580,145 @@ msgstr ""
|
||||
msgid "Six campaign template cards on the Campaigns dashboard of the Marketing Automation app."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:110
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:104
|
||||
msgid "These templates are designed to be used as starting points for creating new campaigns. Click one of the template cards to open the campaign form."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:114
|
||||
msgid "To display the campaign template cards again after a campaign has been created, type the name of a campaign that does **not** exist in the database into the :guilabel:`Search...` bar, then press :kbd:`Enter`."
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:108
|
||||
msgid "To display the campaign template cards again after a campaign has been created, type the name of a campaign that does **not** exist in the database into the search bar, then press :kbd:`Enter`."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:118
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:111
|
||||
#: ../../content/applications/marketing/marketing_automation/campaign_templates/double_optin.rst:33
|
||||
msgid "For example, searching for `empty` displays the campaign template cards again, as long as there is not a campaign with the name \"empty\" in the database."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:122
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:115
|
||||
msgid "Targets and filters"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:124
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:117
|
||||
msgid "On the campaign form, the :guilabel:`Target` and :guilabel:`Filter` section, also referred to as the domain, contains the fields used to define the target audience for the campaign's reach (i.e., the unique contact records in the database)."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:128
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:121
|
||||
msgid "The target audience specifies the type of records available for use in the campaign, such as *Lead/Opportunity*, *Event Registration*, *Contact*, and more."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:132
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:125
|
||||
msgid "Records"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:134
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:127
|
||||
msgid "The contacts in the system that fit the specified criteria for a campaign are referred to as *records*."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:137
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:130
|
||||
msgid "The number of records that are displayed next to the campaign :guilabel:`Filter` represent the total number of records the campaign is targeting."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:141
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:134
|
||||
#: ../../content/applications/marketing/marketing_automation/understanding_metrics.rst:157
|
||||
msgid "Participants"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:143
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:136
|
||||
msgid "The records that are engaged by the campaign are referred to as *participants*."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:145
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:138
|
||||
msgid "The number of participants engaged in a test run are shown in the *Tests* smart button, which displays on the top of the campaign form after a test has been run."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:148
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:141
|
||||
msgid "The number of participants engaged in a running, or stopped, campaign are shown in the *Participants* smart button at the top of the campaign form."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:152
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:145
|
||||
msgid ":doc:`Audience targeting <marketing_automation/target_audience>`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:155
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:148
|
||||
msgid "Workflow"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:157
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:150
|
||||
msgid "A *workflow* consists of an activity, many activities, or a sequence of activities organized in a campaign. A campaign's workflow is defined in the :guilabel:`Workflow` section of the campaign form."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:161
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:154
|
||||
#: ../../content/applications/marketing/marketing_automation/workflow_activities.rst:19
|
||||
msgid "Activities"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:163
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:156
|
||||
msgid "*Activities* are the methods of communication or server actions, organized in a workflow, that are executed within a campaign. Once running, each activity displays the number of participants that are engaged by the activity as *Success* and *Rejected* counts."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:167
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:160
|
||||
msgid "To create one of the following activities, click :guilabel:`Add new activity` in the :guilabel:`Workflow` section of the campaign form:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:170
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:163
|
||||
#: ../../content/applications/marketing/marketing_automation/workflow_activities.rst:53
|
||||
msgid ":ref:`Email <marketing_automation/email-activity-type>`: an email that is sent to the target audience."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:172
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:165
|
||||
#: ../../content/applications/marketing/marketing_automation/workflow_activities.rst:55
|
||||
msgid ":ref:`Server action <marketing_automation/sa-activity-type>`: an internal action within the database that is executed."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:174
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:167
|
||||
#: ../../content/applications/marketing/marketing_automation/workflow_activities.rst:57
|
||||
msgid ":ref:`SMS <marketing_automation/sms-activity-type>`: a text message that is sent to the target audience."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:178
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:171
|
||||
msgid ":doc:`marketing_automation/workflow_activities`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:181
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:174
|
||||
msgid "Testing and running"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:183
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:176
|
||||
msgid "Once a campaign has been created, it can be tested to ensure the workflow is functioning as expected, to check for errors, and correct any mistakes before it reaches its target audience."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:186
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:179
|
||||
msgid "After testing, the campaign can be launched to start engaging the target audience. The campaign can also be launched *without* testing, if the user is confident in the workflow."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:190
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:183
|
||||
msgid ":doc:`marketing_automation/testing_running`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:193
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:186
|
||||
msgid "Reporting"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:195
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:188
|
||||
msgid "A range of reporting metrics are available to measure the success of each campaign. Navigate to :menuselection:`Marketing Automation app --> Reporting` to access the following menu options:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:198
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:191
|
||||
msgid ":guilabel:`Link Tracker`: displays the metrics of links to track the number of clicks."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:199
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:192
|
||||
msgid ":guilabel:`Traces`: displays the results of all activities from all campaigns."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:200
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:193
|
||||
msgid ":guilabel:`Participants`: displays an overview of the participants of all campaigns."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:202
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:195
|
||||
msgid "Additionally, each activity within the workflow of a campaign displays its engagement metrics."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:205
|
||||
#: ../../content/applications/marketing/marketing_automation.rst:198
|
||||
msgid ":doc:`marketing_automation/understanding_metrics`"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 18.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-01-28 12:25+0000\n"
|
||||
"POT-Creation-Date: 2025-02-20 16:01+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -3446,110 +3446,118 @@ msgid "Using the project dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:15
|
||||
msgid "To access the project dashboard, open the **Project** app and hover over the desired project’s card. Then, click the :icon:`fa-vertical-ellipsis` (:guilabel:`vertical ellipsis`) icon and select :guilabel:`Dashboard`."
|
||||
msgid "To access the project dashboard, open the **Project** app and hover over the desired project’s card. Then, click the :icon:`fa-vertical-ellipsis` (:guilabel:`vertical ellipsis`) icon and select :guilabel:`Dashboard`. Alternatively, you can access the project dashboard from the project’s :ref:`top bar <project/project-management/top-bar>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:19
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:20
|
||||
msgid "The left side of the dashboard displays a list of existing :ref:`project updates <project/project-dashboard/updates>`, and the right side provides :ref:`detailed information about records linked to the project <project/project-dashboard/smart-buttons>`, as well as :ref:`milestones <project/project-dashboard/milestones>`, :ref:`profitability <project/project-dashboard/profitability>`, and :ref:`budgets <project/project-dashboard/budgets>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:26
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:27
|
||||
msgid "The information displayed on the project dashboard varies depending on the applications installed on your database. For example, you will not see information about **Timesheets**, **Planning**, or **Purchase Orders** if the corresponding applications are not installed."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:33
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:34
|
||||
msgid "Totals smart buttons"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:35
|
||||
msgid "The following smart buttons are displayed on the top left of the project dashboard:"
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:36
|
||||
msgid "The following smart buttons are displayed on the top right of the project dashboard:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:37
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:38
|
||||
msgid ":guilabel:`Tasks`: the number of completed (i.e., :guilabel:`Done` or :guilabel:`Canceled` :ref:`tasks <project/tasks/task_stages_statuses/statuses>`) and all tasks, in format completed/all, as well as the entire project's completion percentage estimation."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:40
|
||||
msgid ":guilabel:`Timesheets`: the number of hours or days (depending on the **Timesheets** app configuration) linked to the project. This includes all :doc:`timesheets <../timesheets>`, whether or not they have been validated."
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:41
|
||||
msgid ":guilabel:`Timesheets`: the number of hours or days (depending on the **Timesheets** app configuration) allocated in the project’s **settings**. This includes all :doc:`timesheets <../timesheets>`, whether or not they have been validated."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:43
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:44
|
||||
msgid ":guilabel:`Planned`: the number of hours that have been planned for shifts in the **Planning** app. This includes all :doc:`planned shifts <../planning>`, including past shifts and shifts that have not yet been published."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:46
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:47
|
||||
msgid ":guilabel:`Documents`: number of :doc:`documents <../../productivity/documents>` in the project’s workspace."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:48
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:49
|
||||
msgid ":guilabel:`Burndown Chart`: click the smart button to access a :doc:`report </applications/essentials/reporting>` on the status of the project’s tasks over time."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:50
|
||||
msgid ":guilabel:`Timesheets and Planning`: click the smart button to access a :doc:`report </applications/essentials/reporting>` on the project’s timesheets and shifts."
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:51
|
||||
msgid ":guilabel:`Timesheets and Planning`: click the smart button to access a :doc:`report </applications/essentials/reporting>` on the project’s timesheets and shifts. This allows you to easily compare planned and effective hours of work on the project."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:52
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:54
|
||||
msgid "**Additional fields**, such as :guilabel:`Sales Orders`, :guilabel:`Sales Order Items`, :guilabel:`Purchase Orders`, and more, represent the number of records linked to the project."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:56
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:58
|
||||
msgid "Use the project dashboard smart buttons to update the project records easily. Click :guilabel:`Timesheets` to validate timesheets, :guilabel:`Planned` to create project planning, :guilabel:`Documents` to view and validate documents, etc."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:63
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:65
|
||||
msgid "Milestones"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:65
|
||||
msgid "This section is only visible if :doc:`milestones </applications/sales/sales/invoicing/milestone>` have been created for this project. Click :guilabel:`Add Milestone` to create a new milestone. Click a milestone in the checklist to edit it, enable its checkbox to mark it as completed, or click the :icon:`fa-trash` (:guilabel:`trash`) icon to remove it."
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:67
|
||||
msgid "This section is only visible if :doc:`milestones </applications/sales/sales/invoicing/milestone>` have been enabled in the Project’s app settings. Click :guilabel:`Add Milestone` to create a new milestone. Click a milestone in the checklist to edit it, enable its checkbox to mark it as completed, or click the :icon:`fa-trash` (:guilabel:`trash`) icon to remove it."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:73
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:72
|
||||
msgid "The milestones are displayed in red if they’re past their deadline, or in green if they are ready to be marked as reached (i.e. tasks linked to the milestone that have been marked with :guilabel:`done` or :guilabel:`canceled` :ref:`status <project/tasks/task_stages_statuses/statuses>`)."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:79
|
||||
msgid "Profitability"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:75
|
||||
msgid "This section only applies to billable projects and provides a breakdown of project costs and revenues."
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:81
|
||||
msgid "This section provides a breakdown of project costs and revenues, which are impacted by all records linked to the project and its :doc:`Analytic account </applications/finance/accounting/reporting/analytic_accounting>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:81
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:85
|
||||
msgid "The profitability report is only displayed for billable projects."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:90
|
||||
msgid "Budgets"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:83
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:92
|
||||
msgid "If a budget has been set for the project, its status and related details are displayed in this section. Click :guilabel:`Add Budget` to create a new budget for the project."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:87
|
||||
msgid ":doc:`Analytic accounting </applications/finance/accounting/reporting/analytic_accounting>` must be enabled in your database’s **Accounting** application in order for this section to be displayed."
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:96
|
||||
msgid ":doc:`Budgets </applications/finance/accounting/reporting/budget>` must be enabled in your database’s **Accounting** application in order for this section to be displayed."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:94
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:102
|
||||
msgid "Project updates"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:96
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:104
|
||||
msgid "Project updates allow you to take a snapshot of the project’s overall status at a given point in time, for example, during a periodic (weekly, bi-weekly, or monthly) review. This allows you to compare specific data points, note any aspects of the project that need improvement, and estimate if the project is on or off track."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:101
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:109
|
||||
msgid "To create a new project update, go to the project dashboard, click :guilabel:`New`, and fill in the following fields:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:104
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:112
|
||||
msgid ":guilabel:`Status`: Choose between :guilabel:`On Track`, :guilabel:`At Risk`, :guilabel:`Off Track`, :guilabel:`On Hold`, and :guilabel:`Done`. Once the status is set, a color-coded dot is displayed on the project’s Kanban card, allowing the project manager to easily identify which projects need attention."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:108
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:116
|
||||
msgid ":guilabel:`Progress`: Manually input the completion percentage based on the project's progress."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:109
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:117
|
||||
msgid ":guilabel:`Date` and :guilabel:`Author`: These fields are automatically filled in with appropriate information based on the user who created the update and the current date."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:111
|
||||
#: ../../content/applications/services/project/project_dashboard.rst:119
|
||||
msgid ":guilabel:`Description`: Use this rich-text field to gather notes. Depending on the project configuration (e.g., if the project is billable), this field may be pre-filled with current information on aspects such as profitability, budget, milestones, etc."
|
||||
msgstr ""
|
||||
|
||||
@@ -3665,19 +3673,19 @@ msgstr ""
|
||||
msgid "If an activity is **already** scheduled, the icon may change to a **phone**, **group of people**, or other."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:81
|
||||
#: ../../content/applications/services/project/project_management.rst:83
|
||||
msgid "Top bar"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:83
|
||||
#: ../../content/applications/services/project/project_management.rst:85
|
||||
msgid "In project management, reviewing the various records and documents related to a project is often necessary. Odoo Project’s **top bar** provides quick access to these essential resources. You can customize each project's top bar to match its specific needs."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:87
|
||||
#: ../../content/applications/services/project/project_management.rst:89
|
||||
msgid "To set up the top bar for a project, go to the :guilabel:`Project` app, click the project's card, then click the top bar :icon:`fa-sliders` :guilabel:`(sliders)` button. In the bar that appears above the search bar, click the :icon:`fa-sliders` :guilabel:`(sliders)` button to select the records you want to display, such as timesheets, sales orders, invoices, documents, dashboards, etc."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:92
|
||||
#: ../../content/applications/services/project/project_management.rst:94
|
||||
msgid "You can then click the buttons to access the related records without leaving the Project app. To return to your project tasks' Kanban view, click the :guilabel:`Tasks` button in the top bar."
|
||||
msgstr ""
|
||||
|
||||
@@ -3685,27 +3693,27 @@ msgstr ""
|
||||
msgid "Top bar selection menu"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:99
|
||||
#: ../../content/applications/services/project/project_management.rst:101
|
||||
msgid "Custom top bar buttons"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:101
|
||||
#: ../../content/applications/services/project/project_management.rst:103
|
||||
msgid "You can also create your own buttons to access more specific views:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:103
|
||||
#: ../../content/applications/services/project/project_management.rst:105
|
||||
msgid "Click an existing top bar button to access the view."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:104
|
||||
#: ../../content/applications/services/project/project_management.rst:106
|
||||
msgid "Customize the view with keywords, filters, and grouping options using the search bar."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:105
|
||||
#: ../../content/applications/services/project/project_management.rst:107
|
||||
msgid "Click the :icon:`fa-sliders` :guilabel:`(sliders)` button in the top bar and select :guilabel:`Save View`."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/services/project/project_management.rst:107
|
||||
#: ../../content/applications/services/project/project_management.rst:109
|
||||
msgid "Edit the default button name if necessary, then enable :guilabel:`Shared` if you want to share the button with other users."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 18.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-11-05 09:20+0000\n"
|
||||
"POT-Creation-Date: 2025-02-20 16:01+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -37,7 +37,7 @@ msgid ":doc:`Models <studio/models_modules_apps>`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio.rst:24
|
||||
msgid ":doc:`Automated actions <studio/automated_actions>`"
|
||||
msgid ":doc:`Automation rules <studio/automated_actions>`"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio.rst:25
|
||||
@@ -73,7 +73,7 @@ msgid "Approval rules"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:5
|
||||
msgid "Studio approval rules allow you to require the approval of one or several users before an action can be performed using a button."
|
||||
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
|
||||
@@ -81,7 +81,7 @@ msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:11
|
||||
msgid "To add an approval rule:"
|
||||
msgid "To add approval rules with Studio, proceed as follows:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:13
|
||||
@@ -213,7 +213,7 @@ msgid "To create an automation rule with Studio, proceed as follows:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:11
|
||||
msgid "Open Studio and click :guilabel:`Automations`, then :guilabel:`New`."
|
||||
msgid ":ref:`Open Studio <studio/access>` and click :guilabel:`Automations`, then :guilabel:`New`."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:12
|
||||
@@ -521,106 +521,118 @@ msgid ":guilabel:`Note only`: to only post the message as an internal note in th
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:277
|
||||
msgid "Send WhatsApp"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:280
|
||||
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:283
|
||||
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 drop-down menu."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:289
|
||||
msgid "Add Followers and Remove Followers"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:279
|
||||
#: ../../content/applications/studio/automated_actions.rst:291
|
||||
msgid "Use these actions to (un)subscribe existing contacts to/from the record."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:282
|
||||
#: ../../content/applications/studio/automated_actions.rst:294
|
||||
msgid "Create Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:284
|
||||
#: ../../content/applications/studio/automated_actions.rst:296
|
||||
msgid "This action is used to create a new record on any model."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:286
|
||||
#: ../../content/applications/studio/automated_actions.rst:298
|
||||
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:292
|
||||
#: ../../content/applications/studio/automated_actions.rst:304
|
||||
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:297
|
||||
#: ../../content/applications/studio/automated_actions.rst:309
|
||||
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:305
|
||||
#: ../../content/applications/studio/automated_actions.rst:317
|
||||
msgid "Execute Code"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:307
|
||||
#: ../../content/applications/studio/automated_actions.rst:319
|
||||
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:310
|
||||
#: ../../content/applications/studio/automated_actions.rst:322
|
||||
msgid "`env`: environment on which the action is triggered"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:311
|
||||
#: ../../content/applications/studio/automated_actions.rst:323
|
||||
msgid "`model`: model of the record on which the action is triggered; is a void recordset"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:312
|
||||
#: ../../content/applications/studio/automated_actions.rst:324
|
||||
msgid "`record`: record on which the action is triggered; may be void"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:313
|
||||
#: ../../content/applications/studio/automated_actions.rst:325
|
||||
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:315
|
||||
#: ../../content/applications/studio/automated_actions.rst:327
|
||||
msgid "`time`, `datetime`, `dateutil`, `timezone`: useful Python libraries"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:316
|
||||
#: ../../content/applications/studio/automated_actions.rst:328
|
||||
msgid "`float_compare`: utility function to compare floats based on specific precision"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:317
|
||||
#: ../../content/applications/studio/automated_actions.rst:329
|
||||
msgid "`log(message, level='info')`: logging function to record debug information in ir.logging table"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:319
|
||||
#: ../../content/applications/studio/automated_actions.rst:331
|
||||
msgid "`_logger.info(message)`: logger to emit messages in server logs"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:320
|
||||
#: ../../content/applications/studio/automated_actions.rst:332
|
||||
msgid "`UserError`: exception class for raising user-facing warning messages"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:321
|
||||
#: ../../content/applications/studio/automated_actions.rst:333
|
||||
msgid "`Command`: x2many commands namespace"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:322
|
||||
#: ../../content/applications/studio/automated_actions.rst:334
|
||||
msgid "`action = {...}`: to return an action"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:325
|
||||
#: ../../content/applications/studio/automated_actions.rst:337
|
||||
msgid "The available variables are described both in the :guilabel:`Code` and :guilabel:`Help` tabs."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:328
|
||||
#: ../../content/applications/studio/automated_actions.rst:340
|
||||
msgid "Send Webhook Notification"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:330
|
||||
#: ../../content/applications/studio/automated_actions.rst:342
|
||||
msgid "This action allows to send a POST request with the values of the :guilabel:`Fields` to the URL specified in the :guilabel:`URL` field."
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:333
|
||||
#: ../../content/applications/studio/automated_actions.rst:345
|
||||
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:339
|
||||
#: ../../content/applications/studio/automated_actions.rst:351
|
||||
msgid "Execute Existing Actions"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:341
|
||||
#: ../../content/applications/studio/automated_actions.rst:353
|
||||
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 ""
|
||||
|
||||
|
||||