Compare commits
250 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ee5113939 | |||
| 1fd4efac6e | |||
| 9acf18a415 | |||
| cd27e42437 | |||
| 009dd70bd3 | |||
| 035e0ec1e8 | |||
| 1262245b53 | |||
| aad8aa1314 | |||
| e32f4ec766 | |||
| 85d4e6a167 | |||
| 0ae856bcf6 | |||
| 5bb043bd3b | |||
| d2c610179a | |||
| 35f2768359 | |||
| 7529565384 | |||
| 1e412a8780 | |||
| 77d4d6e359 | |||
| c0dd6b7d1c | |||
| cd2e27084d | |||
| a00a6f5583 | |||
| 84051ad9de | |||
| 5fbab9eba4 | |||
| 01cf1d3dd7 | |||
| a55fdb6313 | |||
| a4b841afce | |||
| 3f1f02200b | |||
| faca8a4bda | |||
| c9fca6c3b6 | |||
| 3941e55043 | |||
| 4b6e34efc5 | |||
| 7368ad782b | |||
| c4bfeb9cae | |||
| f4c16bc722 | |||
| aa5d9911b3 | |||
| 5c72ee6f63 | |||
| 123ea24f91 | |||
| 8495357d6e | |||
| 52d8565f02 | |||
| b6e6515fbf | |||
| 49b75e3213 | |||
| bb69f01e71 | |||
| c7fb228d91 | |||
| 75f0258d19 | |||
| 7e375cfd54 | |||
| 853583b0ce | |||
| d7c0cdddbf | |||
| be14393043 | |||
| 6ad97e2fea | |||
| 27acb59d79 | |||
| a94c8ed498 | |||
| b9e82b8c29 | |||
| 7d4f6dc77a | |||
| 44db5c84b3 | |||
| a57baa8d09 | |||
| 968ca03d70 | |||
| 4aca6cd71e | |||
| 4d3fafe972 | |||
| 66022fbb57 | |||
| 7f711c6ef2 | |||
| 6bf147384b | |||
| 2f050805bb | |||
| 00eb919fb4 | |||
| b8f2514f93 | |||
| 68d7b8ccc1 | |||
| 0fc08e02f8 | |||
| 4fc13ed595 | |||
| eee06ac7c4 | |||
| c792d379de | |||
| 989f2faf9a | |||
| a9ff26efdd | |||
| 6051f2f638 | |||
| 565022703a | |||
| 8b1f8e1fc6 | |||
| f3d8007c29 | |||
| e241c7a088 | |||
| 8750d5f859 | |||
| a541383a1d | |||
| 60a0d4cdb5 | |||
| 88e1bee845 | |||
| 654970a436 | |||
| 0a329f11dc | |||
| 9917949408 | |||
| c4e0f35aa9 | |||
| 90048d2484 | |||
| cc226a7e1d | |||
| 9c5f9f7aa6 | |||
| 8f77236070 | |||
| 39f6f220e1 | |||
| e6bc52d641 | |||
| 3ab129a370 | |||
| d690755327 | |||
| bf6fe2f147 | |||
| cc6306277b | |||
| abdcb372ba | |||
| dfe54bdce3 | |||
| 2d721c04eb | |||
| 40c830298c | |||
| b22893c1bd | |||
| 3bb0b21494 | |||
| 02bcc265fb | |||
| 78b9c43030 | |||
| 04ac6de366 | |||
| 7c6aa7f2c4 | |||
| b78d7b86e6 | |||
| 983346ae6b | |||
| 84abf415bc | |||
| a37453b18f | |||
| fc83a645cf | |||
| ef647fd809 | |||
| d31f160707 | |||
| b6b6cf9de8 | |||
| 38d6b71519 | |||
| 5042a4af90 | |||
| d7dcbff91f | |||
| eaffb4d160 | |||
| 21eb260fc8 | |||
| bc2da4dd91 | |||
| 5dea50eef0 | |||
| d4841aee90 | |||
| 80310b0e1c | |||
| 602d51c44b | |||
| 48a396a273 | |||
| 882b5a19e8 | |||
| 462b0b2f9e | |||
| a0c2f7220e | |||
| 2380a46300 | |||
| e7b6bdeb83 | |||
| 45cd3403fb | |||
| 1f88cc3ee5 | |||
| 7bba152676 | |||
| bf0267d646 | |||
| 47cbfbef41 | |||
| 9e98b8ebc1 | |||
| 975564608b | |||
| 15477ec14b | |||
| 19f574f7de | |||
| 6ce41f261b | |||
| b5dc2d1614 | |||
| c110917704 | |||
| cf05ed1c75 | |||
| 02f8188b36 | |||
| 8381d634f7 | |||
| b66cad62fd | |||
| 8f0cd927c6 | |||
| ff9a64e6f3 | |||
| 27b3c18816 | |||
| f1fca9af69 | |||
| 380cdb76b2 | |||
| 5060b34697 | |||
| 7ead3df30d | |||
| 76e88f8f06 | |||
| 04111d2f04 | |||
| 2d2c3edffe | |||
| 0c135dd29c | |||
| eb714d1772 | |||
| a36da03009 | |||
| f4d64763c0 | |||
| d4564632c3 | |||
| a21fe7c695 | |||
| 7b5828d047 | |||
| 2920b764f1 | |||
| 8ef0514ad1 | |||
| 34c1edef12 | |||
| e1227f0c2b | |||
| 5453741f0c | |||
| ecab061166 | |||
| 9cb00bdb01 | |||
| 72020aea3f | |||
| 3a85ef3436 | |||
| 14efdd7db6 | |||
| d7c6f5eb8f | |||
| b58c84f8aa | |||
| 4cc5aaa9b3 | |||
| 37dd1d8327 | |||
| d580490b02 | |||
| 88e6f46765 | |||
| 5b965fb1b8 | |||
| 3c7f6c0e55 | |||
| a4ac625bab | |||
| 1b0835b29e | |||
| 22a0a1834e | |||
| 0548b3fb4b | |||
| 66f3b28309 | |||
| 3a24e18b45 | |||
| b06db2b641 | |||
| aa79e58e32 | |||
| 0611ec0705 | |||
| ad624afdf8 | |||
| d0ce383423 | |||
| 1f520a4907 | |||
| 92ac7ee0e6 | |||
| b747dfcbd4 | |||
| 7e23234796 | |||
| 63f88d7adb | |||
| dc4d10edbb | |||
| 8b0fca19f5 | |||
| 65a752daf6 | |||
| 9946fd4ec6 | |||
| 9794fee804 | |||
| 9dec09c9de | |||
| ab963d305d | |||
| 54d35d6cdd | |||
| 8c31ffa49e | |||
| 34a73be30c | |||
| 235b2889ec | |||
| dca01d9587 | |||
| 7a0b3a868c | |||
| 37d18858c4 | |||
| ad6843be92 | |||
| b0ede2819a | |||
| 4556487f10 | |||
| 3156e4ba04 | |||
| ba426cc9ea | |||
| 946c518039 | |||
| 8f73708332 | |||
| d50ff09926 | |||
| e9c19f63d4 | |||
| 95aae86762 | |||
| da7fe3d69d | |||
| 9e9fce957f | |||
| ab9313a451 | |||
| 868ecc61a5 | |||
| 73638c012c | |||
| 753d10106a | |||
| 64a0fbd75e | |||
| a2af035da6 | |||
| bb761431d5 | |||
| 0b5e4bb5b4 | |||
| 32ecbd0c5b | |||
| 31725deaf0 | |||
| 0e71f8681e | |||
| da682b7f22 | |||
| cc270a9afe | |||
| df0cf93856 | |||
| 213a3ca73b | |||
| 0e4810f40b | |||
| 4e7df807e7 | |||
| 0a3c8ec10a | |||
| 416fcaa7a1 | |||
| d8e0ae04b9 | |||
| 5688664e3a | |||
| 61f05b699a | |||
| 318d80a4a1 | |||
| b79c83f52a | |||
| 6d2f193622 | |||
| 0cd4dd2978 | |||
| b4beccaf8e | |||
| fd5d5581cc | |||
| 9083a0927c | |||
| b5c37e33b1 |
@@ -27,7 +27,7 @@ SOURCE_DIR = content
|
||||
|
||||
HTML_BUILD_DIR = $(BUILD_DIR)/html
|
||||
ifdef VERSIONS
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/18.0
|
||||
endif
|
||||
ifneq ($(CURRENT_LANG),en)
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
|
||||
|
||||
@@ -21,8 +21,8 @@ copyright = 'Odoo S.A.'
|
||||
|
||||
# `version` is the version info for the project being documented, acts as replacement for |version|,
|
||||
# also used in various other places throughout the built documents.
|
||||
# `release` is the full version, including a/b/rc tags. Acts as replacement for |release|.
|
||||
version = release = 'master'
|
||||
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
|
||||
version = release = '18.0'
|
||||
|
||||
# `current_branch` is the technical name of the current branch.
|
||||
# E.g., saas-15.4 -> saas-15.4; 12.0 -> 12.0, master -> master (*).
|
||||
@@ -116,7 +116,7 @@ else:
|
||||
odoo.addons.__path__.append(str(odoo_dir) + '/addons')
|
||||
from odoo import release as odoo_release # Don't collide with Sphinx's 'release' config option
|
||||
odoo_version = '.'.join(str(s) for s in odoo_release.version_info[:2]).replace('~', '-') # Change saas~XX.Y to saas-XX.Y
|
||||
odoo_version = 'master' if odoo_release.ALPHA in odoo_release.version_info else odoo_version
|
||||
odoo_version = 'master' if 'alpha' in odoo_release.version else odoo_version
|
||||
if release != odoo_version:
|
||||
_logger.warning(
|
||||
"Found Odoo sources in %(directory)s but with version '%(odoo_version)s' incompatible "
|
||||
|
||||
@@ -173,8 +173,7 @@ 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.
|
||||
|
||||
`cross_report(xml_id | report_id)`
|
||||
Used to match an expression from another report targeted by the xml_id or the report ID itself.
|
||||
You can also use the `cross_report` subformula to match an expression found in another report.
|
||||
|
||||
'Prefix of Account Codes' engine
|
||||
--------------------------------
|
||||
|
||||
@@ -140,9 +140,12 @@ Let's take an example reflecting **restaurant** and **car expenses**.
|
||||
Restaurant expenses
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In Belgium, 69% of **restaurant** expenses are deductible. Create a new **disallowed expenses
|
||||
In Belgium, 31% of **restaurant** expenses are non-deductible. Create a new **disallowed expenses
|
||||
category** and set both :guilabel:`Related Account(s)` and :guilabel:`Current Rate`.
|
||||
|
||||
.. image:: belgium/restaurant-expenses.png
|
||||
:alt: Disallowed expenses categories
|
||||
|
||||
.. _belgium/vehicle-split:
|
||||
|
||||
Car expenses: vehicle split
|
||||
@@ -150,7 +153,7 @@ Car expenses: vehicle split
|
||||
|
||||
In Belgium, the deductible percentage varies from car to car and, therefore, should be indicated for
|
||||
each vehicle. To do so, open :menuselection:`Fleet` and select a vehicle. In the :guilabel:`Tax
|
||||
info` tab, go to the :guilabel:`Deductibility Rates` section and click on :guilabel:`Add a
|
||||
info` tab, go to the :guilabel:`Disallowed Expenses Rate` section and click on :guilabel:`Add a
|
||||
line`. Add a :guilabel:`Start Date` and a :guilabel:`%`. The amounts go in the same account for all
|
||||
car expenses.
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
@@ -64,9 +64,9 @@ to help you with this.
|
||||
|
||||
.. warning::
|
||||
The DATEV ATCH ZIP file includes the files (reports) linked to an Odoo invoice or bill. For
|
||||
customer invoices, the file must have been generated by using the :guilabel:`Send` button. For
|
||||
vendor bills, the file must have been received via an email alias or uploaded by using the
|
||||
:guilabel:`Upload` button.
|
||||
customer invoices, the file must have been generated by using the :guilabel:`Print & Send`
|
||||
button. For vendor bills, the file must have been received via an email alias or uploaded by
|
||||
using the :guilabel:`Upload` button.
|
||||
|
||||
.. admonition:: DATEV ATCH ZIP file
|
||||
|
||||
|
||||
@@ -607,7 +607,7 @@ the TDS/TCS section under which tax might be applicable when recording an invoic
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
#. Navigate to :menuselection:`Accounting --> Configuration --> Settings`
|
||||
#. Navigate to :menuselection:`Accounting --> Configuration --> Settings`.
|
||||
#. In the :guilabel:`Indian Integration` section, enable the :guilabel:`TDS and TCS` feature.
|
||||
#. Navigate to :menuselection:`Accounting --> Configuration --> Chart of Accounts`.
|
||||
#. Click :guilabel:`View` on the desired account, and set the :guilabel:`TDS/TCS Section` field.
|
||||
@@ -639,7 +639,8 @@ the TDS details. Confirm the entry to apply the TDS.
|
||||
.. image:: india/tds-apply.png
|
||||
:alt: TDS application
|
||||
|
||||
In Odoo, the aggregate total is calculated for partners sharing the same PAN number, across all company branches.
|
||||
In Odoo, the aggregate total is calculated for partners sharing the same PAN number, across all
|
||||
company branches.
|
||||
|
||||
.. example::
|
||||
|
||||
|
||||
+3
-4
@@ -19,10 +19,9 @@ Track :doc:`inventory valuation <using_inventory_valuation>` by :doc:`lots or se
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To enable valuation by lots or serial numbers, begin by enabling the :ref:`Lots and Serial Numbers
|
||||
feature <inventory/product_management/enable-lot-serial>`. After that, go to
|
||||
:menuselection:`Inventory app --> Products --> Products`, and select the desired product, or create
|
||||
a new product, by clicking :guilabel:`New`.
|
||||
To enable valuation by lots or serial numbers, begin by enabling the :doc:`Lots and Serial Numbers
|
||||
feature <../product_tracking>`. After that, go to :menuselection:`Inventory app --> Products -->
|
||||
Products`, and select the desired product, or create a new product, by clicking :guilabel:`New`.
|
||||
|
||||
On the product form, in the :guilabel:`Category` field, choose a product category. Ensure the
|
||||
product category's :ref:`Costing Method <inventory/warehouses_storage/costing_methods>` is set to
|
||||
|
||||
-2
@@ -20,8 +20,6 @@ product, used to distinguish it from other items or products.
|
||||
- :doc:`product_tracking/lots`
|
||||
- :doc:`product_tracking/serial_numbers`
|
||||
|
||||
.. _inventory/product_management/enable-lot-serial:
|
||||
|
||||
Enable lots & serial numbers
|
||||
============================
|
||||
|
||||
|
||||
+1
@@ -75,6 +75,7 @@ delivery order. To add or change the delivery method on the delivery itself, go
|
||||
setup_configuration/labels
|
||||
setup_configuration/bpost
|
||||
setup_configuration/dhl_credentials
|
||||
setup_configuration/envia_shipping
|
||||
setup_configuration/fedex
|
||||
setup_configuration/sendcloud_shipping
|
||||
setup_configuration/starshipit_shipping
|
||||
|
||||
+293
@@ -0,0 +1,293 @@
|
||||
=====================
|
||||
Envia.com integration
|
||||
=====================
|
||||
|
||||
Envia is a shipping service aggregator that facilitates the integration in several continents. Once
|
||||
integrated, users can select shipping carriers on inventory operations in their Odoo database.
|
||||
|
||||
Setup in Envia
|
||||
==============
|
||||
|
||||
Create an account and activate carriers
|
||||
---------------------------------------
|
||||
|
||||
If you don’t have an account, we recommend heading to `Envia.com <https://www.envia.com>`_.
|
||||
|
||||
.. image:: envia_shipping/Envia_Registry_Process.png
|
||||
:alt: Registry process in website with Envia.com.
|
||||
|
||||
.. tip::
|
||||
Make sure to select the appropriate country for your main billing. If you have multicountry
|
||||
operations, you can also create two separate accounts, but the billing will be done in the main
|
||||
currency.
|
||||
|
||||
.. note::
|
||||
Envia will send an SMS or WhatsApp message to confirm your email address and phone number.
|
||||
|
||||
Generate Envia.com credentials
|
||||
------------------------------
|
||||
|
||||
Go to Envia.com, navigate to :menuselection:`Developers --> API Keys`, on the left menu, then click
|
||||
:guilabel:`add` to generate a new key.
|
||||
|
||||
This API key is the one we will request in Odoo, you can always come back for it.
|
||||
|
||||
.. image:: envia_shipping/envia_token.png
|
||||
:alt: API Keys in Envia.com.
|
||||
|
||||
Setup in Odoo
|
||||
=============
|
||||
|
||||
Install Envia.com shipping module
|
||||
---------------------------------
|
||||
|
||||
On Odoo’s :guilabel:`Apps` module, search for the `Envia Shipping` integration, and install it.
|
||||
|
||||
.. image:: envia_shipping/envia_mod.png
|
||||
:align: center
|
||||
:alt: Envia module to install in Odoo.
|
||||
|
||||
|
||||
Envia.com shipping connector configuration
|
||||
------------------------------------------
|
||||
|
||||
After activating the Envia.com Connector, go to the Delivery Methods page and click Create.
|
||||
|
||||
.. tip::
|
||||
:guilabel:`Shipping Methods` can also be accessed by going to :menuselection:`Inventory -->
|
||||
Configuration --> Delivery --> Shipping Methods`.
|
||||
|
||||
Fill out the following fields in the New Delivery Method form:
|
||||
|
||||
- :guilabel:`Shipping Method`: Type `Shipping carrier name`.
|
||||
- :guilabel:`Provider`: Select :guilabel:`Envia` from the drop-down menu.
|
||||
- :guilabel:`Delivery Product`: Set the product that was configured for this shipping method, or
|
||||
create a new product. A default Envia.com product is provided.
|
||||
- In the :guilabel:`Envia Configuration` tab, enter the :guilabel:`Envia Production Access Token`.
|
||||
- In the :guilabel:`Envia Configuration` tab, enter the :guilabel:`Envia Sandbox Access Token`.
|
||||
- Manually :guilabel:`Save` the form by clicking the cloud icon next to the :guilabel:`Shipping
|
||||
Methods / New` breadcrumbs.
|
||||
- :guilabel:`Insurance percentage`: If insurance is needed, place a percentage of the value to
|
||||
insure, if not, it can be left as 0. Keep in mind that the insurance price is calculated only
|
||||
after the label has been generated. This also applies to LTL shipments.
|
||||
|
||||
.. tip::
|
||||
It is mandatory to fill both the production and sandbox tokens, but it could be left with just a
|
||||
random character as it is not validated at this point.
|
||||
|
||||
Additional considerations for the :guilabel:`Envia Default Package`:
|
||||
|
||||
- The package is specified in :guilabel:`mm` and :guilabel:`kg`. Keep in mind that the weight is for
|
||||
the container alone and not its contents, it can be left as 0 for no reported weight and 0 in max
|
||||
weight for no specified limit weight.
|
||||
- :guilabel:`Envia Package Type`: It is set to Box by default. Make sure to select the appropriate
|
||||
one since it will be used to display available carriers and options as they change depending on
|
||||
this field.
|
||||
|
||||
|
||||
Once previous fields are properly set, sync the carriers. A pop-up window will appear, select a
|
||||
carrier and a service level from the list:
|
||||
|
||||
.. image:: envia_shipping/envia_popup.png
|
||||
:alt: Envia.com carrier and services popup.
|
||||
|
||||
|
||||
.. important::
|
||||
Envia keeps the main currency of the account fixed. In order to provide more precise conversions
|
||||
for the costs of shipping, specify the currency that is set for your account on Envia. If
|
||||
necessary, Odoo offers the option to change your country. By default it uses the country
|
||||
associated with your company.
|
||||
|
||||
.. note::
|
||||
If more than one shipping option is needed, create more shipping methods in Odoo and modify any
|
||||
parameter like the package, carrier, or service.
|
||||
|
||||
.. _inventory/shipping_receiving/envia-shipping-info:
|
||||
|
||||
Shipping information
|
||||
--------------------
|
||||
|
||||
To use Envia.com to generate shipping labels, the following information **must** be filled out
|
||||
accurately and completely in Odoo:
|
||||
|
||||
#. **Customer information**: When creating a quotation, ensure the selected :guilabel:`Customer` has
|
||||
a valid phone number, email address, and shipping address.
|
||||
|
||||
To verify, select the :guilabel:`Customer` field to open their contact page. Here, Add their shipping address in the :guilabel:`Contact` field, along with their :guilabel:`Mobile` number and
|
||||
:guilabel:`Email` address.
|
||||
|
||||
#. **Product weight**: Ensure all products in a delivery order have a specified :guilabel:`Weight`
|
||||
in the :guilabel:`Inventory` tab of their product form. Refer to the :ref:`Product weight section
|
||||
<inventory/shipping_receiving/configure-weight>` of this article for detailed instructions.
|
||||
|
||||
#. **Warehouse address**: By default all packages will be sent from the specified address in the
|
||||
warehouse, make sure to set the address for correct label generation.
|
||||
|
||||
Address filling guide
|
||||
---------------------
|
||||
|
||||
Each country has rules regarding how an address is filled. This is a comprehensive guide of each
|
||||
country's expected fields exceptions:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
|
||||
* - Country
|
||||
- Street
|
||||
- Street 2
|
||||
- City
|
||||
- State_id
|
||||
* - Argentina
|
||||
- Street and number
|
||||
- Locality
|
||||
- City
|
||||
- Province
|
||||
* - Brazil
|
||||
- Exception
|
||||
- Neighborhood
|
||||
- City
|
||||
- State
|
||||
* - Chile
|
||||
- Street and number
|
||||
- City
|
||||
- Commune
|
||||
- Region
|
||||
* - Colombia
|
||||
- Street and number
|
||||
- Not needed
|
||||
- Municipality
|
||||
- Department
|
||||
* - Guatemala
|
||||
- Street and number
|
||||
- Neighborhood
|
||||
- City
|
||||
- State
|
||||
* - Mexico
|
||||
- Street and number
|
||||
- Neighborhood
|
||||
- City
|
||||
- State
|
||||
* - Uruguay
|
||||
- Street and number
|
||||
- Complementary info
|
||||
- Locality
|
||||
- State
|
||||
|
||||
Countries not listed here should be filled as normal.
|
||||
|
||||
.. note::
|
||||
For some countries, the zip code is not commonly requested. If empty, Odoo will use Envia's zip
|
||||
approximation services to get the zip code.
|
||||
|
||||
For Colombia, the zip code is extracted from the city selected in city_id if the localization is
|
||||
installed, otherwise Odoo will use the zip field.
|
||||
|
||||
.. note::
|
||||
Colombia and Mexico have a list of cities referred to as city_id in Odoo. If city_id is set, it
|
||||
will be used as the city field. If not set, then Odoo will try to use the city field.
|
||||
|
||||
.. note::
|
||||
In Mexico, some carriers might require the :guilabel:`Colony` field, commonly known as
|
||||
neighborhood. It is not always mandatory, but if required the installation of the :guilabel:`EDI
|
||||
for Mexico (Advanced Features)` module will be needed.
|
||||
|
||||
.. note::
|
||||
In Brazil the address is split to comply with regulation, so street_name is used for the street
|
||||
name only. street_number1 is used for the street number and street_number2 is used for the
|
||||
complement. This logic also applies if the :guilabel:`Extended Addresses` module is installed.
|
||||
|
||||
Generate labels with Envia
|
||||
==========================
|
||||
|
||||
When creating a quotation in Odoo, add shipping and the :guilabel:`Envia.com shipping product`.
|
||||
Then, :guilabel:`Validate` the delivery. Shipping label documents are automatically generated in the
|
||||
chatter, which include the following:
|
||||
|
||||
#. :guilabel:`Shipping label(s)` depending on the number of packages.
|
||||
#. :guilabel:`Return label(s)` if the Envia.com connector is configured for returns.
|
||||
|
||||
.. important::
|
||||
When labels are created, Envia.com automatically charges the configured account and the final
|
||||
amount is logged in the chatter. If multi-currency operations occur, the amount logged will be
|
||||
calculated using Odoo's rate. Actual rates may vary.
|
||||
|
||||
Additionally, the tracking number is now available.
|
||||
|
||||
.. note::
|
||||
Brazilian Authorities might request the invoice related to the shipping (NFe). It is recommended
|
||||
to physically attach the invoice of the order along with the label.
|
||||
|
||||
International shipping
|
||||
----------------------
|
||||
|
||||
For international shipments it is required to fill both the :guilabel:`HS code` and the country of
|
||||
:guilabel:`Origin of Goods`, both can be found on the product’s :guilabel:`Inventory tab`.
|
||||
|
||||
LTL Shipments
|
||||
-------------
|
||||
|
||||
LTL shipment labels can be generated through the connector. The insurance for LTL shipments is
|
||||
covered under the insurance percentage value at the delivery method’s form.
|
||||
|
||||
.. important::
|
||||
For Mexico, since a Bill of Landing needs to be created for the shipment, Odoo is required to
|
||||
send the UNSPSC code of the contents, as well as a unit of measure for transportation which is
|
||||
**X8A - Pallet de madera** as default.
|
||||
|
||||
.. note::
|
||||
Additional services are available when you select `pallet` as an option, which allows to select
|
||||
additional services like lift assistance and deliveries during weekends.
|
||||
|
||||
.. _inventory/shipping_receiving/setup_configuration/cancel:
|
||||
|
||||
Tracking and cancellation
|
||||
=========================
|
||||
|
||||
Shipments registered with Envia can be tracked using the Tracking smart button from the delivery
|
||||
order or using the tracking link from the customer portal.
|
||||
|
||||
.. image:: envia_shipping/envia_customer_portal_tracking.png
|
||||
:alt: Customer portal tracking.
|
||||
|
||||
Cancellations can be requested directly, see :ref:`Cancel section
|
||||
<inventory/shipping_receiving/setup_configuration/cancel>`
|
||||
|
||||
FAQ
|
||||
===
|
||||
|
||||
Measuring volumetric weight
|
||||
---------------------------
|
||||
|
||||
Many carriers have several measurements for weight. There is the actual weight of the products in
|
||||
the parcel, and the volumetric weight. Volumetric weight is the volume that a package occupies when
|
||||
in transit, i.e. the physical size of a package.
|
||||
|
||||
.. note::
|
||||
Due to volumetric weight, it is possible that the actual weight in the label is higher than the
|
||||
calculated value.
|
||||
|
||||
Which printing options are available?
|
||||
-------------------------------------
|
||||
|
||||
On Envia.com in :menuselection:`Settings --> Print options and Carriers printing options` for each
|
||||
of your carriers are displayed, make sure to use the appropriate format for the chosen carrier.
|
||||
|
||||
The needed service is not available
|
||||
-----------------------------------
|
||||
|
||||
For available carriers, make sure that they are enabled through Envia.
|
||||
|
||||
|
||||
Who will pay customs duties?
|
||||
----------------------------
|
||||
|
||||
It’s important to make sure that if there are exports to other countries, use Envia’s carrier
|
||||
settings to configure whether it is paid by the sender or the receiver.
|
||||
|
||||
What is "Envia error"?
|
||||
----------------------
|
||||
|
||||
It’s a message that appears when there’s an error in Envia. This message mentions what went wrong in
|
||||
their platform so it can be addressed.
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 369 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 9.5 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
+4
-2
@@ -28,10 +28,12 @@ The following is a list of available shipping connectors in Odoo:
|
||||
|
||||
* - Carrier
|
||||
- Region availability
|
||||
* - :doc:`FedEx <fedex>`
|
||||
- All
|
||||
* - :doc:`DHL Express <dhl_credentials>`
|
||||
- All
|
||||
* - :doc:`Envia.com <envia_shipping>`
|
||||
- All
|
||||
* - :doc:`FedEx <fedex>`
|
||||
- All
|
||||
* - :doc:`UPS <ups_credentials>`
|
||||
- All
|
||||
* - US Postal Service
|
||||
|
||||
@@ -43,8 +43,8 @@ contacts, sales orders, products, etc.
|
||||
|
||||
- To structure a form, drag and drop the :guilabel:`Tabs and Columns` element found under the
|
||||
:guilabel:`+ Add` tab.
|
||||
- To prevent users from creating, editing, deleting or duplicating records, untick :guilabel:`Can Create`,
|
||||
:guilabel:`Can Edit`, :guilabel:`Can Delete` or :guilabel:`Can Duplicate`.
|
||||
- To prevent users from creating, editing, or deleting records, untick :guilabel:`Can Create`,
|
||||
:guilabel:`Can Edit`, or :guilabel:`Can Delete`.
|
||||
- To add a button, click :guilabel:`Add a button` at the top of the form, enter a :guilabel:`Label`,
|
||||
and select the button's action:
|
||||
|
||||
@@ -136,8 +136,8 @@ List
|
||||
The :guilabel:`List` :icon:`oi-view-list` view is used to overview many records at once, look for
|
||||
records, and edit simple records.
|
||||
|
||||
- To prevent users from creating, editing, deleting or duplicating records, untick
|
||||
:guilabel:`Can Create`, :guilabel:`Can Edit`, :guilabel:`Can Delete`, or :guilabel:`Can Duplicate`.
|
||||
- To prevent users from creating, editing, or deleting records, untick :guilabel:`Can Create`,
|
||||
:guilabel:`Can Edit`, or :guilabel:`Can Delete`.
|
||||
- To create and edit records directly within the view, select either :guilabel:`Add record at the
|
||||
bottom`, :guilabel:`Add record on top` or :guilabel:`Open form view` under
|
||||
:guilabel:`When Creating Record`.
|
||||
|
||||
@@ -411,8 +411,8 @@ Imports
|
||||
The imports are ordered as
|
||||
|
||||
#. External libraries (one per line sorted and split in python stdlib)
|
||||
#. Imports of ``odoo`` submodules
|
||||
#. Imports from Odoo addons (rarely, and only if necessary)
|
||||
#. Imports of ``odoo``
|
||||
#. Imports from Odoo modules (rarely, and only if necessary)
|
||||
|
||||
Inside these 3 groups, the imported lines are alphabetically sorted.
|
||||
|
||||
@@ -424,8 +424,8 @@ Inside these 3 groups, the imported lines are alphabetically sorted.
|
||||
import time
|
||||
from datetime import datetime
|
||||
# 2 : imports of odoo
|
||||
import odoo
|
||||
from odoo import Command, _, api, fields, models # alphabetically ordered
|
||||
from odoo.fields import Domain
|
||||
from odoo.tools.safe_eval import safe_eval as eval
|
||||
# 3 : imports from odoo addons
|
||||
from odoo.addons.web.controllers.main import login_redirect
|
||||
@@ -854,10 +854,9 @@ Symbols and Conventions
|
||||
at the beginning of the method.
|
||||
|
||||
- In a Model attribute order should be
|
||||
#. Private attributes (``_name``, ``_description``, ``_inherit``, ...)
|
||||
#. Private attributes (``_name``, ``_description``, ``_inherit``, ``_sql_constraints``, ...)
|
||||
#. Default method and ``default_get``
|
||||
#. Field declarations
|
||||
#. SQL constraints and indexes
|
||||
#. Compute, inverse and search methods in the same order as field declaration
|
||||
#. Selection method (methods used to return computed values for selection fields)
|
||||
#. Constrains methods (``@api.constrains``) and onchange methods (``@api.onchange``)
|
||||
|
||||
@@ -132,16 +132,12 @@ to make changes from the GitHub interface.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Linux
|
||||
.. group-tab:: Linux and macOS
|
||||
|
||||
.. 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,7 +277,6 @@ 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"
|
||||
|
||||
@@ -63,6 +63,8 @@ Odoo automatically exports translatable strings from "data"-type content:
|
||||
* if ``selection`` is present and a list (or tuple), it's exported
|
||||
* if their ``translate`` attribute is set to ``True``, all of their existing
|
||||
values (across all records) are exported
|
||||
* help/error messages of :attr:`~odoo.models.Model._constraints` and
|
||||
:attr:`~odoo.models.Model._sql_constraints` are exported
|
||||
|
||||
Explicit exports
|
||||
================
|
||||
@@ -120,7 +122,7 @@ of global variables.
|
||||
from odoo import models
|
||||
|
||||
class IrHttp(models.AbstractModel):
|
||||
_inherit = ['ir.http']
|
||||
_inherit = 'ir.http'
|
||||
|
||||
@classmethod
|
||||
def _get_translation_frontend_modules_name(cls):
|
||||
|
||||
@@ -63,6 +63,7 @@ value::
|
||||
Defaults to whatever value was set for :attr:`~._auto`.
|
||||
|
||||
.. autoattribute:: _table
|
||||
.. autoattribute:: _sql_constraints
|
||||
|
||||
.. autoattribute:: _register
|
||||
.. autoattribute:: _abstract
|
||||
@@ -257,8 +258,7 @@ it uses the values of other *fields*, it should specify those fields using
|
||||
|
||||
* computed fields are not stored by default, they are computed and
|
||||
returned when requested. Setting ``store=True`` will store them in the
|
||||
database and automatically enable searching and grouping.
|
||||
Note that by default, ``compute_sudo=True`` is set on the field.
|
||||
database and automatically enable searching.
|
||||
* searching on a computed field can also be enabled by setting the ``search``
|
||||
parameter. The value is a method name returning a
|
||||
:ref:`reference/orm/domains`. ::
|
||||
@@ -268,7 +268,7 @@ it uses the values of other *fields*, it should specify those fields using
|
||||
def _search_upper(self, operator, value):
|
||||
if operator == 'like':
|
||||
operator = 'ilike'
|
||||
return Domain('name', operator, value)
|
||||
return [('name', operator, value)]
|
||||
|
||||
The search method is invoked when processing domains before doing an
|
||||
actual search on the model. It must return a domain equivalent to the
|
||||
@@ -276,9 +276,8 @@ it uses the values of other *fields*, it should specify those fields using
|
||||
|
||||
.. TODO and/or by setting the store to True for search domains ?
|
||||
|
||||
* computed fields are readonly by default. To allow *setting* values on a
|
||||
computed field, use the ``inverse`` parameter.
|
||||
It is the name of a function reversing the computation and
|
||||
* Computed fields are readonly by default. To allow *setting* values on a computed field, use the ``inverse``
|
||||
parameter. It is the name of a function reversing the computation and
|
||||
setting the relevant fields::
|
||||
|
||||
document = fields.Char(compute='_get_document', inverse='_set_document')
|
||||
@@ -472,6 +471,7 @@ behavior is desired:
|
||||
|
||||
Special methods:
|
||||
|
||||
.. automethod:: Model.toggle_active
|
||||
.. automethod:: Model.action_archive
|
||||
.. automethod:: Model.action_unarchive
|
||||
|
||||
@@ -510,30 +510,6 @@ behavior is desired:
|
||||
:class:`~odoo.fields.Many2one`
|
||||
:type: :class:`~odoo.addons.base.models.res_company`
|
||||
|
||||
Constraints and indexes
|
||||
=======================
|
||||
|
||||
Similarly to fields, you can declare
|
||||
:attr:`~odoo.models.Constraint`,
|
||||
:attr:`~odoo.models.Index` and :attr:`~odoo.models.UniqueIndex`.
|
||||
The name of the attribute must begin with `_` to avoid name clashes with field
|
||||
names.
|
||||
|
||||
You can customize error messages.
|
||||
They can either be strings and their translation will be provided in the internal
|
||||
reflected constraint table.
|
||||
Otherwise, they can be functions that take `(env, diag)` as parameters
|
||||
which respectively denote the environment and psycopg diagnostics.
|
||||
|
||||
.. example::
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
class AModel(models.Model):
|
||||
_name = 'a.model'
|
||||
_my_check = models.Constraint("CHECK (x > y)", "x > y is not true")
|
||||
_name_idx = models.Index("(last_name, first_name)")
|
||||
|
||||
Recordsets
|
||||
==========
|
||||
|
||||
@@ -649,15 +625,15 @@ Method decorators
|
||||
=================
|
||||
|
||||
.. automodule:: odoo.api
|
||||
:members: depends, depends_context, constrains, onchange, autovacuum, model, model_create_multi, private, ondelete
|
||||
:members: depends, depends_context, constrains, onchange, returns, autovacuum, model, model_create_multi, ondelete
|
||||
|
||||
.. .. currentmodule:: odoo.api
|
||||
|
||||
.. .. autodata:: model
|
||||
.. .. autodata:: private
|
||||
.. .. autodata:: depends
|
||||
.. .. autodata:: constrains
|
||||
.. .. autodata:: onchange
|
||||
.. .. autodata:: returns
|
||||
.. .. autodata:: autovacuum
|
||||
|
||||
.. todo:: With sphinx 2.0 : autodecorator
|
||||
@@ -856,7 +832,7 @@ Common ORM methods
|
||||
|
||||
.. currentmodule:: odoo.models
|
||||
|
||||
Create/Update
|
||||
Create/update
|
||||
-------------
|
||||
|
||||
.. todo:: api.model_create_multi information
|
||||
@@ -890,6 +866,8 @@ Search/Read
|
||||
|
||||
.. automethod:: Model._read_group
|
||||
|
||||
.. automethod:: Model.read_group
|
||||
|
||||
Fields
|
||||
~~~~~~
|
||||
|
||||
@@ -900,11 +878,10 @@ Fields
|
||||
Search domains
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
A :class:`~odoo.fields.Domain` is a first-order logical expression used for
|
||||
filtering and searching recordsets.
|
||||
A domain can be a simple condition ``(field_expr, operator, value)`` where:
|
||||
A domain is a list of criteria, each criterion being a triple (either a
|
||||
``list`` or a ``tuple``) of ``(field_name, operator, value)`` where:
|
||||
|
||||
* ``field_expr`` (``str``)
|
||||
* ``field_name`` (``str``)
|
||||
a field name of the current model, or a relationship traversal through
|
||||
a :class:`~odoo.fields.Many2one` using dot-notation e.g. ``'street'``
|
||||
or ``'partner_id.country'``. If the field is a date(time) field, you can also
|
||||
@@ -915,7 +892,7 @@ A domain can be a simple condition ``(field_expr, operator, value)`` where:
|
||||
They all use an integer as value.
|
||||
|
||||
* ``operator`` (``str``)
|
||||
an operator used to compare the ``field_expr`` with the ``value``. Valid
|
||||
an operator used to compare the ``field_name`` with the ``value``. Valid
|
||||
operators are:
|
||||
|
||||
``=``
|
||||
@@ -934,11 +911,11 @@ A domain can be a simple condition ``(field_expr, operator, value)`` where:
|
||||
unset or equals to (returns true if ``value`` is either ``None`` or
|
||||
``False``, otherwise behaves like ``=``)
|
||||
``=like``
|
||||
matches ``field_expr`` against the ``value`` pattern. An underscore
|
||||
matches ``field_name`` against the ``value`` pattern. An underscore
|
||||
``_`` in the pattern stands for (matches) any single character; a
|
||||
percent sign ``%`` matches any string of zero or more characters.
|
||||
``like``
|
||||
matches ``field_expr`` against the ``%value%`` pattern. Similar to
|
||||
matches ``field_name`` against the ``%value%`` pattern. Similar to
|
||||
``=like`` but wraps ``value`` with '%' before matching
|
||||
``not like``
|
||||
doesn't match against the ``%value%`` pattern
|
||||
@@ -950,7 +927,7 @@ A domain can be a simple condition ``(field_expr, operator, value)`` where:
|
||||
case insensitive ``=like``
|
||||
``in``
|
||||
is equal to any of the items from ``value``, ``value`` should be a
|
||||
collection of items
|
||||
list of items
|
||||
``not in``
|
||||
is unequal to all of the items from ``value``
|
||||
``child_of``
|
||||
@@ -969,13 +946,12 @@ A domain can be a simple condition ``(field_expr, operator, value)`` where:
|
||||
:attr:`~odoo.models.Model._parent_name`).
|
||||
``any``
|
||||
matches if any record in the relationship traversal through
|
||||
``field_expr`` (:class:`~odoo.fields.Many2one`,
|
||||
``field_name`` (:class:`~odoo.fields.Many2one`,
|
||||
:class:`~odoo.fields.One2many`, or :class:`~odoo.fields.Many2many`)
|
||||
satisfies the provided domain ``value``.
|
||||
The ``field_expr`` should be a field name.
|
||||
``not any``
|
||||
matches if no record in the relationship traversal through
|
||||
``field_expr`` (:class:`~odoo.fields.Many2one`,
|
||||
``field_name`` (:class:`~odoo.fields.Many2one`,
|
||||
:class:`~odoo.fields.One2many`, or :class:`~odoo.fields.Many2many`)
|
||||
satisfies the provided domain ``value``.
|
||||
|
||||
@@ -983,42 +959,19 @@ A domain can be a simple condition ``(field_expr, operator, value)`` where:
|
||||
variable type, must be comparable (through ``operator``) to the named
|
||||
field.
|
||||
|
||||
:class:`~odoo.fields.Domain` can be used as a builder for domains.
|
||||
Domain criteria can be combined using logical operators in *prefix* form:
|
||||
|
||||
.. code-block:: python
|
||||
``'&'``
|
||||
logical *AND*, default operation to combine criteria following one
|
||||
another. Arity 2 (uses the next 2 criteria or combinations).
|
||||
``'|'``
|
||||
logical *OR*, arity 2.
|
||||
``'!'``
|
||||
logical *NOT*, arity 1.
|
||||
|
||||
# parse a domain (from list to Domain)
|
||||
domain = Domain([('name', '=', 'abc'), ('phone', 'like', '7620')])
|
||||
|
||||
# serialize domain as a list (from Domain to list)
|
||||
domain_list = list(domain)
|
||||
|
||||
# simple domains
|
||||
d1 = Domain('name', '=', 'abc')
|
||||
d2 = Domain('phone', 'like', '7620')
|
||||
|
||||
# combine domains
|
||||
d3 = d1 & d2 # and
|
||||
d4 = d1 | d2 # or
|
||||
d5 = ~d1 # not
|
||||
|
||||
# combine and parse multiple domains (any iterable of domains)
|
||||
Domain.AND([d1, d2, d3, ...])
|
||||
Domain.OR([d4, d5, ...])
|
||||
|
||||
# constants
|
||||
Domain.TRUE # true domain
|
||||
Domain.FALSE # false domain
|
||||
|
||||
.. automethod:: odoo.fields.Domain.iter_conditions
|
||||
|
||||
.. automethod:: odoo.fields.Domain.map_conditions
|
||||
|
||||
A domain is serialized as a ``list`` of criteria, each criterion being a triple
|
||||
(either a ``list`` or a ``tuple``) representing a simple condition.
|
||||
Domain criteria can be combined using logical operators in a *prefix* notation.
|
||||
You can combine 2 domains using ``'&'`` (AND), ``'|'`` (OR)
|
||||
and you can negate 1 using ``'!'`` (NOT).
|
||||
.. note:: Mostly to negate combinations of criteria
|
||||
Individual criterion generally have a negative form (e.g. ``=`` ->
|
||||
``!=``, ``<`` -> ``>=``) which is simpler than negating the positive.
|
||||
|
||||
.. example::
|
||||
|
||||
@@ -1038,7 +991,6 @@ and you can negate 1 using ``'!'`` (NOT).
|
||||
|
||||
[('birthday.month_number', '=', 2)]
|
||||
|
||||
|
||||
Unlink
|
||||
------
|
||||
|
||||
@@ -1171,7 +1123,7 @@ fields, methods and meta-information (defaults & al) from its base.
|
||||
|
||||
class Inheritance1(models.Model):
|
||||
_name = 'inheritance.1'
|
||||
_inherit = ['inheritance.0']
|
||||
_inherit = 'inheritance.0'
|
||||
_description = 'Inheritance One'
|
||||
|
||||
def call(self):
|
||||
@@ -1209,8 +1161,8 @@ them (e.g. to change their default sort order)::
|
||||
|
||||
name = fields.Char(default="A")
|
||||
|
||||
class Extension0(models.Model):
|
||||
_inherit = ['extension.0']
|
||||
class Extension1(models.Model):
|
||||
_inherit = 'extension.0'
|
||||
|
||||
description = fields.Char(default="Extended")
|
||||
|
||||
@@ -1311,16 +1263,12 @@ and overridden by the ones given in subclasses.
|
||||
For instance, the second class below only adds a tooltip on the field
|
||||
``state``::
|
||||
|
||||
class FirstFoo(models.Model):
|
||||
class First(models.Model):
|
||||
_name = 'foo'
|
||||
state = fields.Selection([...], required=True)
|
||||
|
||||
class FirstFoo(models.Model):
|
||||
_inherit = ['first.foo']
|
||||
state = fields.Selection(help="Blah blah blah")
|
||||
|
||||
class WrongFirstFooClassName(models.Model):
|
||||
_name = 'first.foo' # force the model name
|
||||
_inherit = ['first.foo']
|
||||
class Second(models.Model):
|
||||
_inherit = 'foo'
|
||||
state = fields.Selection(help="Blah blah blah")
|
||||
|
||||
.. _reference/exceptions:
|
||||
|
||||
@@ -4,25 +4,6 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Odoo Online version 18.2
|
||||
========================
|
||||
|
||||
- `read_group` has been deprecated in favor of `_read_group` for backend usage and of
|
||||
`formatted_read_group` as formatted public API. See `#163300 <https://github.com/odoo/odoo/pull/163300>`_.
|
||||
- `@api.private` is added to distinguish public Python methods from methods exposed for RPC calls.
|
||||
See `#195402 <https://github.com/odoo/odoo/pull/195402>`_.
|
||||
- Native namespaces for ``odoo`` module `PEP-420 <https://peps.python.org/pep-0420/>`_.
|
||||
See `#195664 <https://github.com/odoo/odoo/pull/195664>`_.
|
||||
|
||||
Odoo Online version 18.1
|
||||
========================
|
||||
|
||||
- New `odoo.domain` and `odoo.Domain` API for domain manipulation.
|
||||
See `#170009 <https://github.com/odoo/odoo/pull/170009>`_.
|
||||
- Declare constraints and indexes as model attributes with `#175783 <https://github.com/odoo/odoo/pull/175783>`_.
|
||||
- The `json` controllers have been renamed to `jsonrpc`. They are called the same, only the
|
||||
`type` in the python files changed. See `#183636 <https://github.com/odoo/odoo/pull/183636>`_.
|
||||
|
||||
Odoo version 18.0
|
||||
=================
|
||||
|
||||
@@ -33,6 +14,7 @@ Odoo version 18.0
|
||||
See `#179148 <https://github.com/odoo/odoo/pull/179148>`_.
|
||||
- Translations are made available from the `Environment` with `#174844 <https://github.com/odoo/odoo/pull/174844>`_.
|
||||
|
||||
|
||||
Odoo Online version 17.4
|
||||
========================
|
||||
|
||||
|
||||
@@ -245,12 +245,6 @@ less secure.
|
||||
'AND state=%s AND obj_price > 0', (tuple(ids), 'draft',))
|
||||
auction_lots_ids = [x[0] for x in self.env.cr.fetchall()]
|
||||
|
||||
# nearly there
|
||||
auction_lots_ids = [x[x] for x in self.env.execute_query(SQL("""
|
||||
SELECT id FROM auction_lots
|
||||
WHERE auction_id IN %s AND state = %s AND obj_price > 0
|
||||
""", tuple(ids), 'draft'))
|
||||
|
||||
# better
|
||||
auction_lots_ids = self.search([('auction_id','in',ids), ('state','=','draft'), ('obj_price','>',0)])
|
||||
|
||||
@@ -272,10 +266,6 @@ database abstraction layer (psycopg2) to decide how to format query parameters,
|
||||
not your job! For example psycopg2 knows that when you pass a list of values
|
||||
it needs to format them as a comma-separated list, enclosed in parentheses !
|
||||
|
||||
Even better, there exists a :class:`~odoo.tools.SQL` wrapper to build queries
|
||||
using templates that handles the formatting of inputs.
|
||||
Check :ref:`SQL execution <reference/orm/sql>` for detailed usage.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
# the following is very bad:
|
||||
@@ -291,13 +281,6 @@ Check :ref:`SQL execution <reference/orm/sql>` for detailed usage.
|
||||
'WHERE parent_id IN %s',
|
||||
(tuple(ids),))
|
||||
|
||||
# more readable
|
||||
self.env.cr.execute(SQL("""
|
||||
SELECT DISTINCT child_id
|
||||
FROM account_account_consol_rel
|
||||
WHERE parent_id IN %s
|
||||
""", tuple(ids)))
|
||||
|
||||
This is very important, so please be careful also when refactoring, and most
|
||||
importantly do not copy these patterns!
|
||||
|
||||
@@ -310,30 +293,6 @@ online documentation of pyscopg2 to learn of to use it properly:
|
||||
- `Advanced parameter types <http://initd.org/psycopg/docs/usage.html#adaptation-of-python-values-to-sql-types>`_
|
||||
- `Psycopg documentation <https://www.psycopg.org/docs/sql.html>`_
|
||||
|
||||
Building the domains
|
||||
--------------------
|
||||
|
||||
Domains are represented as lists and are serializable.
|
||||
You would be tented to manipulate these lists directly, however it can
|
||||
introduce subtle issues where the user could inject a domain if the input is
|
||||
not normalized.
|
||||
Use :class:`~odoo.fields.Domain` to handle safely the manipulation
|
||||
of domains.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
# bad
|
||||
# the user can just pass ['|', ('id', '>', 0)] to access all
|
||||
domain = ... # passed by the user
|
||||
security_domain = [('user_id', '=', self.env.uid)]
|
||||
domain += security_domain # can have a side-effect if this is a function argument
|
||||
self.search(domain)
|
||||
|
||||
# better
|
||||
domain = Domain(...)
|
||||
domain &= Domain('user_id', '=', self.env.uid)
|
||||
self.search(domain)
|
||||
|
||||
Unescaped field content
|
||||
-----------------------
|
||||
|
||||
|
||||
@@ -704,16 +704,10 @@ interaction with the :ref:`orm <reference/orm>` and its functionalities.
|
||||
By default, the shell is running in transaction mode. This means that any change made to the
|
||||
database is rolled back when exiting the shell. To commit changes, use `env.cr.commit()`.
|
||||
|
||||
|
||||
.. option:: --shell-file <init_script.py>
|
||||
|
||||
Specify a Python script to be run after the start of the shell. Overrides the environment
|
||||
variable `PYTHONSTARTUP`.
|
||||
|
||||
.. option:: --shell-interface (ipython|ptpython|bpython|python)
|
||||
|
||||
Specify a preferred `REPL` to use in shell mode. This shell is started with the `env` variable
|
||||
already initialized to be able to access the `ORM` and other Odoo modules.
|
||||
Specify a preferred REPL to use in shell mode. This shell is started with the `env` variable
|
||||
already initialized to be able to access the ORM and other Odoo modules.
|
||||
|
||||
.. seealso::
|
||||
:ref:`reference/orm/environment`
|
||||
|
||||
@@ -472,7 +472,7 @@ returned dictionary.
|
||||
from odoo.http import request
|
||||
|
||||
class IrHttp(models.AbstractModel):
|
||||
_inherit = ['ir.http']
|
||||
_inherit = 'ir.http'
|
||||
|
||||
def session_info(self):
|
||||
result = super(IrHttp, self).session_info()
|
||||
@@ -838,10 +838,6 @@ Domain (`domain`)
|
||||
- `in_dialog` (default: `false`): if true, the widget opens a dialog when the user wants to edit
|
||||
the domain whereas by default, the domain editor is rendered just below the value.
|
||||
|
||||
- `count_limit` (default: `10000`): the domain widget performs search_count requests to validate
|
||||
the domain, and to indicate the number of records matching it. This requests might be costly
|
||||
on large tables, so by default, the search_count is limited to 10000.
|
||||
|
||||
Link button (`link_button`)
|
||||
The `LinkButton` widget actually simply displays a span with an icon and the
|
||||
text value as content. The link is clickable and will open a new browser
|
||||
|
||||
@@ -1648,16 +1648,11 @@ The `header` element accepts the following children elements:
|
||||
|
||||
.. _reference/view_architectures/list/control:
|
||||
|
||||
`control`: customize create and delete actions
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
`control` & `create`: add inline create buttons
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The `control` element allows to customize the create and delete actions. In particular, it allows
|
||||
to add special create buttons with specific contexts, to use regular view buttons as create
|
||||
actions, and to make the create and delete actions available only under certain conditions.
|
||||
|
||||
.. important::
|
||||
The `control` element is only supported in list views inside :class:`~odoo.fields.One2many` or
|
||||
:class:`~odoo.fields.Many2many` fields.
|
||||
The `control` element defines a control row that accepts create buttons. Each create button is
|
||||
defined through a `create` element.
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
@@ -1665,62 +1660,31 @@ actions, and to make the create and delete actions available only under certain
|
||||
<control>
|
||||
<create string="LABEL"/>
|
||||
<BUTTONS/>
|
||||
<delete invisible="parent.is_sent">
|
||||
</control>
|
||||
...
|
||||
</list>
|
||||
|
||||
The `control` element takes no attributes. It accepts the following children elements:
|
||||
The `control` element takes no attributes.
|
||||
|
||||
.. attribute:: create
|
||||
The `create` element can have the following attributes:
|
||||
|
||||
.. attribute:: string
|
||||
:noindex:
|
||||
|
||||
The given `create` elements replace the default :guilabel:`Add a line` button.
|
||||
A `create` element can have the following attributes:
|
||||
The button's text.
|
||||
|
||||
.. attribute:: string
|
||||
:noindex:
|
||||
:requirement: Mandatory
|
||||
:type: str
|
||||
|
||||
The button's text.
|
||||
|
||||
:requirement: Mandatory
|
||||
:type: str
|
||||
|
||||
.. attribute:: context
|
||||
:noindex:
|
||||
|
||||
The context that is merged into the view's context when performing the button's call, as a Python
|
||||
expression that evaluates to a dict.
|
||||
|
||||
:requirement: Optional
|
||||
:type: :ref:`Python expression <reference/view_architectures/python_expression>`
|
||||
:default: `{}`
|
||||
|
||||
.. attribute:: invisible
|
||||
:noindex:
|
||||
|
||||
Whether the element is visible (`False`) or hidden (`True`), as a Python expression that evaluates to a
|
||||
bool. The parent record and the context can be used in the expresion.
|
||||
|
||||
:requirement: Optional
|
||||
:type: :ref:`Python expression <reference/view_architectures/python_expression>`
|
||||
:default: `False`
|
||||
|
||||
.. attribute:: button
|
||||
.. attribute:: context
|
||||
:noindex:
|
||||
|
||||
Like :ref:`regular view buttons <reference/view_architectures/list/button>`
|
||||
The context that is merged into the view's context when performing the button's call, as a Python
|
||||
expression that evaluates to a dict.
|
||||
|
||||
.. attribute:: delete
|
||||
|
||||
The `delete` element allows to conditionnaly hide the delete icon, row by row. There can only be
|
||||
one child of this type. It can have only one attribute:
|
||||
|
||||
.. attribute:: invisible
|
||||
:noindex:
|
||||
|
||||
Same as for `create`, except that in this case the record itself can also be used in the
|
||||
expresion.
|
||||
:requirement: Optional
|
||||
:type: :ref:`Python expression <reference/view_architectures/python_expression>`
|
||||
:default: `{}`
|
||||
|
||||
.. admonition:: Possible structure and representation of its rendering
|
||||
|
||||
@@ -1738,12 +1702,17 @@ The `control` element takes no attributes. It accepts the following children ele
|
||||
<field name="currency"/>
|
||||
<field name="tax_id"/>
|
||||
<control>
|
||||
<create string="Add an item"/>
|
||||
<create string="Add a item"/>
|
||||
<create string="Add a section" context="{'default_type': 'section'}"/>
|
||||
<create string="Add a note" context="{'default_type': 'note'}"/>
|
||||
</control>
|
||||
</list>
|
||||
|
||||
.. note::
|
||||
Using the `control` element makes sense only if the list view is inside a
|
||||
:class:`~odoo.fields.One2many` or :class:`~odoo.fields.Many2many` field. If any `create` element
|
||||
is defined, it overwrites the default :guilabel:`add a line` button.
|
||||
|
||||
.. _reference/view_architectures/search:
|
||||
|
||||
Search
|
||||
@@ -2084,7 +2053,9 @@ The `filter` element can have the following attributes:
|
||||
the :guilabel:`Group By` menu. When the field is of type `date` or `datetime`, the filter
|
||||
generates a submenu of the :guilabel:`Group By` menu with the following interval options
|
||||
available: :guilabel:`Year`, :guilabel:`Quarter`, :guilabel:`Month`, :guilabel:`Week`, and
|
||||
:guilabel:`Day`.
|
||||
:guilabel:`Day`. When the filter is in the default set of filters activated at the view
|
||||
initialization, the records are grouped by month by default. This can be changed by using the
|
||||
syntax `date_field:interval`.
|
||||
|
||||
.. example::
|
||||
.. code-block:: xml
|
||||
@@ -2093,7 +2064,7 @@ The `filter` element can have the following attributes:
|
||||
<filter string="Creation Date" name="groupby_create_date" context="{'group_by': 'create_date:week'}"/>
|
||||
|
||||
.. note::
|
||||
The results of `formatted_read_group` grouped on a field may be influenced by its `group_expand`
|
||||
The results of `read_groups` grouped on a field may be influenced by its `group_expand`
|
||||
attribute, allowing to display empty groups when needed. For more information, please refer to
|
||||
:class:`~odoo.fields.Field`.
|
||||
|
||||
@@ -2261,16 +2232,6 @@ attributes:
|
||||
:default: `True`
|
||||
:scope: :class:`~odoo.fields.Many2one` fields
|
||||
|
||||
.. attribute:: depth
|
||||
:noindex:
|
||||
|
||||
If set to a non zero integer, the hierarchy (if any) will be unfold up to the given level.
|
||||
|
||||
:requirement: Optional
|
||||
:type: integer
|
||||
:default: `0`
|
||||
:scope: :class:`~odoo.fields.Many2one` fields
|
||||
|
||||
When the `field` element has the `select=multi` attribute set, it can have the following additional
|
||||
attributes:
|
||||
|
||||
@@ -2964,11 +2925,6 @@ The `progressbar` element can have the following attributes:
|
||||
</templates>
|
||||
</kanban>
|
||||
|
||||
`control`: customize create and delete actions
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Like for :ref:`list views <reference/view_architectures/list/control>`.
|
||||
|
||||
.. todo::
|
||||
- kanban-specific CSS
|
||||
- kanban structures/widgets (vignette, details, ...)
|
||||
@@ -3198,298 +3154,105 @@ calendar.
|
||||
order to set the initial focus of the calendar on the period (see `mode`) around
|
||||
this date (the context key to use being `initial_date`)
|
||||
|
||||
Their root element is ``<calendar>``. Available attributes on the root node are:
|
||||
Their root element is ``<calendar>``. Available attributes on the
|
||||
calendar view are:
|
||||
|
||||
:string:
|
||||
string (default: ``''``)
|
||||
|
||||
This view title is displayed only if you open an action that has no name and
|
||||
whose target is 'new' (opening a dialog)
|
||||
|
||||
:create:
|
||||
bool (default: ``True``)
|
||||
|
||||
Disable/enable record creation on the view.
|
||||
|
||||
:edit:
|
||||
bool (default: ``True``)
|
||||
|
||||
Disable/enable record edition on the view.
|
||||
|
||||
:delete:
|
||||
bool (default: ``True``)
|
||||
|
||||
Disable/enable record deletion on the view through the **Action** dropdown.
|
||||
|
||||
.. rst-class:: o-definition-list
|
||||
|
||||
.. attribute:: date_start
|
||||
:noindex:
|
||||
|
||||
Name of the record's field holding the start date for the event.
|
||||
|
||||
:requirement: Mandatory
|
||||
:type: str
|
||||
|
||||
.. attribute:: date_stop
|
||||
:noindex:
|
||||
|
||||
Name of the record's field holding the end date for the event.
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
|
||||
.. attribute:: date_delay
|
||||
:noindex:
|
||||
|
||||
Alternative to ``date_stop``. Provides the duration of the event instead of
|
||||
its end date (unit: hour).
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
|
||||
.. attribute:: scales
|
||||
:noindex:
|
||||
|
||||
Comma-separated list of available scales, among ``day``, ``week``, ``month``,
|
||||
``year``. By default, all scales are available.
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
:default: `"day,week,month,year"`
|
||||
|
||||
.. attribute:: mode
|
||||
:noindex:
|
||||
|
||||
Default scale of the calendar.
|
||||
|
||||
:requirement: Optional
|
||||
:type: `"day"`, `"week"`, `"month"` or `"year"`
|
||||
:default: `"week"`
|
||||
|
||||
.. attribute:: color
|
||||
:noindex:
|
||||
|
||||
Name of the record's field to use for *color segmentation*. Records in the
|
||||
same color segment are allocated the same highlight color in the calendar.
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
|
||||
.. attribute:: all_day
|
||||
:noindex:
|
||||
|
||||
Name of the record's boolean field indicating whether the corresponding
|
||||
event is flagged as day-long, in which case duration is irrelevant.
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
|
||||
.. attribute:: event_limit
|
||||
:noindex:
|
||||
|
||||
Limits the number of events displayed in calendar cells, in `month` scale, and
|
||||
for all-day events in `week` and `day` scales. If there are more events than
|
||||
the limit, a "more" button is added to show the rest of the events in a popover.
|
||||
|
||||
:requirement: Optional
|
||||
:type: int
|
||||
:default: 5
|
||||
|
||||
.. attribute:: show_unusual_days
|
||||
:noindex:
|
||||
|
||||
If set to true weekend days and public holidays have a greyed out background.
|
||||
|
||||
:requirement: Optional
|
||||
:type: bool
|
||||
:default: `False`
|
||||
|
||||
.. attribute:: hide_date
|
||||
:noindex:
|
||||
|
||||
Set it to true to hide the date part in the record's popover.
|
||||
|
||||
:requirement: Optional
|
||||
:type: bool
|
||||
:default: `False`
|
||||
|
||||
.. attribute:: hide_time
|
||||
:noindex:
|
||||
|
||||
Set it to true to hide the time part in the record's popover.
|
||||
|
||||
:requirement: Optional
|
||||
:type: bool
|
||||
:default: False
|
||||
|
||||
.. attribute:: month_overflow
|
||||
:noindex:
|
||||
|
||||
By default, in month mode, the last days of the previous month and the first
|
||||
days of the next months are displayed, as well as their events. This option
|
||||
allows to disable this such that those sibling days are greyed out and their
|
||||
events aren't displayed.
|
||||
|
||||
:requirement: Optional
|
||||
:type: bool
|
||||
:default: `True`
|
||||
|
||||
.. attribute:: show_date_picker
|
||||
:noindex:
|
||||
|
||||
By default, a mini calendar (in month mode) is displayed in the side panel,
|
||||
next to the main calendar. This option allows to remove it by setting it to
|
||||
`False`.
|
||||
|
||||
:requirement: Optional
|
||||
:type: bool
|
||||
:default: `True`
|
||||
|
||||
.. attribute:: event_open_popup
|
||||
:noindex:
|
||||
|
||||
If true, open events in dialog to edit them, otherwise, open them in a
|
||||
classical form view.
|
||||
|
||||
:requirement: Optional
|
||||
:type: bool
|
||||
:default: `False`
|
||||
|
||||
.. attribute:: form_view_id
|
||||
:noindex:
|
||||
|
||||
View to open when the user creates or edits an event. By default, uses the
|
||||
form view of the current action, if any.
|
||||
|
||||
:requirement: Optional
|
||||
:type: int
|
||||
|
||||
.. attribute:: quick_create
|
||||
:noindex:
|
||||
|
||||
Enables quick event creation on click: only asks the user for a ``name`` and
|
||||
tries to create a new event with just that and the clicked event time. Falls
|
||||
back to a full form view if the quick creation fails.
|
||||
|
||||
:requirement: Optional
|
||||
:type: bool
|
||||
:default: `True`
|
||||
|
||||
.. attribute:: create_name_field
|
||||
:noindex:
|
||||
|
||||
Name of the record's field holding the display name of the record. This field
|
||||
is used when creating records through the 'quick create' mechanism.
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
:default: `name`
|
||||
|
||||
.. attribute:: quick_create_view_id
|
||||
:noindex:
|
||||
|
||||
Id of the form view to open when the attribute ``quick_create`` is set and the
|
||||
user creates an event, instead of the default dialog which only allows to
|
||||
specify a name.
|
||||
|
||||
:requirement: Optional
|
||||
:type: int
|
||||
|
||||
.. include:: view_architectures/root_attribute_create.rst
|
||||
|
||||
.. include:: view_architectures/root_attribute_edit.rst
|
||||
|
||||
.. attribute:: delete
|
||||
:noindex:
|
||||
|
||||
Disable/enable record deletion on the view.
|
||||
|
||||
:requirement: Optional
|
||||
:type: bool
|
||||
:default: `True`
|
||||
|
||||
.. include:: view_architectures/root_attribute_string.rst
|
||||
|
||||
.. _reference/view_architectures/calendar/components:
|
||||
|
||||
Components
|
||||
----------
|
||||
|
||||
Calendar views accept a single type of child elements: ``<field>``. Those fields
|
||||
are displayed in a popover, in the given order, which opens when a record
|
||||
(a calendar event) is clicked.
|
||||
|
||||
.. note:: Fields in the popover are readonly. If the `edit` action is available,
|
||||
an `Edit` button is displayed in the popover, to open a form view where fields
|
||||
can be edited.
|
||||
|
||||
Field nodes can have the following attributes:
|
||||
|
||||
.. include:: view_architectures/field_attribute_name.rst
|
||||
|
||||
.. attribute:: invisible
|
||||
:noindex:
|
||||
|
||||
Python expression indicating whether the field should be displayed or not.
|
||||
Other fields of the model can be used in the expression, as long as those
|
||||
fields are also declared here.
|
||||
|
||||
:requirement: Optional
|
||||
:type: :ref:`Python expression <reference/view_architectures/python_expression>`
|
||||
:default: `False`
|
||||
|
||||
.. attribute:: options
|
||||
:noindex:
|
||||
|
||||
Python expression encoding an object of options for the field. In particular,
|
||||
the option `icon`, allowing to specify, as classnames, which icon to display
|
||||
in front of the field in the popover (for instance, `fa fa-users`). If no
|
||||
icon is given, the option `string` can be set, and its value is then used as
|
||||
label, displayed in front of the field.
|
||||
|
||||
:requirement: Optional
|
||||
:type: :ref:`Python expression <reference/view_architectures/python_expression>`
|
||||
:default: `{}`
|
||||
|
||||
Specifying a ``<field>`` in a calendar arch also allows to customize the filter
|
||||
side panel, by setting the `filters` attribute. Extra attributes are then
|
||||
available for that matter:
|
||||
|
||||
.. attribute:: filters
|
||||
:noindex:
|
||||
|
||||
If set to true, the field can be used as filter, from the side panel of the
|
||||
calendar.
|
||||
|
||||
:requirement: Optional
|
||||
:type: bool
|
||||
:default: `False`
|
||||
|
||||
.. attribute:: avatar_field
|
||||
:noindex:
|
||||
|
||||
Only for relational fields. Specify the name of the field on the co-model to
|
||||
use to display as avatar in front of field values in the side panel filters.
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
|
||||
.. attribute:: color
|
||||
:noindex:
|
||||
|
||||
Specify which field to use to colorize the checkbox in the side panel filters.
|
||||
By default, the color attribute of the calendar view is used to match events
|
||||
with values in the filters.
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
|
||||
.. attribute:: write_model
|
||||
:noindex:
|
||||
|
||||
Allows to create new filter values on the fly. The given model is then used
|
||||
as model for those filters. To combine with `write_field`.
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
|
||||
.. attribute:: write_field
|
||||
:noindex:
|
||||
|
||||
Combined with `write_model`, specifies the field name, in the given model,
|
||||
to use to encode the filter value.
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
|
||||
.. attribute:: filter_field
|
||||
:noindex:
|
||||
|
||||
Combined with `write_model`, specifies the field name, in the given model,
|
||||
to use to encode the status of the filter (whether it is checked or not).
|
||||
|
||||
:requirement: Optional
|
||||
:type: str
|
||||
``date_start`` (required)
|
||||
name of the record's field holding the start date for the event
|
||||
``date_stop``
|
||||
name of the record's field holding the end date for the event, if
|
||||
``date_stop`` is provided records become movable (via drag and drop)
|
||||
directly in the calendar
|
||||
``date_delay``
|
||||
alternative to ``date_stop``, provides the duration of the event instead of
|
||||
its end date (unit: day)
|
||||
``color``
|
||||
name of a record field to use for *color segmentation*. Records in the
|
||||
same color segment are allocated the same highlight color in the calendar,
|
||||
colors are allocated semi-randomly.
|
||||
Displayed the display_name/avatar of the visible record in the sidebar
|
||||
``form_view_id``
|
||||
view to open when the user create or edit an event. Note that if this attribute
|
||||
is not set, the calendar view will fall back to the id of the form view in the
|
||||
current action, if any.
|
||||
``event_open_popup``
|
||||
If the option 'event_open_popup' is set to true, then the calendar view will
|
||||
open events (or records) in a FormViewDialog. Otherwise, it will open events
|
||||
in a new form view (with a do_action)
|
||||
``quick_create``
|
||||
enables quick-event creation on click: only asks the user for a ``name``
|
||||
(the field to which this values is saved can be controlled through
|
||||
``rec_name``) and tries to create a new event with just that and the clicked
|
||||
event time. Falls back to a full form dialog if the quick creation fails
|
||||
``quick_create_view_id``
|
||||
View to open when the attribute ``quick_create`` is set and the user creates
|
||||
an event instead of the default dialog.
|
||||
``create_name_field``
|
||||
name of the record's field holding the textual representation of the record,
|
||||
this is used when creating records through the 'quick create' mechanism
|
||||
``all_day``
|
||||
name of a boolean field on the record indicating whether the corresponding
|
||||
event is flagged as day-long (and duration is irrelevant)
|
||||
``mode``
|
||||
Default display mode when loading the calendar.
|
||||
Possible attributes are: ``day``, ``week``, ``month``, ``year``
|
||||
``scales``
|
||||
Comma-separated list of scales to provide. By default, all scales are
|
||||
available. See mode for possible scale values.
|
||||
``create``, ``delete``
|
||||
allows disabling the corresponding action in the view by setting the
|
||||
corresponding attribute to ``false``
|
||||
``<field>``
|
||||
declares fields to aggregate or to use in kanban *logic*. If the field is
|
||||
simply displayed in the calendar cards.
|
||||
|
||||
Fields can have additional attributes:
|
||||
|
||||
.. rst-class:: o-definition-list
|
||||
|
||||
``invisible``
|
||||
use "True" to hide the value in the cards
|
||||
``avatar_field``
|
||||
only for x2many field, to display the avatar instead of the display_name
|
||||
in the cards
|
||||
``write_model`` and ``write_field`` and ``filter_field``
|
||||
you can add a filter and save the result in the defined model, the
|
||||
filter is added in the sidebar. The ``filter_field`` is optional and allows
|
||||
you to specify the field that will hold the status of the filter.
|
||||
``filters`` and ``color``
|
||||
use "True" to add this field in filter in the sidebar. You can specify
|
||||
a ``color`` field used to colorize the checkbox.
|
||||
|
||||
|
||||
Model Commons
|
||||
-------------
|
||||
|
||||
.. currentmodule:: odoo.addons.base.models.ir_ui_view
|
||||
.. autoattribute:: Model._date_name
|
||||
:noindex:
|
||||
|
||||
.. _reference/view_architectures/activity:
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ Fields
|
||||
|
||||
View records expose a number of fields.
|
||||
|
||||
.. autoclass:: odoo.addons.base.models.ir_ui_view.IrUiView()
|
||||
.. autoclass:: odoo.addons.base.models.ir_ui_view.View()
|
||||
|
||||
.. attribute:: name
|
||||
|
||||
@@ -363,8 +363,8 @@ specifies how the matched node should be modified.
|
||||
Model commons
|
||||
=============
|
||||
|
||||
.. autoclass:: odoo.addons.base.models.ir_ui_view.Base()
|
||||
.. autoclass:: odoo.addons.base.models.ir_ui_view.View()
|
||||
:noindex:
|
||||
|
||||
.. automethod:: Base.get_views
|
||||
.. automethod:: Base.get_view
|
||||
.. automethod:: Model.get_views
|
||||
.. automethod:: Model.get_view
|
||||
|
||||
@@ -797,9 +797,7 @@ Model constraints
|
||||
|
||||
Odoo provides two ways to set up automatically verified invariants:
|
||||
:func:`Python constraints <odoo.api.constrains>` and
|
||||
:attr:`SQL constraints <odoo.models.Constraint>`.
|
||||
In a similar way, you can add more complex
|
||||
:attr:`SQL indexes <odoo.models.Index>`.
|
||||
:attr:`SQL constraints <odoo.models.Model._sql_constraints>`.
|
||||
|
||||
A Python constraint is defined as a method decorated with
|
||||
:func:`~odoo.api.constrains`, and invoked on a recordset. The decorator
|
||||
@@ -821,9 +819,11 @@ raise an exception if its invariant is not satisfied::
|
||||
Add a constraint that checks that the instructor is not present in the
|
||||
attendees of his/her own session.
|
||||
|
||||
Constraints and indexes are defined using:
|
||||
:attr:`~odoo.models.Constraint`,
|
||||
:attr:`~odoo.models.Index` and :attr:`~odoo.models.UniqueIndex`.
|
||||
SQL constraints are defined through the model attribute
|
||||
:attr:`~odoo.models.Model._sql_constraints`. The latter is assigned to a list
|
||||
of triples of strings ``(name, sql_definition, message)``, where ``name`` is a
|
||||
valid SQL constraint name, ``sql_definition`` is a table_constraint_ expression,
|
||||
and ``message`` is the error message.
|
||||
|
||||
.. exercise:: Add SQL constraints
|
||||
|
||||
|
||||
@@ -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/67a952f30731fc00941587ae165b7a885da0e77e/addons/crm/__manifest__.py>`__
|
||||
`CRM file <https://github.com/odoo/odoo/blob/fc92728fb2aa306bf0e01a7f9ae1cfa3c1df0e10/addons/crm/__manifest__.py#L1-L67>`__
|
||||
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
|
||||
|
||||
@@ -9,7 +9,7 @@ users from setting a negative expected price.
|
||||
|
||||
Odoo provides two ways to set up automatically verified invariants:
|
||||
:func:`Python constraints <odoo.api.constrains>` and
|
||||
:attr:`SQL constraints <odoo.models.Constraint>`.
|
||||
:attr:`SQL constraints <odoo.models.Model._sql_constraints>`.
|
||||
|
||||
SQL
|
||||
===
|
||||
@@ -33,16 +33,14 @@ SQL
|
||||
:align: center
|
||||
:alt: Constraints on names
|
||||
|
||||
SQL objects are defined through :attr:`~odoo.models.Constraint` attributes.
|
||||
SQL constraints are defined through the model attribute
|
||||
:attr:`~odoo.models.Model._sql_constraints`. This attribute is assigned a list
|
||||
of triples containing strings ``(name, sql_definition, message)``, where ``name`` is a
|
||||
valid SQL constraint name, ``sql_definition`` is a table_constraint_ expression
|
||||
and ``message`` is the error message.
|
||||
|
||||
Simple example:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
_check_percentage = models.Constraint(
|
||||
'CHECK(percentage >= 0 AND percentage <= 100)',
|
||||
'The percentage of an analytic distribution should be between 0 and 100.',
|
||||
)
|
||||
You can find a simple example
|
||||
`here <https://github.com/odoo/odoo/blob/24b0b6f07f65b6151d1d06150e376320a44fd20a/addons/analytic/models/analytic_account.py#L20-L23>`__.
|
||||
|
||||
.. exercise:: Add SQL constraints.
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ existing model, which means we will use the first mechanism. For example::
|
||||
from odoo import fields, models
|
||||
|
||||
class InheritedModel(models.Model):
|
||||
_inherit = ["inherited.model"]
|
||||
_inherit = "inherited.model"
|
||||
|
||||
new_field = fields.Char(string="New Field")
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ module for the ``estate.property`` model. For now, the overridden action will si
|
||||
from odoo import models
|
||||
|
||||
class InheritedModel(models.Model):
|
||||
_inherit = ["inherited.model"]
|
||||
_inherit = "inherited.model"
|
||||
|
||||
def inherited_action(self):
|
||||
return super().inherited_action()
|
||||
|
||||
@@ -801,8 +801,9 @@ scheduling changes or discussions between teachers and assistants:
|
||||
.. code-block:: python
|
||||
:caption: ``academy/models.py``
|
||||
|
||||
class AcademyCourses(models.Model):
|
||||
_inherit = ['mail.thread']
|
||||
class Courses(models.Model):
|
||||
_name = 'academy.courses'
|
||||
_inherit = 'mail.thread'
|
||||
|
||||
name = fields.Char()
|
||||
teacher_id = fields.Many2one('academy.teachers', string="Teacher")
|
||||
|
||||
@@ -6,6 +6,8 @@ from docutils.parsers.rst.states import RSTState
|
||||
from sphinx.domains.python import PyAttribute, PyClasslike
|
||||
from sphinx.ext.autodoc import AttributeDocumenter, ClassDocumenter
|
||||
|
||||
import odoo
|
||||
|
||||
nested_parse = RSTState.nested_parse
|
||||
def patched_nested_parse(self, block, input_offset, node, match_titles=False,
|
||||
state_machine_class=None, state_machine_kwargs=None):
|
||||
@@ -21,8 +23,7 @@ class OdooClassDocumenter(ClassDocumenter):
|
||||
|
||||
@classmethod
|
||||
def can_document_member(cls, member, membername, isattr, parent):
|
||||
from odoo.models import MetaModel
|
||||
return isinstance(member, MetaModel)
|
||||
return isinstance(member, odoo.models.MetaModel)
|
||||
|
||||
def add_content(self, more_content):
|
||||
sourcename = self.get_sourcename()
|
||||
@@ -55,8 +56,7 @@ class FieldDocumenter(AttributeDocumenter):
|
||||
|
||||
@classmethod
|
||||
def can_document_member(cls, member, membername, isattr, parent):
|
||||
from odoo.fields import Field
|
||||
return isinstance(member, Field)
|
||||
return isinstance(member, odoo.fields.Field)
|
||||
|
||||
def update_annotations(self, parent):
|
||||
super().update_annotations(parent)
|
||||
@@ -67,8 +67,7 @@ class FieldDocumenter(AttributeDocumenter):
|
||||
if field.type == 'many2one':
|
||||
annotation[attrname] = int
|
||||
elif field.type in ('one2many', 'many2many'):
|
||||
from odoo.fields import Command
|
||||
annotation[attrname] = Sequence[Command]
|
||||
annotation[attrname] = Sequence[odoo.fields.Command]
|
||||
elif field.type in ('selection', 'reference', 'char', 'text', 'html'):
|
||||
annotation[attrname] = str
|
||||
elif field.type == 'boolean':
|
||||
@@ -105,8 +104,7 @@ class FieldDocumenter(AttributeDocumenter):
|
||||
if reference:
|
||||
self.add_line(f":possible_values: `{reference} <{self.config.source_read_replace_vals['GITHUB_PATH']}/{reference}>`__", source_name)
|
||||
if field.default:
|
||||
from odoo.models import Model
|
||||
self.add_line(f":default: {field.default(Model)}", source_name)
|
||||
self.add_line(f":default: {field.default(odoo.models.Model)}", source_name)
|
||||
|
||||
super().add_content(more_content)
|
||||
if field.help:
|
||||
|
||||
@@ -71,9 +71,9 @@ def setup(app):
|
||||
project = 'upgrade-util'
|
||||
project_root = os.path.join(os.path.dirname(util.__file__), '../..')
|
||||
else:
|
||||
from odoo import release
|
||||
import odoo
|
||||
project = 'odoo'
|
||||
project_root = os.path.join(os.path.dirname(release.__file__), '..')
|
||||
project_root = os.path.join(os.path.dirname(odoo.__file__), '..')
|
||||
return make_github_link(
|
||||
app,
|
||||
project=project,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,30 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) Odoo S.A.
|
||||
# This file is distributed under the same license as the Odoo package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Malaz Abuidris <msea@odoo.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-08 08:46+0000\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Malaz Abuidris <msea@odoo.com>, 2024\n"
|
||||
"Language-Team: Arabic (https://app.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: ../../content/applications.rst:9
|
||||
msgid "User Docs"
|
||||
msgstr "دليل المستخدم"
|
||||
|
||||
#: ../../content/applications.rst:11
|
||||
msgid "Discover our user guides and configuration tutorials per application."
|
||||
msgstr "استكشف دلائل المستخدم والدروس التعليمية للتهيئة لكل تطبيق. "
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,26 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) Odoo S.A.
|
||||
# This file is distributed under the same license as the Odoo package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Malaz Abuidris <msea@odoo.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-08 08:46+0000\n"
|
||||
"PO-Revision-Date: 2023-11-08 08:57+0000\n"
|
||||
"Last-Translator: Malaz Abuidris <msea@odoo.com>, 2024\n"
|
||||
"Language-Team: Arabic (https://app.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: ../../content/index.rst:5
|
||||
msgid "Odoo Documentation"
|
||||
msgstr "وثائق أودو "
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,256 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) Odoo S.A.
|
||||
# This file is distributed under the same license as the Odoo package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Wil Odoo, 2024
|
||||
# Malaz Abuidris <msea@odoo.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-18 07:12+0200\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Malaz Abuidris <msea@odoo.com>, 2024\n"
|
||||
"Language-Team: Arabic (https://app.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: ../../content/applications/settings.rst:3
|
||||
msgid "Settings"
|
||||
msgstr "الإعدادات"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:6
|
||||
msgid "Users and Features"
|
||||
msgstr "المستخدمين والخصائص "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:8
|
||||
msgid ""
|
||||
"As the administrator of your database, you are responsible for its usage. "
|
||||
"This includes the Apps you install as well as the number of users currently "
|
||||
"in use."
|
||||
msgstr ""
|
||||
"بصفتك مدير قاعدة البيانات، أنت مسؤول عن استخدامها. يشمل ذلك التطبيقات التي "
|
||||
"تقوم بثبيتها بالإضافة إلى عدد المستخدمين النشطين في الوقت الحالي. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:12
|
||||
msgid ""
|
||||
"Odoo is many things (ERP, CMS, CRM application, e-Commerce backend, etc.) "
|
||||
"but it is *not* a smartphone. You should apply caution when adding/removing "
|
||||
"features (especially Apps) on your database since this may impact your "
|
||||
"subscription amount significantly (or switch you from a free account to a "
|
||||
"paying one on our online platform)."
|
||||
msgstr ""
|
||||
"أودو هو العديد من الأشياء (برنامج لتخطيط موارد المؤسسات، نظام إدارة محتوى، "
|
||||
"تطبيق لإدارة علاقات العملاء، واجهة خلفية للتجارة الإلكترونية، إلخ..)، ولكنه "
|
||||
"*ليس* هاتفاً ذكياً. عليك توخي الحذر عند إضافة/إزالة الخصائص (خصوصاً "
|
||||
"التطبيقات) في قاعدة بياناتك، حيث قد يؤثر ذلك على تكلفة اشتراكك بشكل كبير (أو"
|
||||
" قد يؤدي إلى انتقالك من الحساب المجاني إلى الحساب المدفوع على منصتنا عبر "
|
||||
"الإنترنت). "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:18
|
||||
msgid ""
|
||||
"This page contains some information as to how you can manage your Odoo "
|
||||
"instances. Before carrying any of these procedures, we **strongly** advise "
|
||||
"to test them on a duplicate of your database first. That way, if something "
|
||||
"goes wrong, your day-to-day business is not impacted."
|
||||
msgstr ""
|
||||
"تحتوي هذه الصفحة على معلومات حول كيفية إدارة مثيلات أودو الخاصة بك. قبل "
|
||||
"القيام بتلك العمليات، نوصي **بشدة** اختبارها أولاً على نسخة من قاعدة "
|
||||
"البيانات. بهذه الطريقة، إذا حدث خطأ ما، لن يتأثر عملك الجاري بذلك الخطأ. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:23
|
||||
msgid ""
|
||||
"You can find guides on how to duplicate your databases both for :ref:`online"
|
||||
" <duplicate_online>` and :ref:`on premise <duplicate_premise>` "
|
||||
"installations."
|
||||
msgstr ""
|
||||
"ستجد الدلائل التي توضح كيفية إنشاء نسخة مطابقة لقاعدة البيانات لكل من إصداري"
|
||||
" أودو :ref:`أونلاين <duplicate_online>` و :ref:`الاستضافة الذاتية "
|
||||
"<duplicate_premise>`. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:27
|
||||
msgid ""
|
||||
"If you have questions about the content of this page or if you encounter an "
|
||||
"issue while carrying out these procedures, please contact us through our "
|
||||
"`support form <https://www.odoo.com/help>`__."
|
||||
msgstr ""
|
||||
"إذا كانت لديك أسئلة حول محتوى هذه الصفحة أو إذا واجهتك مشكلة أثناء تنفيذ هذه"
|
||||
" الإجراءات، فلا تتردد في التواصل معنا عن طريق `استمارة الدعم "
|
||||
"<https://www.odoo.com/help>`__. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:33
|
||||
msgid "Deactivating Users"
|
||||
msgstr "تعطيل المستخدمين "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:35
|
||||
msgid ""
|
||||
"Make sure you have sufficient **administrative rights** if you want to "
|
||||
"change the status of any of your users."
|
||||
msgstr ""
|
||||
"تأكد من أنك تملك **صلاحيات الوصول الإدارية** الكافية إذا كنت ترغب في تغيير "
|
||||
"حالة أي من المستخدمين لديك. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:38
|
||||
msgid ""
|
||||
"In your Odoo instance, click on **Settings**. You will have a section "
|
||||
"showing you the active users on your database. Click on **Manage Users.**"
|
||||
msgstr ""
|
||||
"في مثيل أودو الخاص بك،قم بالضغط على **الإعدادات**. سيكون لديك قسم يُظهِر "
|
||||
"المستخدمين النشطين في قاعدة بياناتك. اضغط على **إدارة المستخدمين.** "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:42
|
||||
#: ../../content/applications/settings/users_and_features.rst:79
|
||||
msgid "|settings|"
|
||||
msgstr "|settings|"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:42
|
||||
msgid "|browse_users|"
|
||||
msgstr "|browse_users|"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:45
|
||||
msgid "You'll then see the list of your users."
|
||||
msgstr "سترى عندها قائمة بمستخدميك. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:50
|
||||
msgid ""
|
||||
"The pre-selected filter *Internal Users* shows your paying users (different "
|
||||
"from the *Portal Users* which are free). If you remove this filter, you'll "
|
||||
"get all your users (the ones you pay for and the portal ones)"
|
||||
msgstr ""
|
||||
"يُظهر فلتر *المستخدمين الداخليين* المحدد مسبقًا المستخدمين المدفوعين "
|
||||
"(يختلفون عن *مستخدمي البوابة* المجانيين). إذا قمت بإزالة هذا الفلتر، فستحصل "
|
||||
"على كافة المستخدمين (المستخدمين المدفوعين ومستخدمي البوابة) "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:55
|
||||
msgid ""
|
||||
"In your list of users, click on the user you want to deactivate. As soon as "
|
||||
"you are on the userform, click on the Action drop down menu, and then click "
|
||||
"on Archive."
|
||||
msgstr ""
|
||||
"في قائمة المستخدمين الخاصة بك،قم بالضغط على المستخدم الذي ترغب في تعطيله. "
|
||||
"بمجرد دخولك إلى استمارة المستخدم، قم بالضغط على القائمة المنسدلة \"إجراء\"،"
|
||||
" ثم اضغط على \"أرشفة\". "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:63
|
||||
msgid "The user is now deactivated."
|
||||
msgstr "تم تعطيل المستخدم. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:65
|
||||
msgid "**Never** deactivate the main user (*admin*)"
|
||||
msgstr "لا تقم **مطلقًا** بتعطيل المستخدم الرئيسي (*admin*) "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:68
|
||||
msgid "Uninstalling Apps"
|
||||
msgstr "إلغاء تثبيت التطبيقات "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:70
|
||||
msgid ""
|
||||
"Make sure you first test what you are about to do on a :ref:`duplicate "
|
||||
"<duplicate_online>` of your database before making any changes (*especially*"
|
||||
" installing/uninstalling apps)."
|
||||
msgstr ""
|
||||
"تأكد أولاً من اختبار ما أنت على وشك القيام به على :ref:`نسخة مطابقة لقاعدة "
|
||||
"البيانات <duplicate_online>` قبل إجراء أي تغييرات (*خاصة* تثبيت/إلغاء تثبيت "
|
||||
"التطبيقات). "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:74
|
||||
msgid ""
|
||||
"In your Odoo instance click on **Settings**; in this app, you will be able "
|
||||
"to see how many applications you have installed. Click on **Browse Apps** to"
|
||||
" access the list of your installed applications."
|
||||
msgstr ""
|
||||
"في مثيل أودو الخاص بك، قم بالضغط على **الإعدادات**؛ ستتمكن في هذا التطبيق من"
|
||||
" معرفة عدد التطبيقات التي قمت بتثبيتها. اضغط على **تصفح التطبيقات** للوصول "
|
||||
"إلى قائمة التطبيقات المثبتة لديك. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:79
|
||||
msgid "|browse_apps|"
|
||||
msgstr "|browse_apps|"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:82
|
||||
msgid ""
|
||||
"In your applications' dashboard, you will see all the icons of your "
|
||||
"applications. Click on the application you want to uninstall. Then, on the "
|
||||
"form of the application, click on **Uninstall**."
|
||||
msgstr ""
|
||||
"في لوحة بيانات تطبيقاتك، سترى كافة أيقونات تطبيقاتك. قم بالضغط على التطبيق "
|
||||
"الذي ترغب في إلغاء تثبيته، ثم اضفط على **إلغاء التثبيت** في استمارة التطبيق."
|
||||
" "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:89
|
||||
msgid ""
|
||||
"Some applications have dependencies, like Invoicing, eCommerce, etc. "
|
||||
"Therefore, the system will give you a warning message to advise you of what "
|
||||
"is about to be removed. If you uninstall your application, all its "
|
||||
"dependencies will be uninstalled as well (and the data in them will "
|
||||
"permanently disappear). If you are sure you still want to uninstall it, then"
|
||||
" click **Confirm**."
|
||||
msgstr ""
|
||||
"تحتوي بعض التطبيقات على تطبيقات معتمدة عليها، مثل الفوترة والمتجر الإلكتروني"
|
||||
" وما إلى ذلك. لذلك، سيعرض النظام رسالة تحذيرية لإعلامك بما هو على وشك أن تتم"
|
||||
" إزالته. إذا قمت بإلغاء تثبيت تطبيقك، فسيتم إلغاء تثبيت كافة التطبيقات "
|
||||
"المعتمدة عليه أيضاً (وستختفي البيانات الموجودة فيه نهائياً). إذا كنت متأكداً"
|
||||
" من أنك لا تزال ترغب في إلغاء تثبيته، فانقر فوق **تأكيد**. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:96
|
||||
msgid ""
|
||||
"Last, after having checked the warning message (if any), click **Confirm**."
|
||||
msgstr ""
|
||||
"أخيراً، بعد التحقق من رسالة التحذير (إن وجدت)، اضغط على زر **تأكيد**. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:101
|
||||
msgid "You have finished uninstalling your application."
|
||||
msgstr "لقد انتهيت من إلغاء تثبيت تطبيقك. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:104
|
||||
msgid "Good to know"
|
||||
msgstr "من الجيد معرفته "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:106
|
||||
msgid ""
|
||||
"**Uninstalling apps, managing users, etc. is up to you**: no one else can "
|
||||
"know if your business flow is broken better than you. If we were to "
|
||||
"uninstall applications for you, we would never be able to tell if relevant "
|
||||
"data had been removed or if one of your business flow was broken because we "
|
||||
"*do not know how you work* and therefore cannot validate these kinds of "
|
||||
"operations."
|
||||
msgstr ""
|
||||
"**إلغاء تثبيت التطبيقات وإدارة المستخدمين وما إلى ذلك يعود إليك**:أنت أدرى "
|
||||
"من أي شخص آخر إذا كان سير عملك معطلاً أم لا. إذا أردنا إلغاء تثبيت التطبيقات"
|
||||
" بالنيابة عنك، فلن نتمكن أبداً من معرفة ما إذا كانت البيانات ذات الصلة قد "
|
||||
"تمت إزالتها أو ما إذا كانت إحدى عملياتك معطلة لأننا *لا نعرف تفاصيل عملك* "
|
||||
"وبالتالي لا يمكننا التحقق من صحة هذا النوع من العمليات. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:112
|
||||
msgid ""
|
||||
"**Odoo Apps have dependencies**: this means that you may need to install "
|
||||
"modules that you do not actively use to access some features of Odoo you "
|
||||
"might need. For example, the Website Builder app is needed to be able to "
|
||||
"show your customer their Quotes in a web page. Even though you might not "
|
||||
"need or use the Website itself, it is needed for the Online Quotes feature "
|
||||
"to work properly."
|
||||
msgstr ""
|
||||
"*لدى تطبيقات أودو تطبيقات تابعة معتمدة عليها**: هذا يعني أنك قد تحتاج إلى "
|
||||
"تثبيت تطبيقات لا تستخدمها بشكل نشط حتى تتمكن من استخدام بعض خصائص نظام أودو "
|
||||
"التي قد تحتاج إليها. على سبيل المثال، تحتاج إلى تثبيت تطبيق بناء المواقع "
|
||||
"الإلكترونية حتى يتمكن عملاؤك من رؤية عروض أسعارهم في صفحة ويب. على الرغم من "
|
||||
"أنك قد لا تحتاج إلى استخدام الموقع الإلكتروني نفسه، إلا أنه ضروري لعمل خاصية"
|
||||
" عروض الأسعار عبر الإنترنت بشكل صحيح. "
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:119
|
||||
msgid ""
|
||||
"**Always test app installation/removal on a duplicate** (or on a free trial "
|
||||
"database): that way you can know what other apps may be required, etc. This "
|
||||
"will avoid surprises when uninstalling or when receiving your invoices."
|
||||
msgstr ""
|
||||
"**اختبر دائماً عملية تثبيت/إزالة التطبيقات على نسخة مطابقة من قاعدة "
|
||||
"البيانات** (أو على قاعدة بيانات تجريبية مجانية): بهذه الطريقة يمكنك معرفة "
|
||||
"التطبيقات الأخرى التي قد تحتاج إليها، وما إلى ذلك. سيؤدي ذلك إلى تجنب حدوث "
|
||||
"أي شيء غير متوقع عند إلغاء تثبيت التطبيق أو عند استلام فواتيرك. "
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,22 +1,31 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2015-TODAY, Odoo S.A.
|
||||
# Copyright (C) Odoo S.A.
|
||||
# This file is distributed under the same license as the Odoo package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Larissa Manderfeld, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 14.0\n"
|
||||
"Project-Id-Version: Odoo 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-04 11:02+0100\n"
|
||||
"PO-Revision-Date: 2020-09-22 14:40+0000\n"
|
||||
"Language-Team: German (https://www.transifex.com/odoo/teams/41243/de/)\n"
|
||||
"POT-Creation-Date: 2023-11-08 08:46+0000\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Larissa Manderfeld, 2024\n"
|
||||
"Language-Team: German (https://app.transifex.com/odoo/teams/41243/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../../applications.rst:3
|
||||
msgid "Applications"
|
||||
#: ../../content/applications.rst:9
|
||||
msgid "User Docs"
|
||||
msgstr "Benutzerdokumente"
|
||||
|
||||
#: ../../content/applications.rst:11
|
||||
msgid "Discover our user guides and configuration tutorials per application."
|
||||
msgstr ""
|
||||
"Entdecken Sie unsere Benutzerleitfäden und Konfigurationstutorials pro App."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+63223
-17621
File diff suppressed because it is too large
Load Diff
+15304
-3054
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -3,20 +3,24 @@
|
||||
# This file is distributed under the same license as the Odoo package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Larissa Manderfeld, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 14.0\n"
|
||||
"Project-Id-Version: Odoo 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-18 07:12+0200\n"
|
||||
"PO-Revision-Date: 2020-09-22 14:40+0000\n"
|
||||
"Language-Team: German (https://www.transifex.com/odoo/teams/41243/de/)\n"
|
||||
"POT-Creation-Date: 2023-11-08 08:46+0000\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Larissa Manderfeld, 2024\n"
|
||||
"Language-Team: German (https://app.transifex.com/odoo/teams/41243/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../../content/index.rst:3
|
||||
#: ../../content/index.rst:5
|
||||
msgid "Odoo Documentation"
|
||||
msgstr ""
|
||||
msgstr "Odoo Dokumentation"
|
||||
|
||||
+55336
-5158
File diff suppressed because it is too large
Load Diff
+19278
-326
File diff suppressed because it is too large
Load Diff
+25500
-1740
File diff suppressed because it is too large
Load Diff
+34163
-4327
File diff suppressed because it is too large
Load Diff
+8661
-1325
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,8 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Martin Trigaux, 2021
|
||||
# Wil Odoo, 2024
|
||||
# Larissa Manderfeld, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@@ -12,9 +13,9 @@ msgstr ""
|
||||
"Project-Id-Version: Odoo 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-18 07:12+0200\n"
|
||||
"PO-Revision-Date: 2021-05-18 05:18+0000\n"
|
||||
"Last-Translator: Martin Trigaux, 2021\n"
|
||||
"Language-Team: German (https://www.transifex.com/odoo/teams/41243/de/)\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Larissa Manderfeld, 2024\n"
|
||||
"Language-Team: German (https://app.transifex.com/odoo/teams/41243/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -27,7 +28,7 @@ msgstr "Einstellungen"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:6
|
||||
msgid "Users and Features"
|
||||
msgstr ""
|
||||
msgstr "Benutzer und Funktionen"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:8
|
||||
msgid ""
|
||||
@@ -35,6 +36,9 @@ msgid ""
|
||||
"This includes the Apps you install as well as the number of users currently "
|
||||
"in use."
|
||||
msgstr ""
|
||||
"Als Administrator Ihrer Datenbank sind Sie für deren Nutzung verantwortlich."
|
||||
" Dies betrifft sowohl die Apps, die Sie installieren als auch die Anzahl der"
|
||||
" derzeit aktiven Benutzer."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:12
|
||||
msgid ""
|
||||
@@ -44,6 +48,12 @@ msgid ""
|
||||
"subscription amount significantly (or switch you from a free account to a "
|
||||
"paying one on our online platform)."
|
||||
msgstr ""
|
||||
"Odoo ist vieles (ERP, CMS, CRM-App, E-Commerce-Backend usw.), aber es ist "
|
||||
"*kein* Smartphone. Sie sollten beim Hinzufügen/Entfernen von Funktionen "
|
||||
"(insbesondere Apps) in Ihrer Datenbank vorsichtig sein, da sich dies "
|
||||
"erheblich auf Ihren Abonnementbetrag auswirken kann (oder Sie von einem "
|
||||
"kostenlosen Konto zu einem kostenpflichtigen Konto auf unserer Online-"
|
||||
"Plattform wechseln)."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:18
|
||||
msgid ""
|
||||
@@ -52,6 +62,11 @@ msgid ""
|
||||
"to test them on a duplicate of your database first. That way, if something "
|
||||
"goes wrong, your day-to-day business is not impacted."
|
||||
msgstr ""
|
||||
"Diese Seite enthält einige Informationen darüber, wie Sie Ihre Odoo-"
|
||||
"Instanzen verwalten können. Bevor Sie eine dieser Prozeduren durchführen, "
|
||||
"raten wir Ihnen **stark**, sie zunächst an einem Duplikat Ihrer Datenbank zu"
|
||||
" testen. Auf diese Weise wird Ihr Tagesgeschäft nicht beeinträchtigt, wenn "
|
||||
"etwas schief geht."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:23
|
||||
msgid ""
|
||||
@@ -59,6 +74,9 @@ msgid ""
|
||||
" <duplicate_online>` and :ref:`on premise <duplicate_premise>` "
|
||||
"installations."
|
||||
msgstr ""
|
||||
"Sie finden Anleitungen zum Duplizieren Ihrer Datenbanken sowohl für "
|
||||
"Installationen auf :ref:`online <duplicate_online>` als auch auf :ref:`on "
|
||||
"premise <duplicate_premise>`."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:27
|
||||
msgid ""
|
||||
@@ -66,35 +84,43 @@ msgid ""
|
||||
"issue while carrying out these procedures, please contact us through our "
|
||||
"`support form <https://www.odoo.com/help>`__."
|
||||
msgstr ""
|
||||
"Wenn Sie Fragen zum Inhalt dieser Seite haben oder bei der Durchführung "
|
||||
"dieser Verfahren auf ein Problem stoßen, wenden Sie sich bitte über unser "
|
||||
"`Support-Formular <https://www.odoo.com/help>`__ an uns."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:33
|
||||
msgid "Deactivating Users"
|
||||
msgstr ""
|
||||
msgstr "Benutzer deaktivieren"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:35
|
||||
msgid ""
|
||||
"Make sure you have sufficient **administrative rights** if you want to "
|
||||
"change the status of any of your users."
|
||||
msgstr ""
|
||||
"Vergewissern Sie sich, dass Sie über ausreichende **Administrationsrechte** "
|
||||
"verfügen, wenn Sie den Status eines Ihrer Benutzer ändern möchten."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:38
|
||||
msgid ""
|
||||
"In your Odoo instance, click on **Settings**. You will have a section "
|
||||
"showing you the active users on your database. Click on **Manage Users.**"
|
||||
msgstr ""
|
||||
"Klicken Sie in Ihrer Odoo-Instanz auf **Einstellungen**. Sie erhalten einen "
|
||||
"Bereich, in dem Sie die aktiven Benutzer Ihrer Datenbank sehen. Klicken Sie "
|
||||
"auf **Benutzer verwalten**."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:42
|
||||
#: ../../content/applications/settings/users_and_features.rst:79
|
||||
msgid "|settings|"
|
||||
msgstr ""
|
||||
msgstr "|settings|"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:42
|
||||
msgid "|browse_users|"
|
||||
msgstr ""
|
||||
msgstr "|browse_users|"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:45
|
||||
msgid "You'll then see the list of your users."
|
||||
msgstr ""
|
||||
msgstr "Sie sehen dann die Liste Ihrer Benutzer."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:50
|
||||
msgid ""
|
||||
@@ -102,6 +128,10 @@ msgid ""
|
||||
"from the *Portal Users* which are free). If you remove this filter, you'll "
|
||||
"get all your users (the ones you pay for and the portal ones)"
|
||||
msgstr ""
|
||||
"Der voreingestellte Filter *Interne Benutzer* zeigt Ihre zahlenden Benutzer "
|
||||
"an (im Gegensatz zu den *Portalbenutzern*, die kostenlos sind). Wenn Sie "
|
||||
"diesen Filter entfernen, erhalten Sie alle Ihre Benutzer (die, für die Sie "
|
||||
"zahlen, und die Portalbenutzer)."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:55
|
||||
msgid ""
|
||||
@@ -109,18 +139,21 @@ msgid ""
|
||||
"you are on the userform, click on the Action drop down menu, and then click "
|
||||
"on Archive."
|
||||
msgstr ""
|
||||
"Klicken Sie in Ihrer Benutzerliste auf den Benutzer, den Sie deaktivieren "
|
||||
"möchten. Sobald Sie sich auf dem Benutzerformular befinden, klicken Sie auf "
|
||||
"das Drop-down-Menü „Aktion“ und dann auf „Archivieren“."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:63
|
||||
msgid "The user is now deactivated."
|
||||
msgstr ""
|
||||
msgstr "Der Benutzer ist nun deaktiviert."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:65
|
||||
msgid "**Never** deactivate the main user (*admin*)"
|
||||
msgstr ""
|
||||
msgstr "Deaktivieren Sie **niemals** den Hauptbenutzer (*Admin*)."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:68
|
||||
msgid "Uninstalling Apps"
|
||||
msgstr ""
|
||||
msgstr "Apps deinstallieren"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:70
|
||||
msgid ""
|
||||
@@ -128,6 +161,9 @@ msgid ""
|
||||
"<duplicate_online>` of your database before making any changes (*especially*"
|
||||
" installing/uninstalling apps)."
|
||||
msgstr ""
|
||||
"Testen Sie Ihre Aktionen zuerst in einem :ref:`Duplikat <duplicate_online>` "
|
||||
"Ihrer Datenbank, bevor Sie irgendwelche Änderungen vornehmen (*insbesondere*"
|
||||
" die Installation/Deinstallation von Apps)."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:74
|
||||
msgid ""
|
||||
@@ -135,10 +171,13 @@ msgid ""
|
||||
"to see how many applications you have installed. Click on **Browse Apps** to"
|
||||
" access the list of your installed applications."
|
||||
msgstr ""
|
||||
"Klicken Sie in Ihrer Odoo-Instanz auf **Einstellungen**; in dieser App "
|
||||
"können Sie sehen, wie viele Apps Sie installiert haben. Klicken Sie auf "
|
||||
"**Apps durchsuchen**, um die Liste Ihrer installierten Apps aufzurufen."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:79
|
||||
msgid "|browse_apps|"
|
||||
msgstr ""
|
||||
msgstr "|browse_apps|"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:82
|
||||
msgid ""
|
||||
@@ -146,6 +185,9 @@ msgid ""
|
||||
"applications. Click on the application you want to uninstall. Then, on the "
|
||||
"form of the application, click on **Uninstall**."
|
||||
msgstr ""
|
||||
"Im Dashboard Ihrer Apps sehen Sie alle Symbole Ihrer Apps. Klicken Sie auf "
|
||||
"die App, die Sie deinstallieren möchten. Klicken Sie dann auf dem Formular "
|
||||
"der App auf **Deinstallieren**."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:89
|
||||
msgid ""
|
||||
@@ -156,19 +198,27 @@ msgid ""
|
||||
"permanently disappear). If you are sure you still want to uninstall it, then"
|
||||
" click **Confirm**."
|
||||
msgstr ""
|
||||
"Einige Apps haben Abhängigkeiten, wie z. B. Rechnungsstellung, E-Commerce "
|
||||
"usw. Daher gibt das System eine Warnmeldung aus, um Sie darüber zu "
|
||||
"informieren, was entfernt werden soll. Wenn Sie Ihre App deinstallieren, "
|
||||
"werden auch alle ihre Abhängigkeiten deinstalliert (und die darin "
|
||||
"enthaltenen Daten verschwinden dauerhaft). Wenn Sie sicher sind, dass Sie "
|
||||
"die App weiterhin deinstallieren möchten, klicken Sie auf **Bestätigen**."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:96
|
||||
msgid ""
|
||||
"Last, after having checked the warning message (if any), click **Confirm**."
|
||||
msgstr ""
|
||||
"Klicken Sie zuletzt, nachdem Sie die Warnmeldung (falls vorhanden) überprüft"
|
||||
" haben, auf **Bestätigen**."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:101
|
||||
msgid "You have finished uninstalling your application."
|
||||
msgstr ""
|
||||
msgstr "Sie haben die Deinstallation Ihrer App abgeschlossen."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:104
|
||||
msgid "Good to know"
|
||||
msgstr ""
|
||||
msgstr "Gut zu wissen"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:106
|
||||
msgid ""
|
||||
@@ -179,6 +229,12 @@ msgid ""
|
||||
"*do not know how you work* and therefore cannot validate these kinds of "
|
||||
"operations."
|
||||
msgstr ""
|
||||
"**Die Deinstallation von Apps, die Verwaltung von Benutzern usw. liegt bei "
|
||||
"Ihnen**: Niemand sonst kann besser als Sie wissen, ob Ihr Geschäftsablauf "
|
||||
"zerstört wird. Wenn wir Apps für Sie deinstallieren würden, könnten wir nie "
|
||||
"feststellen, ob relevante Daten entfernt wurden oder ob einer Ihrer "
|
||||
"Geschäftsabläufe zerstört wurde, weil wir *nicht wissen, wie Sie arbeiten* "
|
||||
"und daher diese Art von Vorgängen nicht überprüfen können."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:112
|
||||
msgid ""
|
||||
@@ -189,6 +245,13 @@ msgid ""
|
||||
"need or use the Website itself, it is needed for the Online Quotes feature "
|
||||
"to work properly."
|
||||
msgstr ""
|
||||
"**Odoo Apps haben Abhängigkeiten**: Das bedeutet, dass Sie möglicherweise "
|
||||
"Module installieren müssen, die Sie nicht aktiv nutzen, um auf einige "
|
||||
"Funktionen von Odoo zuzugreifen, die Sie benötigen. Der Website-Builder wird"
|
||||
" beispielsweise benötigt, damit Ihre Kunden ihre Angebote auf einer Webseite"
|
||||
" ansehen können. Auch wenn Sie die Website selbst nicht benötigen oder "
|
||||
"verwenden, wird sie benötigt, damit die Funktion „Online-Angebote“ richtig "
|
||||
"funktioniert."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:119
|
||||
msgid ""
|
||||
@@ -196,3 +259,8 @@ msgid ""
|
||||
"database): that way you can know what other apps may be required, etc. This "
|
||||
"will avoid surprises when uninstalling or when receiving your invoices."
|
||||
msgstr ""
|
||||
"**Testen Sie die Installation/Deinstallation einer App immer in einem "
|
||||
"Duplikat** (oder in einer kostenlosen Testdatenbank): So können Sie "
|
||||
"beispielsweise feststellen, welche anderen Apps möglicherweise erforderlich "
|
||||
"sind. So vermeiden Sie Überraschungen bei der Deinstallation oder beim "
|
||||
"Erhalt Ihrer Rechnungen."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+14086
-2530
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,26 +1,33 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2015-TODAY, Odoo S.A.
|
||||
# Copyright (C) Odoo S.A.
|
||||
# This file is distributed under the same license as the Odoo package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Jose Alejandro Echeverri Valencia <josealejandroeche@gmail.com>, 2020
|
||||
# Braulio D. López Vázquez <bdl@odoo.com>, 2024
|
||||
# Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 14.0\n"
|
||||
"Project-Id-Version: Odoo 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-04 11:02+0100\n"
|
||||
"PO-Revision-Date: 2020-09-22 14:40+0000\n"
|
||||
"Last-Translator: Jose Alejandro Echeverri Valencia <josealejandroeche@gmail.com>, 2020\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"POT-Creation-Date: 2023-11-08 08:46+0000\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2024\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: ../../applications.rst:3
|
||||
msgid "Applications"
|
||||
msgstr "Aplicaciones"
|
||||
#: ../../content/applications.rst:9
|
||||
msgid "User Docs"
|
||||
msgstr "Documentos para el usuario"
|
||||
|
||||
#: ../../content/applications.rst:11
|
||||
msgid "Discover our user guides and configuration tutorials per application."
|
||||
msgstr ""
|
||||
"Descubra nuestras guías de usuario y tutoriales de configuración por "
|
||||
"aplicación."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+59711
-19381
File diff suppressed because it is too large
Load Diff
+16634
-3567
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -4,23 +4,23 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Josep Anton Belchi Riera, 2021
|
||||
# Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 14.0\n"
|
||||
"Project-Id-Version: Odoo 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-18 07:12+0200\n"
|
||||
"PO-Revision-Date: 2020-09-22 14:40+0000\n"
|
||||
"Last-Translator: Josep Anton Belchi Riera, 2021\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"POT-Creation-Date: 2023-11-08 08:46+0000\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2024\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: ../../content/index.rst:3
|
||||
#: ../../content/index.rst:5
|
||||
msgid "Odoo Documentation"
|
||||
msgstr "Documentación Odoo"
|
||||
msgstr "Documentación de Odoo"
|
||||
|
||||
+54773
-6279
File diff suppressed because it is too large
Load Diff
+19113
-323
File diff suppressed because it is too large
Load Diff
+25946
-1844
File diff suppressed because it is too large
Load Diff
+32975
-4640
File diff suppressed because it is too large
Load Diff
+7753
-1144
File diff suppressed because it is too large
Load Diff
@@ -4,11 +4,12 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Martin Trigaux, 2021
|
||||
# Jesús Alan Ramos Rodríguez <alan.ramos@jarsa.com.mx>, 2021
|
||||
# Lina Maria Avendaño Carvajal <lina8823@gmail.com>, 2021
|
||||
# Pablo Rojas <rojaspablo88@gmail.com>, 2021
|
||||
# Josep Anton Belchi Riera, 2021
|
||||
# Wil Odoo, 2024
|
||||
# Lucia Pacheco, 2024
|
||||
# Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2024
|
||||
# Braulio D. López Vázquez <bdl@odoo.com>, 2024
|
||||
# Fernanda Alvarez, 2024
|
||||
# Larissa Manderfeld, 2025
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@@ -16,14 +17,14 @@ msgstr ""
|
||||
"Project-Id-Version: Odoo 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-18 07:12+0200\n"
|
||||
"PO-Revision-Date: 2021-05-18 05:18+0000\n"
|
||||
"Last-Translator: Josep Anton Belchi Riera, 2021\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Larissa Manderfeld, 2025\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: ../../content/applications/settings.rst:3
|
||||
msgid "Settings"
|
||||
@@ -31,7 +32,7 @@ msgstr "Ajustes"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:6
|
||||
msgid "Users and Features"
|
||||
msgstr "Usuarios y Funcionalidades"
|
||||
msgstr "Usuarios y funciones"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:8
|
||||
msgid ""
|
||||
@@ -39,9 +40,9 @@ msgid ""
|
||||
"This includes the Apps you install as well as the number of users currently "
|
||||
"in use."
|
||||
msgstr ""
|
||||
"Como administrador de tu base de datos, tu eres el responsable de su uso. "
|
||||
"Esto incluye las Aplicaciones que instalas así como el número de usuarios "
|
||||
"que se utilizan."
|
||||
"Como administrador de su base de datos, usted es responsable de su uso. Esto"
|
||||
" incluye las aplicaciones que instala así como el número actual de usuarios "
|
||||
"en uso."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:12
|
||||
msgid ""
|
||||
@@ -51,11 +52,12 @@ msgid ""
|
||||
"subscription amount significantly (or switch you from a free account to a "
|
||||
"paying one on our online platform)."
|
||||
msgstr ""
|
||||
"Odoo son muchas cosas (ERP, CMS, aplicación CRM, comercio electrónico, etc.)"
|
||||
" pero *no* un smartphone. Debe tomar precauciones al añadir/eliminar "
|
||||
"características (especialmente Aplicaciones) en tu base de datos debido a "
|
||||
"que esto puede impactar en el monto de la suscripción siginficativamente (o "
|
||||
"cambiarte de una cuenta gratuita a una de paga en plataforma en línea)."
|
||||
"Odoo puede ser muchas cosas (ERP, CMS, una aplicación CRM, backend para "
|
||||
"comercio electrónico, etc.) pero *no* es un teléfono inteligente. Debe tener"
|
||||
" cuidado al añadir o eliminar funciones (en especial aplicaciones) a su base"
|
||||
" de datos, ya que esto puede tener un impacto significativo en el precio de "
|
||||
"su suscripción (o cambiar su cuenta gratuita por una de paga en nuestra "
|
||||
"plataforma en línea)."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:18
|
||||
msgid ""
|
||||
@@ -64,11 +66,10 @@ msgid ""
|
||||
"to test them on a duplicate of your database first. That way, if something "
|
||||
"goes wrong, your day-to-day business is not impacted."
|
||||
msgstr ""
|
||||
"Esta página contiene alguna información sobre como gestionar sus instancias "
|
||||
"Odoo. Antes de llevar a cabo alguno de estos procedimientos recomendamos "
|
||||
"**firmemente** probarlos primero en un duplicado de su base de datos. De "
|
||||
"esta forma, si algo va mal, no tendrá impacto en el día a día de su negocio."
|
||||
" "
|
||||
"Esta página incluye información sobre cómo gestionar sus instancias de Odoo."
|
||||
" Antes de realizar alguno de estos procedimientos, es muy recomendable que "
|
||||
"primero los pruebe en un duplicado de su base de datos. De esta forma, si "
|
||||
"ocurre algún error, no afectará las actividades diarias de su negocio."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:23
|
||||
msgid ""
|
||||
@@ -76,8 +77,8 @@ msgid ""
|
||||
" <duplicate_online>` and :ref:`on premise <duplicate_premise>` "
|
||||
"installations."
|
||||
msgstr ""
|
||||
"Puede encontrar guias sobre como duplicar sus bases de datos tanto para "
|
||||
"instalaciones :ref:`online <duplicate_online>` y :ref:`on premise "
|
||||
"Puede encontrar guías sobre cómo duplicar sus bases de datos en "
|
||||
"instalaciones :ref:`en línea <duplicate_online>` y :ref:`locales "
|
||||
"<duplicate_premise>`."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:27
|
||||
@@ -86,43 +87,42 @@ msgid ""
|
||||
"issue while carrying out these procedures, please contact us through our "
|
||||
"`support form <https://www.odoo.com/help>`__."
|
||||
msgstr ""
|
||||
"Si tienes preguntas sobre el contenido de esta página o si encuentras un "
|
||||
"problema al realizar estos procesos, por favor contactanos por el "
|
||||
"`formulario de soporte <https://www.odoo.com/help>`__."
|
||||
"Si tiene dudas sobre el contenido de esta página o si ocurre algún error al "
|
||||
"realizar estos procedimientos, no dude en contactarnos a través del "
|
||||
"`formulario de soporte <https://www.odoo.com/es_ES/help>`__."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:33
|
||||
msgid "Deactivating Users"
|
||||
msgstr "Desactivar Usuarios"
|
||||
msgstr "Desactivar usuarios"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:35
|
||||
msgid ""
|
||||
"Make sure you have sufficient **administrative rights** if you want to "
|
||||
"change the status of any of your users."
|
||||
msgstr ""
|
||||
"Asegúrese que tiene los suficientes **permisos administrativos** si quieres "
|
||||
"cambiar el estatus de cualquiera de tus usuarios."
|
||||
"Asegúrese de que tiene los **permisos administrativos** necesarios si desea "
|
||||
"cambiar el estado de cualquiera de sus usuarios."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:38
|
||||
msgid ""
|
||||
"In your Odoo instance, click on **Settings**. You will have a section "
|
||||
"showing you the active users on your database. Click on **Manage Users.**"
|
||||
msgstr ""
|
||||
"Haga click en **Ajustes** en su instancia Odoo. Verá un apartado con los "
|
||||
"usuarios activos en su base de datos. Haga click en **Administrar "
|
||||
"usuarios**."
|
||||
"Haga clic en **Ajustes** en su instancia de Odoo. Verá una sección con los "
|
||||
"usuarios activos en su base de datos. Haga clic en **Gestionar usuarios**."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:42
|
||||
#: ../../content/applications/settings/users_and_features.rst:79
|
||||
msgid "|settings|"
|
||||
msgstr "|ajustes|"
|
||||
msgstr "|settings|"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:42
|
||||
msgid "|browse_users|"
|
||||
msgstr "|buscar_usuarios|"
|
||||
msgstr "|browse_users|"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:45
|
||||
msgid "You'll then see the list of your users."
|
||||
msgstr "Luego verá la lista de sus usuarios."
|
||||
msgstr "Verá la lista de sus usuarios."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:50
|
||||
msgid ""
|
||||
@@ -130,10 +130,9 @@ msgid ""
|
||||
"from the *Portal Users* which are free). If you remove this filter, you'll "
|
||||
"get all your users (the ones you pay for and the portal ones)"
|
||||
msgstr ""
|
||||
"El filtro pre-seleccionado *Usuarios Internos* muestra sus usuarios "
|
||||
"pagadores (diferentes del *Portal de Usuarios* los cuales son gratis). Si "
|
||||
"remueve este filtro, obtendrá todos sus usuarios (de los que paga y los del "
|
||||
"portal)"
|
||||
"El filtro preseleccionado *Usuarios internos* muestra sus usuarios de pago "
|
||||
"(a diferencia de los *usuarios del portal* cuyo acceso es gratuito). Si "
|
||||
"elimina este filtro, verá todos los usuarios (los de pago y los del portal)."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:55
|
||||
msgid ""
|
||||
@@ -141,21 +140,21 @@ msgid ""
|
||||
"you are on the userform, click on the Action drop down menu, and then click "
|
||||
"on Archive."
|
||||
msgstr ""
|
||||
"En la lista de usuarios, haga click en el usuario que quiera desactivar. "
|
||||
"Cuando esté en el formulario, haga click en el desplegable Acción y haga "
|
||||
"click en Archivar"
|
||||
"En su lista de usuarios, haga clic en el usuario que desea desactivar. "
|
||||
"Cuando esté en el formulario del usuario, haga clic en el menú desplegable "
|
||||
"de “Acción” y luego en “Archivar”."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:63
|
||||
msgid "The user is now deactivated."
|
||||
msgstr "El usuario ahora esta desactivado."
|
||||
msgstr "El usuario ahora está desactivado."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:65
|
||||
msgid "**Never** deactivate the main user (*admin*)"
|
||||
msgstr "**Nunca** desactive al usuario principal (*admin*)"
|
||||
msgstr "**Nunca** desactive al usuario principal (*admin*)."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:68
|
||||
msgid "Uninstalling Apps"
|
||||
msgstr "Desinstalar Aplicaciones"
|
||||
msgstr "Desinstalar aplicaciones"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:70
|
||||
msgid ""
|
||||
@@ -163,9 +162,9 @@ msgid ""
|
||||
"<duplicate_online>` of your database before making any changes (*especially*"
|
||||
" installing/uninstalling apps)."
|
||||
msgstr ""
|
||||
"Asegúrese de que primero prueba lo que va a hacer en un :ref:`duplicado "
|
||||
"<duplicate_online>` de su base de datos antes de hacer ningún cambio "
|
||||
"(*especialmente* instalar/desinstalar aplicaciones)."
|
||||
"Asegúrese de probar lo que hará en un :ref:`duplicado <duplicate_online>` de"
|
||||
" su base de datos antes de realizar cualquier cambio (*sobre todo* si "
|
||||
"instalará o desinstalará aplicaciones)."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:74
|
||||
msgid ""
|
||||
@@ -173,13 +172,13 @@ msgid ""
|
||||
"to see how many applications you have installed. Click on **Browse Apps** to"
|
||||
" access the list of your installed applications."
|
||||
msgstr ""
|
||||
"En su instancia de Odoo de clic en **Ajustes**; en esta aplicación, podrá "
|
||||
"ver cuántas aplicaciones ha instalado. De clic en **Buscar Aplicaciones** "
|
||||
"Haga clic en **Ajustes** en su instancia de Odoo. En esta aplicación podrá "
|
||||
"ver cuántas aplicaciones ha instalado, haga clic en **Buscar aplicaciones** "
|
||||
"para acceder a la lista de sus aplicaciones instaladas."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:79
|
||||
msgid "|browse_apps|"
|
||||
msgstr "|buscar_aplicaciones|"
|
||||
msgstr "|browse_apps|"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:82
|
||||
msgid ""
|
||||
@@ -187,9 +186,9 @@ msgid ""
|
||||
"applications. Click on the application you want to uninstall. Then, on the "
|
||||
"form of the application, click on **Uninstall**."
|
||||
msgstr ""
|
||||
"En su tablero de aplicaciones, verá todos los ícones de sus aplicaciones. De"
|
||||
" clic en la aplicación que quiere desinstalar. Luego, en el formulario de la"
|
||||
" aplicación, de clic en **Desinstalar**."
|
||||
"Verá todos los iconos de sus aplicaciones en el tablero correspondiente. "
|
||||
"Haga clic en la aplicación que desea desinstalar y luego, en el formulario "
|
||||
"de la aplicación, haga clic en **Desinstalar**."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:89
|
||||
msgid ""
|
||||
@@ -200,27 +199,27 @@ msgid ""
|
||||
"permanently disappear). If you are sure you still want to uninstall it, then"
|
||||
" click **Confirm**."
|
||||
msgstr ""
|
||||
"Algunas aplicaciones tienen dependencias, como facturación, comercio "
|
||||
"electrónico, etc. Por lo tanto, el sistema le dará un mensaje de alerta para"
|
||||
" advertirle de lo que esta a punto de ser removido. Si desinstala su "
|
||||
"aplicación, todas sus dependencias también serán desinstaladas (y la "
|
||||
"información en ellas desaparecerá permanentemente). Si esta seguro que igual"
|
||||
" quiere desinstalarla, de clic en **Confirmar**."
|
||||
"Algunas aplicaciones tienen dependencias, como Facturación, Comercio "
|
||||
"electrónico, etc. Por lo tanto, el sistema enviará un mensaje de alerta para"
|
||||
" advertirle lo que esta a punto de eliminar. Si desinstala una aplicación, "
|
||||
"también desinstalará todas sus dependencias (y la información en ellas "
|
||||
"desaparecerá permanentemente). Si aún así está seguro de querer "
|
||||
"desinstalarla, haga clic en **Confirmar**."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:96
|
||||
msgid ""
|
||||
"Last, after having checked the warning message (if any), click **Confirm**."
|
||||
msgstr ""
|
||||
"Por último, después de haber revisado el mensaje de alerta (si hay), de clic"
|
||||
" en **Confirmar**"
|
||||
"Por último, después de haber revisado el mensaje de alerta (si hay), haga "
|
||||
"clic en **Confirmar**."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:101
|
||||
msgid "You have finished uninstalling your application."
|
||||
msgstr "Ha terminado de desinstalar su aplicación."
|
||||
msgstr "Ha terminado de desinstalar la aplicación."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:104
|
||||
msgid "Good to know"
|
||||
msgstr "Bueno saber"
|
||||
msgstr "Información importante"
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:106
|
||||
msgid ""
|
||||
@@ -231,12 +230,12 @@ msgid ""
|
||||
"*do not know how you work* and therefore cannot validate these kinds of "
|
||||
"operations."
|
||||
msgstr ""
|
||||
"**Desinstalar aplicaciones, administrar usuarios, etc. es su decisión**: "
|
||||
"nadie mejor que Ud. puede saber si el flujo de su negocio esta roto. Si "
|
||||
"nosotros desinstalaramos aplicaciones por Ud, nunca podríamos decir si "
|
||||
"información importante ha sido removida o si uno de los flujos de su negocio"
|
||||
" se rompió porque nosotros *no sabemos como Ud. trabaja* y por lo tanto, no "
|
||||
"podemos validar estos tipos de operaciones."
|
||||
"**Desinstalar aplicaciones, gestionar usuarios, etc. es su decisión**: solo "
|
||||
"usted puede saber si hay un problema en un flujo de su negocio. Si nosotros "
|
||||
"desinstaláramos aplicaciones por usted, no podríamos saber si eliminamos "
|
||||
"información importante o si hay un problema en uno de los flujos de su "
|
||||
"negocio, pues nosotros *no sabemos como trabaja* y no podemos validar estas "
|
||||
"operaciones."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:112
|
||||
msgid ""
|
||||
@@ -247,13 +246,13 @@ msgid ""
|
||||
"need or use the Website itself, it is needed for the Online Quotes feature "
|
||||
"to work properly."
|
||||
msgstr ""
|
||||
"**Las aplicaciones de Odoo tienen dependencias**: esto significa que puede "
|
||||
"necesitar instalar módulos que no usa activamente para acceder a algunas "
|
||||
"funciones de Odoo que podría necesitar. Por ejemplo, se requiere de la "
|
||||
"aplicación Constructor de Página Web para poder mostrar a su cliente sus "
|
||||
"Cotizaciones en una página web. Aún así podría no necesitar o usar la Página"
|
||||
" Web en si misma, si es necesaria para la función de Cotizaciones En Línea "
|
||||
"para trabajar apropiadamente."
|
||||
"**Las aplicaciones de Odoo tienen dependencias**: esto significa que es "
|
||||
"posible que deba instalar módulos que no usa mucho para acceder a algunas "
|
||||
"funciones de Odoo que podría necesitar. Por ejemplo, necesita la aplicación "
|
||||
"Creador de sitios web para que sus clientes puedan visualizar sus "
|
||||
"presupuestos en un sitio web. Aunque no necesite ni utilice el sitio web en "
|
||||
"sí, es necesario para que la función de presupuestos en línea funcione "
|
||||
"correctamente."
|
||||
|
||||
#: ../../content/applications/settings/users_and_features.rst:119
|
||||
msgid ""
|
||||
@@ -261,7 +260,7 @@ msgid ""
|
||||
"database): that way you can know what other apps may be required, etc. This "
|
||||
"will avoid surprises when uninstalling or when receiving your invoices."
|
||||
msgstr ""
|
||||
"**Siempre pruebe la instalación/eliminación de aplicaciones en un "
|
||||
"duplicado** (o en una base de datos de prueba gratis): de esta forma puede "
|
||||
"saber que otras aplicaciones pueden ser requeridas, etc. Esto evitará "
|
||||
"sorpresas cuando desinstale o cuando reciba sus facturas."
|
||||
"**Siempre pruebe la instalación o eliminación de una aplicación en un "
|
||||
"duplicado** o en una base de datos de prueba gratuita, así sabrá qué otras "
|
||||
"aplicaciones son necesarias y evitará sorpresas desagradables al "
|
||||
"desinstalarlas o al recibir sus facturas."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+13556
-2858
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -4,8 +4,7 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2023
|
||||
# Braulio D. López Vázquez <bdl@odoo.com>, 2023
|
||||
# Wil Odoo, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@@ -13,9 +12,9 @@ msgstr ""
|
||||
"Project-Id-Version: Odoo 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-08 08:46+0000\n"
|
||||
"PO-Revision-Date: 2023-11-08 08:57+0000\n"
|
||||
"Last-Translator: Braulio D. López Vázquez <bdl@odoo.com>, 2023\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Wil Odoo, 2024\n"
|
||||
"Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+16532
-8849
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+2104
-722
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,7 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2023
|
||||
# Wil Odoo, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@@ -12,9 +12,9 @@ msgstr ""
|
||||
"Project-Id-Version: Odoo 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-08 08:46+0000\n"
|
||||
"PO-Revision-Date: 2023-11-08 08:57+0000\n"
|
||||
"Last-Translator: Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2023\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Wil Odoo, 2024\n"
|
||||
"Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+2372
-975
File diff suppressed because it is too large
Load Diff
+1886
-1266
File diff suppressed because it is too large
Load Diff
@@ -4,10 +4,7 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2023
|
||||
# Braulio D. López Vázquez <bdl@odoo.com>, 2023
|
||||
# Lucia Pacheco, 2023
|
||||
# Fernanda Alvarez, 2023
|
||||
# Wil Odoo, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@@ -15,9 +12,9 @@ msgstr ""
|
||||
"Project-Id-Version: Odoo 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-18 07:12+0200\n"
|
||||
"PO-Revision-Date: 2023-11-08 08:57+0000\n"
|
||||
"Last-Translator: Fernanda Alvarez, 2023\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Wil Odoo, 2024\n"
|
||||
"Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
+194
-161
@@ -4,22 +4,19 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Iran Villalobos López, 2024
|
||||
# Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2024
|
||||
# Lucia Pacheco, 2024
|
||||
# Braulio D. López Vázquez <bdl@odoo.com>, 2024
|
||||
# Wil Odoo, 2024
|
||||
# Fernanda Alvarez, 2024
|
||||
# Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2024
|
||||
# Fernanda Alvarez, 2025
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 18.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-10-07 14:21+0000\n"
|
||||
"POT-Creation-Date: 2024-11-05 09:20+0000\n"
|
||||
"PO-Revision-Date: 2024-10-08 06:34+0000\n"
|
||||
"Last-Translator: Fernanda Alvarez, 2024\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
|
||||
"Last-Translator: Fernanda Alvarez, 2025\n"
|
||||
"Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -98,21 +95,19 @@ msgstr "Reglas de aprobación"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:5
|
||||
msgid ""
|
||||
"Studio 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."
|
||||
"Studio approval rules allow you to require the approval of one or several "
|
||||
"users before an action can be performed using a button."
|
||||
msgstr ""
|
||||
"Las reglas de aprobación de Studio se usan para automatizar el proceso de "
|
||||
"aprobación para acciones. Le permiten definir criterios para cuando sea "
|
||||
"necesario antes de que se pueda realizar una acción con un botón."
|
||||
"Con las reglas de aprobación de Studio podrá solicitar la aprobación de uno "
|
||||
"o más usuarios antes de que una accoión se realice con tan solo un botón."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:9
|
||||
msgid "Configuration"
|
||||
msgstr "Configuración"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:11
|
||||
msgid "To add approval rules, proceed as follows:"
|
||||
msgstr "Para agregar reglas de aprobación, siga lo siguiente:"
|
||||
msgid "To add an approval rule:"
|
||||
msgstr "Para agregar una regla de aprobación:"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:13
|
||||
msgid ""
|
||||
@@ -123,199 +118,234 @@ msgstr ""
|
||||
"requerida."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:14
|
||||
msgid "Select the button for which you want to add approval rules."
|
||||
msgstr "Seleccione el botón para el que quiere agregar reglas de aprobación."
|
||||
msgid "Select the button to which the rule should be applied."
|
||||
msgstr "Seleccione el botón de la regla a la que se debe aplicar."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:15
|
||||
msgid ""
|
||||
"In the :guilabel:`Properties` tab on the left, enable the :guilabel:`Set "
|
||||
"approval rules` feature."
|
||||
"Click :icon:`fa-plus` :guilabel:`Add an approval step` in the :icon:`fa-"
|
||||
"server` :guilabel:`Properties` tab."
|
||||
msgstr ""
|
||||
"En la pestaña :guilabel:`Propiedades` a la izquierda, active la función "
|
||||
":guilabel:`Establecer reglas de aprobación`."
|
||||
"Haga clic en :guilabel:`Agregar un paso de aprobación` en la pestaña "
|
||||
":icon:`fa-server` :guilabel:`Propiedades`."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:17
|
||||
msgid ""
|
||||
"Specify the :guilabel:`Allowed Group` to limit the approval permission to a "
|
||||
"specific user group."
|
||||
"Specify which users are responsible for approving the action by using one of"
|
||||
" the following fields or both:"
|
||||
msgstr ""
|
||||
"Especifique el :guilabel:`Grupo permitido` para limitar el permiso de "
|
||||
"aprobación a un grupo de usuarios específico."
|
||||
"Especifique qué usuarios son responsables de la aprobación con uno o dos de "
|
||||
"los siguientes campos:"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:19
|
||||
msgid ""
|
||||
"Select the :guilabel:`Responsible` user to create an activity for a specific"
|
||||
" user when approval is requested from them."
|
||||
msgstr ""
|
||||
"Seleccione al usuario :guilabel:`Responsable` de crear una actividad para un"
|
||||
" usuario específico una vez que se le solicite una aprobación."
|
||||
#: ../../content/applications/studio/approval_rules.rst:20
|
||||
msgid ":guilabel:`Approvers` to specify one or several users;"
|
||||
msgstr ":guilabel:`Aprobadores` para especificar a uno o varios usuarios."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:21
|
||||
msgid "Select the :guilabel:`Users to notify` via internal note."
|
||||
msgstr ""
|
||||
"Seleccione los :guilabel:`Usuarios por notificar` con una nota interna."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:22
|
||||
msgid ""
|
||||
"Add a :guilabel:`Description` to be displayed in the :ref:`Approval dialog "
|
||||
"<approval-rules/use>`."
|
||||
msgstr ""
|
||||
"Agregue una :guilabel:`Descripción` que se muestre en el :ref:`Diálogo de "
|
||||
"aprobación <approval-rules/use>`."
|
||||
msgid ":guilabel:`Approver Group` to specify one user group."
|
||||
msgstr ":guilabel:`Grupo aprobador` para especificar un grupo de usuarios."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:24
|
||||
msgid ""
|
||||
"Optionally, you can also add conditions for the approval rule to be applied "
|
||||
"by clicking the :icon:`fa-filter` (:guilabel:`filter`) icon next to the "
|
||||
":guilabel:`Allowed Group` field."
|
||||
"An activity is created for all users set as :guilabel:`Approvers` when their"
|
||||
" approval is requested."
|
||||
msgstr ""
|
||||
"También tiene la opción de agregar condiciones para que se apliquen a la "
|
||||
"regla de aprobación haciendo clic en el icono :icon:`fa-filter` "
|
||||
"(:guilabel:`filtro`) a un lado del campo :guilabel:`Grupo permitido`."
|
||||
"Se crea una actividad para todos los usuarios qiue sean "
|
||||
":guilabel:`Approvers` cuando se solicite su aprobación."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:27
|
||||
msgid ""
|
||||
"To add another rule, click :guilabel:`Add an approval rule`. When there are "
|
||||
"multiple approval rules, you can:"
|
||||
"(*optional*) Select the :guilabel:`Users to Notify` via an internal note "
|
||||
"when the action is approved or rejected."
|
||||
msgstr ""
|
||||
"Para agregar otra regla, haga clic en :guilabel:`Agregar regla de "
|
||||
"aprobación`. Cuando hay varias reglas de aprobación usted puede:"
|
||||
"(*opcional*) Seleccione los :guilabel:`Usuarios a notificar` con una nota "
|
||||
"interna cuando la acción se apruebe o rechace."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:30
|
||||
#: ../../content/applications/studio/approval_rules.rst:29
|
||||
msgid ""
|
||||
"enable :guilabel:`Exclusive Approval` to require approvers to be different "
|
||||
"users;"
|
||||
"(*optional*) Add a :guilabel:`Description` to be displayed on the button."
|
||||
msgstr ""
|
||||
"activar :guilabel:`Aprobación exclusiva` para requerir que los aprobadores "
|
||||
"sean usuarios diferentes."
|
||||
"(*opcional*) Agregue una :guilabel:`Descripción` que se muestre en el botón."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:31
|
||||
#: ../../content/applications/studio/approval_rules.rst:32
|
||||
msgid ""
|
||||
"change the :guilabel:`Notification Order` of the approval rule so that the "
|
||||
":guilabel:`Responsible` and :guilabel:`Users to notify` are only notified "
|
||||
"when the previous rule has been approved, and their approval is required. If"
|
||||
" the approval rules have the same :guilabel:`Notification Order`, all users "
|
||||
"are notified at the same time when the first approval is requested."
|
||||
"You can specify under which condition(s) an approval step should be applied "
|
||||
"by clicking the :icon:`fa-filter` (:guilabel:`filter`) icon next to the "
|
||||
":guilabel:`Approvers` field."
|
||||
msgstr ""
|
||||
"cambiar la :guilabel:`orden de notificación` de la regla de aprobación para "
|
||||
"que el :guilabel:`Responsable` y los :guilabel:`Usuarios por notificar` solo"
|
||||
" reciban notificaciones cuando la regla previa se haya aprobado y se "
|
||||
"necesite su aprobación. Si las reglas de aprobación tienen el mismo "
|
||||
":guilabel:`orden de notificación`, todos los usuarios recibirán la "
|
||||
"notificación al mismo tiempo cuando la primera aprobación se solicite."
|
||||
"Puede especificar en qué condiciones se debe aplicar un paso de aprobación, "
|
||||
"solo debe hacer clic en el icono :icon:`fa-filter` (:guilabel:`filtro`) a un"
|
||||
" lado del campo :guilabel:`Aprobadores`."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:36
|
||||
#: ../../content/applications/studio/approval_rules.rst:35
|
||||
msgid ""
|
||||
"Click the :icon:`fa-trash` (:guilabel:`trash`) icon next to the "
|
||||
":guilabel:`Allowed Group` field to delete the approval rule."
|
||||
"To add another approval step, click :icon:`fa-plus` :guilabel:`Add an "
|
||||
"approval step`. When there are multiple steps, you can:"
|
||||
msgstr ""
|
||||
"Haga clic en el icono :icon:`fa-trash` (:guilabel:`papelera`) a un lado del "
|
||||
"campo :guilabel:`Grupo permitido` para borrar la regla de aprobación."
|
||||
"Para agregar otro paso de aprobación haga clic en :icon:`fa-plus` "
|
||||
":guilabel:`Agregar un paso de aprobación`. Cuando haya varios pasos, puede:"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:38
|
||||
msgid ""
|
||||
"Enable :guilabel:`Exclusive Approval` on any step so that a user who "
|
||||
"approves a step cannot approve another step for the same record."
|
||||
msgstr ""
|
||||
"Activar la :guilabel:`Aprobación exclusiva` en cualquier paso para que un "
|
||||
"usuario que apruebe un paso no pueda aprobar el siguiente paso del mismo "
|
||||
"registro."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:40
|
||||
msgid ""
|
||||
"Change the :guilabel:`Approval Order` of the steps by selecting a number, "
|
||||
"`1` being the first step, `2` the second step, and so on. A user responsible"
|
||||
" for a higher step can approve/reject previous step(s) unless "
|
||||
":guilabel:`Exclusive Approval` is selected."
|
||||
msgstr ""
|
||||
"Para cambiar el :guilabel:`Orden de aprobación` de los pasos seleccione un "
|
||||
"número, en donde `1` es el primer paso, `2` es el segundo y así "
|
||||
"sucesivamente. Un usuario responsable de un paso superior puede aprobar o "
|
||||
"rechazar los pasos previos a no ser que se seleccione :guilabel:`Aprobción "
|
||||
"exclusiva`."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:44
|
||||
msgid ""
|
||||
"Click the :icon:`fa-trash` (:guilabel:`trash`) icon next to the "
|
||||
":guilabel:`Approvers` field to remove an approval step."
|
||||
msgstr ""
|
||||
"Para eliminar un paso de aprobación haga clic en el icono :icon:`fa-trash` "
|
||||
"(:guilabel:`papelera`) a un lado del campo :guilabel:`Aprobadores`."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:48
|
||||
msgid ""
|
||||
"You can create :ref:`user groups <access-rights/groups>` specifically for "
|
||||
"approvals."
|
||||
msgstr ""
|
||||
"Puede crear :ref:`grupos de usuarios <access-rights/groups>` específicamente"
|
||||
" para aprobaciones."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:45
|
||||
#: ../../content/applications/studio/approval_rules.rst:53
|
||||
msgid "Use"
|
||||
msgstr "Uso"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:47
|
||||
msgid "Once approval rules have been defined for a button:"
|
||||
msgstr "Una vez que las reglas de aprobación se definieron para un botón:"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:49
|
||||
msgid ""
|
||||
"A **user avatar** icon is displayed next to the button's label for each "
|
||||
"approval rule that has been defined."
|
||||
msgstr ""
|
||||
"Se mostrará el icono **avatar del usuario** a un lado de la etiqueta del "
|
||||
"botón para cada regla de aprobación que se ha definido."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:0
|
||||
msgid "Confirm button with approval for purchase orders"
|
||||
msgstr "Botón de confirmación con aprobación para órdenes de compra"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:55
|
||||
msgid ""
|
||||
"When an unauthorized user clicks the button, an error message is displayed "
|
||||
"in the top-right corner and an activity is created for the user specified in"
|
||||
" the :guilabel:`Responsible` field."
|
||||
"Once an approval rule has been defined for a button, a **user avatar** icon "
|
||||
"is displayed next to the button's label for each approval step. Clicking an "
|
||||
"icon reveals the step(s)."
|
||||
msgstr ""
|
||||
"Cuando un usuario no autorizado hace clic en el botón, se mostrará un "
|
||||
"mensaje de error en la esquina superior derecha y se creará una actividad "
|
||||
"para el usuario especificado en el campo :guilabel:`Responsable`."
|
||||
"Una vez que la regla de aprobación se defina en un botón, aparecerá el "
|
||||
"**avatar de un usuario** en el icono a un lado de la etiqueta del botón para"
|
||||
" cada paso de aprobación. Al hacer clic en el icono se mostrará uno o varios"
|
||||
" pasos."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:57
|
||||
#: ../../content/applications/studio/approval_rules.rst-1
|
||||
msgid "Confirm button with two approval steps"
|
||||
msgstr "Botón de confirmación con dos pasos de aprobación"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:62
|
||||
msgid ""
|
||||
"Only users from the group defined in the :guilabel:`Allowed Group` field are"
|
||||
" authorized to approve or reject the action."
|
||||
"If an unauthorized user clicks the button, an error message is displayed and"
|
||||
" an activity is created for the users specified in the :guilabel:`Approvers`"
|
||||
" field, if any."
|
||||
msgstr ""
|
||||
"Solo los usuarios que pertenezcan al grupo definido en el campo "
|
||||
":guilabel:`Grupo permitido` tienen la autorización de aceptar o rechazar la "
|
||||
"acción."
|
||||
"Si un usuario no autorizado hace clic en el botón, se mostrará un mensaje de"
|
||||
" error y se creará una actividad para los usuarios en el campo "
|
||||
":guilabel:`Aprobadores`, si los hay."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:60
|
||||
#: ../../content/applications/studio/approval_rules.rst:65
|
||||
msgid "Authorized users can:"
|
||||
msgstr "Los usuarios autorizados pueden:"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:62
|
||||
msgid "approve and perform the action by clicking the button;"
|
||||
msgstr "aprobar y realizar una acción haciendo clic en el botón;"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:63
|
||||
#: ../../content/applications/studio/approval_rules.rst:67
|
||||
msgid ""
|
||||
"approve the action and allow another user to perform it by clicking the "
|
||||
"**user avatar** icon next to the button's label, then clicking the "
|
||||
":icon:`fa-check` (:guilabel:`Approve`) button in the dialog that opens;"
|
||||
"Perform the action directly by clicking the button if it is the last/only "
|
||||
"approval step."
|
||||
msgstr ""
|
||||
"aprobar la acción y dejar que otro usuario la realice haciendo clic en el "
|
||||
"icono **avatar del usuario** a un lado de la etiqueta del botón, para "
|
||||
"después hacer clic en el botón :icon:`fa-check` (:guilabel:`Aprobar`) en el "
|
||||
"cuadro de diálogo que se abre:"
|
||||
"Realice la acción de inmediato haciendo clic en el botón si es el último o "
|
||||
"único paso de aprobación."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:66
|
||||
#: ../../content/applications/studio/approval_rules.rst:68
|
||||
msgid ""
|
||||
"reject the action by clicking the **user avatar** icon next to the button's "
|
||||
"label, then clicking the :icon:`fa-times` (:guilabel:`Reject`) button in the"
|
||||
" dialog that opens."
|
||||
"Approve the action and let another user perform it - or move it to the next "
|
||||
"approval step - by clicking the **user avatar** icon next to the button's "
|
||||
"label, then clicking the :icon:`fa-check` (:guilabel:`approve`)."
|
||||
msgstr ""
|
||||
"rechazar la acción haciendo clic en el icono de **avatar de usuario** a un "
|
||||
"lado de la etiqueta del botón, para después hacer clic en el botón "
|
||||
":icon:`fa-times` (:guilabel:`Rechazar`) en el cuadro de diálogo que se abre."
|
||||
"Para aprobar la acción y dejar que otro usuario la realice (o moverla al "
|
||||
"siguiente paso de aprobación) haga clic en el icono del **avatar de "
|
||||
"usuario** a un lado de la etiqueta del botón, después haga clic en "
|
||||
":icon:`fa-check` (:guilabel:`aprobar`)."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst-1
|
||||
msgid "Approval dialog"
|
||||
msgstr "Diálogo de aprobación"
|
||||
#: ../../content/applications/studio/approval_rules.rst:71
|
||||
msgid ""
|
||||
"Reject the action by clicking the **user avatar** icon next to the button's "
|
||||
"label and then the :icon:`fa-times` (:guilabel:`reject`) button."
|
||||
msgstr ""
|
||||
"Para rechazar la acción haga clic en el icono de **avatar de usuario** que "
|
||||
"se encuentra junto a la etiqueta del botón y después en el botón :icon:`fa-"
|
||||
"times` (:guilabel:`Rechazar`)."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:73
|
||||
msgid ""
|
||||
"The user who approved/rejected the action can revoke their decision by "
|
||||
"clicking the **user avatar** icon next to the button's label, then clicking "
|
||||
"the :icon:`fa-undo` (:guilabel:`Revoke`) button."
|
||||
"(only for users selected under the :guilabel:`Approvers` field) Delegate "
|
||||
"their approval rights to one or several users for **all records** by:"
|
||||
msgstr ""
|
||||
"El usuario que aprobó o rechazó la acción puede revocar su decisión haciendo"
|
||||
" clic en el icono **avatar de usuario** en le etiqueta del botón, para "
|
||||
"después hacer clic en el botón :icon:`fa-undo` (:guilabel:`Revocar`)."
|
||||
"(solo para usuarios seleccionados en el campo :guilabel:`Aprobadores`) Para "
|
||||
"delegar sus derechos de aprobación a uno o más usuarios para **todos los "
|
||||
"registros** haga lo siguiente:"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:76
|
||||
msgid ""
|
||||
"Clicking the :icon:`oi-view-kanban` (:guilabel:`kanban view`) icon and then "
|
||||
":guilabel:`Delegate`."
|
||||
msgstr ""
|
||||
"Haga clic en el icono :icon:`oi-view-kanban` (:guilabel:`vista de kanban`) y"
|
||||
" luego en :guilabel:`Delegar`."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:78
|
||||
msgid ""
|
||||
"Selecting one or several :guilabel:`Approvers`, :guilabel:`Until` when they "
|
||||
"will have approval rights (forever if left empty), and, optionally, the "
|
||||
"user(s) who should be notified via an internal note using the "
|
||||
":guilabel:`Notify to` field."
|
||||
msgstr ""
|
||||
"Seleccione uno o más :guilabel:`Aprobadores`, seleccione :guilabel:`Hasta` "
|
||||
"cuándo tendrán derechos de aprobación (si deja este campo vacío será para "
|
||||
"siempre). También tiene la opción de seleccionar a los usuarios que se deben"
|
||||
" notificar mediante una nota interna con el campo :guilabel:`Notificar a`."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:0
|
||||
msgid "Delegate to dialog"
|
||||
msgstr "Diálogo para delegar"
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:86
|
||||
msgid ""
|
||||
"A user who approves/rejects an action can revoke their decision by clicking "
|
||||
"the **user avatar** icon next to the button's label and then the :icon:`fa-"
|
||||
"undo` (:guilabel:`revoke`) button. They can also revoke the decision of "
|
||||
"other users for steps with a lower :guilabel:`Approval Order` unless "
|
||||
":guilabel:`Exclusive Approval` is enabled."
|
||||
msgstr ""
|
||||
"Un usuario que aprueba y rechaza una acción puede revocar su decisión "
|
||||
"haciendo clic en el icono de **avatar del usuario** a un lado de la etiqueta"
|
||||
" del botón y después en el botón :icon:`fa-undo` (:guilabel:`revocar`). "
|
||||
"También pueden revocar la decisión de otros usuarios para pasos que estén "
|
||||
"más abajo en el :guilabel:`Orden de aprobación` a no ser que se active la "
|
||||
":guilabel:`Aprobación exclusiva`."
|
||||
|
||||
#: ../../content/applications/studio/approval_rules.rst:90
|
||||
msgid ""
|
||||
"Approvals are tracked in the record's chatter. An approval entry is also "
|
||||
"created every time a Studio approval-related action is performed. To access "
|
||||
"the approval entries, :doc:`activate the developer mode "
|
||||
"approval entries, :doc:`activate the developer mode "
|
||||
"</applications/general/developer_mode>` and go to :menuselection:`Settings "
|
||||
"--> Technical --> Studio Approval Entries`."
|
||||
msgstr ""
|
||||
"Las aprobaciones se monitorean en el chatter del registro. También se crea "
|
||||
"una entrada de aprobación cada vez que se realiza una acción relacionada a "
|
||||
"una aprobación en Studio. Para acceder a las entradas de aprobación, "
|
||||
":doc:`active el modo de desarrollador "
|
||||
"</applications/general/developer_mode>` y vaya a :menuselection:`Ajustes -->"
|
||||
" Técnicos --> Entradas de aprobación de Studio`."
|
||||
"Las aprobaciones se registran en el chatter del registro y también se crea "
|
||||
"una entrada de aprobación cada vez que ocurre una acción relacionada con una"
|
||||
" aprobación en Studio. :doc:`Active el modo de desarrollador "
|
||||
"</applications/general/developer_mode>` para acceder a las entradas de "
|
||||
"aprobación y vaya a :menuselection:`Ajustes --> Técnico --> Entradas de "
|
||||
"aprobación de Studio`."
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:3
|
||||
msgid "Automation rules"
|
||||
@@ -404,7 +434,7 @@ msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:0
|
||||
msgid "Create automations from a kanban stage"
|
||||
msgstr "Crear automatizaciones a partir de una etapa kanban"
|
||||
msgstr "Crear automatizaciones a partir de una etapa de kanban"
|
||||
|
||||
#: ../../content/applications/studio/automated_actions.rst:40
|
||||
msgid "Trigger"
|
||||
@@ -2232,17 +2262,17 @@ msgid ""
|
||||
"features/pipeline-stages` features enabled adds the image in the card layout"
|
||||
" of the :ref:`Kanban view <studio/views/multiple-records/kanban>`."
|
||||
msgstr ""
|
||||
"La creación de un modelo con las funciones :ref:`studio/models-modules-"
|
||||
"Crear un modelo con las funciones :ref:`studio/models-modules-"
|
||||
"apps/suggested-features/picture` y :ref:`studio/models-modules-"
|
||||
"apps/suggested-features/pipeline-stages` activadas añade la imagen en el "
|
||||
"diseño de la tarjeta de la vista :ref:`Kanban <studio/views/multiple-"
|
||||
"apps/suggested-features/pipeline-stages` activadas agrega la imagen al "
|
||||
"diseño de la tarjeta de la vista de :ref:`kanban <studio/views/multiple-"
|
||||
"records/kanban>`."
|
||||
|
||||
#: ../../content/applications/studio/models_modules_apps.rst:0
|
||||
msgid ""
|
||||
"Combination of the Picture and Pipeline stages features on the Kanban view"
|
||||
msgstr ""
|
||||
"Combinación de las funciones de las etapas imagen y flujo en la vista kanban"
|
||||
"Combinación de las funciones Imagen y Etapas del flujo en la vista de kanban"
|
||||
|
||||
#: ../../content/applications/studio/models_modules_apps.rst:39
|
||||
msgid "Contact details"
|
||||
@@ -2580,8 +2610,8 @@ msgid ""
|
||||
"<studio/pdf-reports/edit>`."
|
||||
msgstr ""
|
||||
"Studio le permite :ref:`editar reportes en PDF existentes <studio/pdf-"
|
||||
"reports/edit>` (por ejemplo, facturas, cotizaciones, etc.) o :ref:`crear "
|
||||
"nuevos <studio/pdf-reports/edit>`."
|
||||
"reports/edit>` (como facturas, cotizaciones, etc.) y :ref:`crear nuevos "
|
||||
"<studio/pdf-reports/edit>`."
|
||||
|
||||
#: ../../content/applications/studio/pdf_reports.rst:11
|
||||
msgid "Default layout"
|
||||
@@ -2853,10 +2883,10 @@ msgid ""
|
||||
"pointer on the top right corner of the report, click the vertical ellipsis "
|
||||
"icon (:guilabel:`⋮`), and then select :guilabel:`Duplicate`."
|
||||
msgstr ""
|
||||
"Le recomendamos que **duplique** el reporte estándar y que haga los cambios "
|
||||
"en la versión duplicada. Para duplicar un reporte, coloque el cursor sobre "
|
||||
"la esquina superior derecha del reporte, haga clic en el icono con los tres "
|
||||
"puntos verticales (:guilabel:`⋮`) y luego seleccione :guilabel:`Duplicar`. "
|
||||
"Le recomendamos que **duplique** el reporte estándar y haga los cambios en "
|
||||
"la versión duplicada. Para duplicarlo, coloque el cursor sobre la esquina "
|
||||
"superior derecha del reporte, haga clic en el icono con los tres puntos "
|
||||
"verticales (:guilabel:`⋮`) y luego seleccione :guilabel:`Duplicar`. "
|
||||
|
||||
#: ../../content/applications/studio/pdf_reports.rst:0
|
||||
msgid "Duplicating a PDF report"
|
||||
@@ -3536,14 +3566,14 @@ msgid ""
|
||||
"corresponding XPath, which defines the modified part of the view, are "
|
||||
"automatically generated."
|
||||
msgstr ""
|
||||
"Si edita una vista con el editor XML, evite realizar cambios directamente en"
|
||||
" las vistas estándar y heredadas, ya que se restablecerán y las perderá "
|
||||
"durante las actualizaciones o versiones nuevas del módulo. Asegúrese de "
|
||||
"Evite realizar cambios directamente en las vistas estándar y heredadas con "
|
||||
"el editor XML, pues estas se restablecerían y las perderá al actualizar los "
|
||||
"módulos o durante el lanzamiento de versiones nuevas. Asegúrese de "
|
||||
"seleccionar siempre las vistas heredadas correctas de Studio cuando "
|
||||
"modifique una vista en Studio. Por ejemplo, cuando arrastre y suelte un "
|
||||
"nuevo campo, se generará una vista heredada específica de Studio en "
|
||||
"automático con su respectiva XPath, que define la parte modificada de la "
|
||||
"vista."
|
||||
"modifique una vista con esta aplicación. Cuando arrastra y suelta un nuevo "
|
||||
"campo para modificar una vista, se genera una vista heredada específica de "
|
||||
"Studio en automático con su respectiva XPath, que define qué parte de la "
|
||||
"vista se modifica."
|
||||
|
||||
#: ../../content/applications/studio/views.rst:30
|
||||
msgid "General views"
|
||||
@@ -3625,6 +3655,9 @@ msgid ""
|
||||
":guilabel:`Label` or :guilabel:`Class` (either `btn-primary` or `btn-"
|
||||
"secondary`) in the :guilabel:`Properties` tab."
|
||||
msgstr ""
|
||||
"Para cambiar el texto o estilo de un botón, haga clic en el botón y edite su"
|
||||
" :guilabel:`etiqueta` o :guilabel:`clase` (ya sea `btn-primary` o `btn-"
|
||||
"secondary`) en la pestaña :guilabel:`Propiedades`."
|
||||
|
||||
#: ../../content/applications/studio/views.rst:57
|
||||
msgid ""
|
||||
@@ -3697,7 +3730,7 @@ msgstr ""
|
||||
|
||||
#: ../../content/applications/studio/views.rst:0
|
||||
msgid "Project model's Search view on the Kanban view"
|
||||
msgstr "Vista de búsqueda del proyecto en kanban"
|
||||
msgstr "Vista de búsqueda del modelo de proyecto en la vista de kanban"
|
||||
|
||||
#: ../../content/applications/studio/views.rst:103
|
||||
msgid "Multiple records views"
|
||||
@@ -4182,7 +4215,7 @@ msgstr "Vista gantt en la planeación de turnos"
|
||||
|
||||
#: ../../content/applications/studio/views.rst:319
|
||||
msgid "Reporting views"
|
||||
msgstr "Vistas de informes"
|
||||
msgstr "Vistas de reportes"
|
||||
|
||||
#: ../../content/applications/studio/views.rst:328
|
||||
msgid "Pivot"
|
||||
|
||||
+1741
-1204
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,26 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) Odoo S.A.
|
||||
# This file is distributed under the same license as the Odoo package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-08 08:46+0000\n"
|
||||
"PO-Revision-Date: 2023-11-08 08:57+0000\n"
|
||||
"Language-Team: Finnish (https://app.transifex.com/odoo/teams/41243/fi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../../content/applications.rst:9
|
||||
msgid "User Docs"
|
||||
msgstr ""
|
||||
|
||||
#: ../../content/applications.rst:11
|
||||
msgid "Discover our user guides and configuration tutorials per application."
|
||||
msgstr ""
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user