Compare commits

..

1 Commits

Author SHA1 Message Date
Antoine Vandevenne (anv)
dba4ba5f39 test 2021-07-26 10:30:53 +02:00
31 changed files with 825 additions and 320 deletions

1
.gitignore vendored
View File

@@ -4,6 +4,7 @@
# Sphinx build files
_build/
extensions/odoo_theme/static/style.css
# Dependencies
odoo

View File

@@ -9,10 +9,6 @@ ifndef BUILD_DIR
BUILD_DIR = _build
endif
ifndef CURRENT_LANG
CURRENT_LANG = en
endif
SPHINX_BUILD = sphinx-build
CONFIG_DIR = .
SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSION) \
@@ -22,9 +18,10 @@ SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSIO
-j $(WORKERS)
SOURCE_DIR = content
HTML_BUILD_DIR = $(BUILD_DIR)/html
ifdef VERSIONS
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/saas-14.5
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
endif
ifneq ($(CURRENT_LANG),en)
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
@@ -46,7 +43,7 @@ clean:
rm -rf $(BUILD_DIR)/*
@echo "Cleaning finished."
html: $(HTML_BUILD_DIR)/_static/style.css
html: $(BUILD_DIR)/html/_static/style.css
@echo "Starting build..."
$(SPHINX_BUILD) -c $(CONFIG_DIR) -b html $(SPHINXOPTS) $(SOURCE_DIR) $(HTML_BUILD_DIR)
@echo "Build finished."
@@ -66,10 +63,10 @@ gettext:
$(SPHINX_BUILD) -c $(CONFIG_DIR) -b gettext $(SOURCE_DIR) locale/sources
@echo "Generation finished."
$(HTML_BUILD_DIR)/_static/style.css: extensions/odoo_theme/static/style.scss extensions/odoo_theme/static/scss/*.scss
$(BUILD_DIR)/html/_static/style.css: extensions/odoo_theme/static/style.scss extensions/odoo_theme/static/scss/*.scss
@echo "Compiling stylesheets..."
mkdir -p $(HTML_BUILD_DIR)/_static
pysassc extensions/odoo_theme/static/style.scss $(HTML_BUILD_DIR)/_static/style.css
mkdir -p $(BUILD_DIR)/html/_static
pysassc extensions/odoo_theme/static/style.scss $(BUILD_DIR)/html/_static/style.css
@echo "Compilation finished."
#=== Development and debugging rules ===#
@@ -77,6 +74,6 @@ $(HTML_BUILD_DIR)/_static/style.css: extensions/odoo_theme/static/style.scss ext
fast: SPHINXOPTS += -A collapse_menu=True
fast: html
static: $(HTML_BUILD_DIR)/static/style.css
cp -r extensions/odoo_theme/static/* $(HTML_BUILD_DIR)/_static/
cp -r static/* $(HTML_BUILD_DIR)/_static/
static: $(BUILD_DIR)/static/style.css
cp -r extensions/odoo_theme/static/* $(BUILD_DIR)/html/_static/
cp -r static/* $(BUILD_DIR)/html/_static/

View File

@@ -4,11 +4,11 @@
### Requirements
- [Git](https://www.odoo.com/documentation/15.0/contributing/documentation.html#install-git)
- [Python 3.6, 3.7, or 3.8](https://www.odoo.com/documentation/15.0/contributing/documentation.html#python)
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/15.0/requirements.txt).
- [Make](https://www.odoo.com/documentation/15.0/contributing/documentation.html#make)
- A local copy of the [odoo/odoo repository in 15.0](https://github.com/odoo/odoo/tree/15.0) (Optional)
- [Git](https://www.odoo.com/documentation/master/contributing/documentation.html#install-git)
- [Python 3.6, 3.7, or 3.8](https://www.odoo.com/documentation/master/contributing/documentation.html#python)
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/master/requirements.txt).
- [Make](https://www.odoo.com/documentation/master/contributing/documentation.html#make)
- A local copy of the [odoo/odoo repository in master](https://github.com/odoo/odoo/tree/master) (Optional)
### Instructions
@@ -23,7 +23,7 @@
2. Open the file `documentation/_build/html/index.html` in your web browser to display the render.
3. See [this guide](https://www.odoo.com/documentation/15.0/contributing/documentation.html#preview-your-changes)
3. See [this guide](https://www.odoo.com/documentation/master/contributing/documentation.html#preview-your-changes)
for more detailed instructions.
Optional: to fully build the developer documentation with inline docstrings for documented Python
@@ -34,7 +34,7 @@ be shown.
## Contribute to the documentation
For contributions to the content of the documentation, please refer to the
[Introduction Guide](https://www.odoo.com/documentation/15.0/contributing/documentation.html).
[Introduction Guide](https://www.odoo.com/documentation/master/contributing/documentation.html).
To **report a content issue**, **request new content** or **ask a question**, use the
[repository's issue tracker](https://github.com/odoo/documentation-user/issues) as usual.

11
conf.py
View File

@@ -19,7 +19,7 @@ copyright = 'Odoo S.A.'
# `version` if 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 alpha/beta/rc tags. Acts as replacement for |release|.
version = release = 'saas-14.5'
version = release = 'master'
# The minimal Sphinx version required to build the documentation.
needs_sphinx = '3.0.0'
@@ -70,20 +70,19 @@ if not odoo_dir.is_dir():
f"Could not find Odoo sources directory at {odoo_dir.absolute()}.\n"
f"The 'Developer' documentation will be built but autodoc directives will be skipped.\n"
f"In order to fully build the 'Developer' documentation, clone the repository with "
f"`git clone https://github.com/odoo/odoo` or create a symbolic link."
f"`git clone https://github.com/odoo/odoo` or create a symbolink link."
)
else:
sys.path.insert(0, str(odoo_dir.absolute()))
from odoo import release as odoo_release # Don't collide with Sphinx's 'release' config option
odoo_version = odoo_release.version.replace('~', '-') \
if 'alpha' not in odoo_release.version else 'master'
odoo_version = odoo_release.version if 'alpha' not in odoo_release.version else 'master'
if release != odoo_version:
_logger.warning(
f"Found Odoo sources directory but with version '{odoo_version}' incompatible with "
f"documentation version '{version}'.\n"
f"The 'Developer' documentation will be built but autodoc directives will be skipped.\n"
f"In order to fully build the 'Developer' documentation, checkout the matching branch "
f"with `cd odoo && git checkout {version}`."
f"In order to fully build the 'Developer' documentation, checkout the matching branch"
f" with `cd odoo && git checkout {version}`."
)
else:
_logger.info(f"Found Odoo sources directory matching documentation version {release}.")

View File

@@ -9,6 +9,7 @@ internet.
.. warning:: If you are setting up a public server, be sure to check our :ref:`security` recommandations!
.. _db_filter:
dbfilter
@@ -63,7 +64,6 @@ in ``/etc/odoo.conf`` set:
dbfilter = ^%d$
.. note::
Setting a proper :option:`--db-filter <odoo-bin --db-filter>` is an important part
of securing your deployment.
Once it is correctly working and only matching a single database per hostname, it
@@ -72,6 +72,7 @@ in ``/etc/odoo.conf`` set:
your databases, and to block access to the database management screens.
See also security_.
PostgreSQL
==========
@@ -195,6 +196,7 @@ be better monitored and resource-restricted.
.. warning:: multiprocessing mode currently isn't available on Windows
Worker number calculation
-------------------------
@@ -227,6 +229,8 @@ like nginx or apache. When doing so, you'll need to forward some more http Heade
to Odoo, and activate the proxy_mode in Odoo configuration to have Odoo read those
headers.
Configuration sample
--------------------
@@ -285,59 +289,59 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
#odoo server
upstream odoo {
server 127.0.0.1:8069;
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
server 127.0.0.1:8072;
}
# http -> https
server {
listen 80;
server_name odoo.mycompany.com;
rewrite ^(.*) https://$host$1 permanent;
listen 80;
server_name odoo.mycompany.com;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443;
server_name odoo.mycompany.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
listen 443;
server_name odoo.mycompany.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# SSL parameters
ssl on;
ssl_certificate /etc/ssl/nginx/server.crt;
ssl_certificate_key /etc/ssl/nginx/server.key;
ssl_session_timeout 30m;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# SSL parameters
ssl on;
ssl_certificate /etc/ssl/nginx/server.crt;
ssl_certificate_key /etc/ssl/nginx/server.key;
ssl_session_timeout 30m;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# log
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
# log
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
# Redirect longpoll requests to odoo longpolling port
location /longpolling {
proxy_pass http://odoochat;
}
# Redirect longpoll requests to odoo longpolling port
location /longpolling {
proxy_pass http://odoochat;
}
# Redirect requests to odoo backend server
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
# Redirect requests to odoo backend server
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
# common gzip
gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
gzip on;
# common gzip
gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
Odoo as a WSGI Application
@@ -554,6 +558,9 @@ Here is what it could look like for blocking the IP for 15 minutes when
findtime = 60 ; within 1 min /!\ Should be adjusted with the TZ offset
logpath = /var/log/odoo.log ; set the actual odoo log path here
.. _db_manager_security:
Database Manager Security
@@ -616,10 +623,12 @@ Here are the supported browsers:
.. warning:: Please make sure your browser is up-to-date and still supported by
its publisher before filing a bug report.
.. note::
Since Odoo 13.0, ES6 is supported. Therefore, IE support is dropped.
.. [#different-machines]
to have multiple Odoo installations use the same PostgreSQL database,
or to provide more computing resources to both software.

View File

@@ -2,8 +2,8 @@
Bank Accounts
=============
You can manage as many **Bank Accounts** as needed on your database. Configuring them properly allows
you to ensure that all your banking data is up to date and ready to be reconciled with your
You can manage as many **Bank Accounts** as needed on your database. Configuring them well allows
you to make sure that all your banking data is up to date and ready for the reconciliation with your
*Journal Entries*.
In Odoo Accounting, each Bank Account is configured to have a dedicated *Journal* which is
@@ -24,8 +24,8 @@ convenient card. It includes action buttons that are displayed when appropriate.
Add a new Bank Account
======================
You can either synch your bank account directly to your Odoo database, or configure it
so you can and :doc:`upload the bank statements manually <../feeds/bank_statements>`.
You can either connect your bank account to your Odoo database, or configure your bank account
manually and :doc:`upload the bank statements manually <../feeds/bank_statements>`.
Bank Synchronization
--------------------
@@ -82,9 +82,8 @@ If you need to edit the bank account details, go to the *Bank Account* field and
Account Holder, Account Holder Name, and your Bank Institution's details by clicking on the
*External Link* next to the *Bank* field. These details are used to register some payments.
You can configure which types of payments are enabled and if they use their own Outstanding
Accounts by editing the Payment Method on the **Incoming/Outgoing Payments** tab and
how the bank statements are recorded and posted in the **Bank Feeds** section on the Journal Entries tab.
You can configure which types of payments are enabled in the **Payment Method Types** section and
how the bank statements are recorded and posted in the **Bank Statements** section.
.. image:: media/bank_accounts_configuration.png
:align: center
@@ -93,4 +92,4 @@ how the bank statements are recorded and posted in the **Bank Feeds** section on
.. seealso::
* :doc:`../../bank/feeds/bank_synchronization`
* :doc:`../feeds/bank_statements`
* `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_
* `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_

View File

@@ -15,7 +15,6 @@ Localizations
localizations/france
localizations/germany
localizations/indonesia
localizations/italy
localizations/italy_IT
localizations/mexico
localizations/netherlands

View File

@@ -478,9 +478,6 @@ fiscal elements that indicate that the document is fiscally valid:
:align: center
:alt: Barcode and fiscal elements in the invoice report.
.. important::
If you are hosted in Odoo SH or On-Premise, you should manually install the ``pdf417gen``
library. Use the following command to install it: ``pip install pdf417gen``.
Commercial Validation
~~~~~~~~~~~~~~~~~~~~~
@@ -491,7 +488,7 @@ Once the invoice has been sent to the customer:
2. The customer must send a reception confirmation email.
3. Subsequently, if all the commercial terms and invoice data are correct, they will send the
Acceptance confirmation, otherwise they send a Claim.
4. The field DTE acceptation status is updated automatically.
4. The field DTE acceptation status is updated automatically.
.. image:: media/Chile23.png
:align: center

View File

@@ -1,79 +0,0 @@
=====
Italy
=====
Allow the user to generate the EDI document for Italian invoicing.
This module allows the creation of the EDI documents and the communication with the SDICoop web
service of FatturaPA to send or receive invoices and notifications.
.. warning::
Once this module is installed, it's no longer possible to send invoices via :ref:`PEC mails
<italy/pec>`.
SDICoop
=======
Configuration
-------------
Setup the Codice Destinatario on FatturaPA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To receive invoices and notifications from third parties, you need to inform the FatturaPA service
that Odoo is the allowed party to process files for you. To do so, you must setup Odoo's *Codice
Destinatario* on the FatturaPA portal. The *Codice Destinatario* is ``K95IV18``.
#. Go to https://ivaservizi.agenziaentrate.gov.it/portale/ and authenticate.
#. Go to section :menuselection:`Fatture e Corrispettivi`.
#. Set the user as Legal Party for the VAT number you wish to configure the electronic adress.
#. In :menuselection:`Servizi Disponibili --> Fatturazione Elettronica --> Registrazione
dellindirizzo telematico dove ricevere tutte le fatture elettroniche`, input Odoo's Codice
Destinatario (**K95IV18**), then confirm.
Give Odoo permission to process files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Since the files are transmitted through Odoo's server before being sent to SDICoop or received by
your database, you need to authorize Odoo to process your files from your database.
To do this, go to :menuselection:`Accounting --> Settings --> Electronic Invoicing` and click on
*Register*.
.. image:: italy/register.png
:align: center
:alt: Register button to allow Odoo to process invoices.
.. Note::
All your files are encrypted upon reception in such a way that only you are able to decrypt them.
Enable FatturaPA on the Sales journal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Open your sales journal. Under the *Advanced Settings* tab, in the **Electronic invoicing** field,
check *FatturaPA* and *Save*.
.. image:: italy/journal.png
:align: center
:alt: FatturaPA feature in the sales journal's settings
Issue invoices
--------------
Send an invoice the way you would do it normally. The EDI process proceeds automatically.
.. image:: italy/sending.png
:align: center
:alt: Asynchronous sending on a customer invoice
You can check the current status of your customer invoice under the **Electronic invoicing** field.
.. image:: italy/processing.png
:align: center
:alt: Electronic invoicing status (waiting for confirmation)
Receive invoices
~~~~~~~~~~~~~~~~
This process is ran automatically once a day.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -2,11 +2,6 @@
Italy (IT)
==========
.. _italy/pec:
PEC mail
========
Questa guida spiegherà come utilizzare la fattura elettronica in Odoo e
come configurare correttamente i dati aziendali, i contatti e la
contabilità. Per testare la fattura elettronica i dati devono essere
@@ -15,7 +10,7 @@ non riconoscerà linterscambio di informazioni.
Configurare le informazioni sulla tua Azienda
---------------------------------------------
=============================================
Il passo successivo è la configurazione delle informazioni necessarie al
funzionamento della fatturazione elettronica. Si può accedere alla
@@ -57,7 +52,7 @@ elettronica sono i seguenti:
Configurare le impostazioni per la Fatturazione Elettronica
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----------------------------------------------------------
- Numero di iscrizione nel registro Imprese tenuto presso la Camera di
Commercio.
@@ -73,7 +68,7 @@ Configurare le impostazioni per la Fatturazione Elettronica
Configurare il profilo dei clienti
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
----------------------------------
Per un corretto utilizzo dellapplicazione, il profilo di clienti e
fornitori, nellapplicazione contatti, deve essere configurato con le
@@ -90,7 +85,7 @@ fattura elettronica*.
Il processo di fatturazione
---------------------------
===========================
Si può procedere ad emettere una fattura seguendo le indicazioni
dellapplicazione. Il momento che determina il formale invio della

View File

@@ -59,20 +59,33 @@ The following modules are necessary for all databases that require Mexican local
| All the basic data to manage accounting, taxes and the chart of accounts. The installed chart
of accounts is based on `the SAT account grouping code
<https://www.gob.mx/cms/uploads/attachment/file/151586/codigo_agrupador.pdf>`_.
#. | **EDI for Mexico (l10n_mx_edi & l10n_mx_edi_extended)**
#. | **EDI for Mexico (l10n_mx_edi)**
| Necessary for electronic transactions, CFDI 3.3, payment complement, and addenda on invoices.
#. | **Odoo Mexican localization reports (l10n_mx_reports & l10n_mx_reports_closing)**
#. | **Odoo Mexican localization reports (l10n_mx_reports)**
| All mandatory reports for electronic accounting. (Requires the accounting application).
The following modules are optional, and should be installed only if they meet a specific
organization requirement. Installing these modules is not recommended unless you are sure they
are needed as they add fields that can unnecessarily complicate form filling.
#. | **EDI External Trade Complement for Mexico (l10n_mx_edi_external_trade)**
| For clients that export, add the foreign trade complement to the CFDI, and the logic for
filling it.
#. | **Odoo Mexico Localization for Invoice with customs Number (l10n_mx_edi_customs)**
| For importing customers, this module allows adding to the CFDI the request number with which
the merchandise to be resold entered. When it is imported into Mexico, in the invoice that
comes from any foreign country it is necessary to specify which was the import document; This
is known as a "pedimento", and it is processed at customs.
#. | **Odoo Mexico Localization for Stock / Landing (l10n_mx_edi_landing)**
| This module allows managing the requests as part of the shipping costs.
#. | **Odoo Mexican XML Polizas Export (l10n_mx_xml_polizas)**
| With this module, you will be able to export your Journal Entries in XML ready to be uploaded
to the SAT.
| Related to the import module (*l10n_mx_edi_customs*), this module allows managing the requests
as part of the shipping costs.
#. | **Bank account payment to Mexico (l10n_mx_edi_payment_bank)**
| Add optional attributes to the payment plugin, allowing the user to select the bank account
that was used to pay the bills.
#. | **Odoo Mexico Localization for Sale Coupon (l10n_mx_edi_sale_coupon)**
| Complements the Odoo coupon module (*sale_coupon*) to avoid errors in the generation of CFDIs.
#. | **Tax Cash Basis Entries at Payment Date (l10n_mx_tax_cash_basis)** Create journal entries for
| taxes on the payment date (instead of the issue date).
Configuration
=============

View File

@@ -37,9 +37,12 @@ When a picking related to the order is confirmed, a notification is sent to Amaz
turn, notify the customer that the order (or a part of it) is on its way.
.. important::
Amazon requires to provide a tracking reference with each delivery. You'll need to assign a
carrier. If the carrier doesn't automatically provide a tracking reference, you'll need to set
one manually. This concerns all marketplaces.
Starting from July 2021, Amazon requires that deliveries be provided with a tracking
reference. This concerns all marketplaces.
If this is not already done, you need to :ref:`install <general/install>` the **Delivery Costs**
module in order to provide the tracking reference. There is unfortunately no workaround to comply
with this new Amazon policy.
.. seealso::
- :doc:`../../../inventory_and_mrp/inventory/shipping/setup/third_party_shipper`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -36,73 +36,6 @@ on **Sync countries and currencies**, then you can fill in all the other fields.
When all the fields are filled in, you can synchronize the categories and the
policies by clicking on the adequate buttons.
Accept account deletion notifications
=====================================
Since September 2021, **eBay requires supporting customer account deletion/closure notifications**.
As such, when eBay receives an account request for deletion, all eBay partners must confirm the
reception of the request and take further action if necessary.
Odoo has a notification endpoint to receive those notifications, confirm the reception of the
request, and handle the first set of actions to anonymize the account details in **Contacts** and
remove the customer's access to the portal.
.. important::
Make sure to correctly :ref:`set up your subscription to the marketplace account deletion
notifications <ebay/subscribe-account-deletion-notifications>` as eBay may temporarily disable
the related eBay account until the subscription is completed.
.. _ebay/retrieve-endpoint-details:
Retrieve endpoint details from Odoo
-----------------------------------
The endpoint details can be found in :menuselection:`Sales --> Configuration --> Settings --> eBay`.
Click on *Generate Token* to retrieve your **Verification Token**.
.. image:: media/verification-token.png
:align: center
:alt: Button to generate an eBay verification token in Odoo
.. _ebay/subscribe-account-deletion-notifications:
Subscribe to account deletion notifications
-------------------------------------------
Log in on the `developer portal of eBay <https://go.developer.ebay.com/>`_ and go to **Alerts &
Notifications**.
.. image:: media/ebay-your-account.png
:align: center
:alt: Overview of the Alerts & Notifications dashboard of eBay
To subscribe to deletion/closure notifications, eBay needs a few details:
- An **email address** to send notifications to if the endpoint is unreachable.
- The **endpoint details**:
- The URL to Odoo's account deletion notification endpoint
- A verification token
.. image:: media/ebay-notification-endpoint.png
:align: center
:alt: Dedicated fields to enter the endpoint details
.. tip::
You can edit the last two fields once the email address field is filled out.
Verify the connectivity with the endpoint
-----------------------------------------
After setting the retrieved endpoint details in eBay's dashboard, consider testing the connectivity
with the **Send Test Notification** button.
You should get the following confirmation message: "A test notification was sent successfully!"
.. image:: media/test-notification.png
:align: center
:alt: Button to send test notification
Using the updated synchronisation method
========================================
@@ -118,9 +51,7 @@ To switch to the new synchronization mechanism:
#. Activate the :ref:`developer mode <developer-mode>`.
#. Go to :menuselection:`Settings --> Technical --> Scheduled Actions`
#. Archive the old synchronization actions (both are named *Ebay: update product status*)
#. Activate the new synchronization actions (*Ebay: get new orders* which runs every 15min by
default and *Ebay: synchronise stock (for 'get new orders' synchronisation)* which runs once a
day per default)
#. Activate the new synchronization actions (*Ebay: get new orders* which runs every 15min by default and *Ebay: synchronise stock (for 'get new orders' synchronisation)* which runs once a day per default)
#. Ensure that the **Next Execution Date** for both these actions are in the near future
Starting with the next execution date, the new method will be used instead of the old one.

View File

@@ -224,7 +224,7 @@ Python comes with its own package manager: `pip
a single command.
#. Download and install the recommended release (`see README file
<https://github.com/odoo/documentation/tree/15.0/README.md>`_) of **Python 3** on your machine.
<https://github.com/odoo/documentation/tree/master/README.md>`_) of **Python 3** on your machine.
#. Make sure to have **pip** installed on your machine (on Windows, you can install pip alongside
Python).
#. Execute the following commands in a terminal to verify that both installations finished

View File

@@ -520,7 +520,7 @@ Document metadata
+-----------------+--------------------------------------------------------------------------------+
| `code-column` | | Show a dynamic side column that can be used to display interactive |
| | tutorials or code excerpts. |
| | | For example, see |
| | | For example, see :doc:`/developer/misc/api/upgrade` or |
| | :doc:`/applications/finance/accounting/getting_started/memento`. |
+-----------------+--------------------------------------------------------------------------------+
| `hide-page-toc` | Hide the "On this page" sidebar and use full page width for the content. |

View File

@@ -36,8 +36,8 @@ A reference to the rendered :file:`prices.html` and :file:`variants.html` could
#. Absolute:
- ``https://odoo.com/documentation/15.0/applications/sales/sales/products_prices/prices.html``
- ``https://odoo.com/documentation/15.0/applications/sales/sales/products_prices/products/variants.html``
- ``https://odoo.com/documentation/master/applications/sales/sales/products_prices/prices.html``
- ``https://odoo.com/documentation/master/applications/sales/sales/products_prices/products/variants.html``
#. Relative:

View File

@@ -845,7 +845,7 @@ We start by adding a new file in our views folder - name it **options.xml** and
<template id="snippet_testimonial_opt" name="Snippet Testimonial Options" inherit_id="website.snippet_options">
<xpath expr="//div[@data-js='Box']" position="after">
<div data-selector=".s_testimonial"> <!-- Options group -->
<div data-selector=".snippet_testimonial"> <!-- Options group -->
<div class="dropdown-submenu">
<a href="#" class="dropdown-item">Your Option</a>
<div class="dropdown-menu"><!-- Options list -->

View File

@@ -9,3 +9,4 @@ API
api/odoo
api/iap
api/upgrade

View File

@@ -379,7 +379,7 @@ perform the service within:
from passlib import pwd, hash
from odoo import http
from odoo.addons.iap.tools.iap_tools import iap_charge
from odoo.addons.iap import charge
class CoalBurnerController(http.Controller):
@http.route('/roll', type='json', auth='none', csrf='false')
@@ -390,10 +390,8 @@ perform the service within:
# we charge 1 credit for 10 seconds of CPU
cost = 1
# we set the transaction to expire after 1 hour
ttl = 1
# TODO: allow the user to specify how many (tens of seconds) of CPU they want to use
with iap_charge(http.request.env, service_key, account_token, cost, ttl=ttl):
with charge(http.request.env, service_key, account_token, cost):
# 10 seconds of CPU per credit
end = time.time() (10 * cost)
@@ -473,10 +471,8 @@ parameters we can use to make things clearer to the end-user.
# we charge 1 credit for 10 seconds of CPU
cost = 1
# we set the transaction to expire after 1 hour
ttl = 1
# TODO: allow the user to specify how many (tens of seconds) of CPU they want to use
with charge(http.request.env, service_key, account_token, cost, ttl=ttl
with charge(http.request.env, service_key, account_token, cost,
description="We're just obeying orders",
credit_template='coalroller_service.no_credit'):
@@ -549,8 +545,6 @@ Authorize
charges on their account
:param str dbuuid: optional, allows the user to benefit from trial
credits if his database is eligible (see :ref:`Service registration <register-service>`)
:param int ttl: optional, transaction time to live in hours. If the credit are not captured when the transaction expires,
the transaction is cancelled. The default value is set to 4320 hours (= 180 days).
:returns: :class:`TransactionToken` if the authorization succeeded
:raises: :class:`~odoo.exceptions.AccessError` if the service token is invalid
:raises: :class:`~odoo.addons.iap.models.iap.InsufficientCreditError` if the account does not have enough credits
@@ -567,7 +561,6 @@ Authorize
'key': SERVICE_KEY,
'credit': 25,
'description': "Why this is being charged",
'ttl': 1
}
}).json()
if 'error' in r:
@@ -729,7 +722,7 @@ module provides a few helpers to make IAP flow even simpler.
Charging
--------
.. class:: odoo.addons.iap.tools.iap_tools.iap_charge(env, key, account_token, credit, [dbuuid, description, credit_template, ttl])
.. class:: odoo.addons.iap.tools.iap_tools.iap_charge(env, key, account_token, credit[, dbuuid, description, credit_template])
A *context manager* for authorizing and automatically capturing or
cancelling transactions for use in the backend/proxy.
@@ -748,7 +741,6 @@ Charging
:param float credit:
:param str description:
:param Qweb template credit_template:
:param int ttl:
.. code-block:: python
:emphasize-lines: 11,13,14,15
@@ -777,7 +769,7 @@ Charging
Authorize
---------
.. class:: odoo.addons.iap.tools.iap_tools.iap_authorize(env, key, account_token, credit, [dbuuid, description, credit_template, ttl])
.. class:: odoo.addons.iap.tools.iap_tools.iap_authorize(env, key, account_token, credit[, dbuuid, description, credit_template])
Will authorize everything.
@@ -788,7 +780,6 @@ Authorize
:param float credit:
:param str description:
:param Qweb template credit_template:
:param int ttl:
.. code-block:: python
:emphasize-lines: 12

View File

@@ -0,0 +1,655 @@
:code-column:
.. _reference/upgrade-api:
================
Database Upgrade
================
Introduction
~~~~~~~~~~~~
This document describes the API used to upgrade an Odoo database to a
higher version.
It allows a database to be upgraded without ressorting to the html form at
https://upgrade.odoo.com
Although the database will follow the same process described on that form.
The required steps are:
* :ref:`creating a request <upgrade-api-create-method>`
* :ref:`uploading a database dump <upgrade-api-upload-method>`
* :ref:`running the upgrade process <upgrade-api-process-method>`
* :ref:`obtaining the status of the database request <upgrade-api-status-method>`
* :ref:`downloading the upgraded database dump <upgrade-api-download-method>`
The methods
~~~~~~~~~~~
.. _upgrade-api-create-method:
Creating a database upgrade request
===================================
This action creates a database request with the following information:
* your contract reference
* your email address
* the target version (the Odoo version you want to upgrade to)
* the purpose of your request (test or production)
* the database dump name (required but purely informative)
* optionally the server timezone (for Odoo source version < 6.1)
The ``create`` method
---------------------
.. py:function:: https://upgrade.odoo.com/database/v1/create
Creates a database upgrade request
:param str contract: (required) your enterprise contract reference
:param str email: (required) your email address
:param str target: (required) the Odoo version you want to upgrade to. Valid choices: 11.0, 12.0, 13.0
:param str aim: (required) the purpose of your upgrade database request. Valid choices: test, production.
:param str filename: (required) a purely informative name for you database dump file
:param str timezone: (optional) the timezone used by your server. Only for Odoo source version < 6.1
:return: request result
:rtype: JSON dictionary
The *create* method returns a JSON dictionary containing the following keys:
.. _upgrade-api-json-failure:
``failures``
''''''''''''
The list of errors.
A list of dictionaries, each dictionary giving information about one particular
error. Each dictionary can contain various keys depending of the type of error
but you will always get the ``reason`` and the ``message`` keys:
* ``reason``: the error type
* ``message``: a human friendly message
Some possible keys:
* ``code``: a faulty value
* ``value``: a faulty value
* ``expected``: a list of valid values
See a sample output aside.
.. rst-class:: setup doc-aside
.. switcher::
.. code-block:: json
{
"failures": [
{
"expected": [
"11.0",
"12.0",
"13.0",
],
"message": "Invalid value \"5.0\"",
"reason": "TARGET:INVALID",
"value": "5.0"
},
{
"code": "M123456-abcxyz",
"message": "Can not find contract M123456-abcxyz",
"reason": "CONTRACT:NOT_FOUND"
}
]
}
``request``
'''''''''''
If the *create* method is successful, the value associated to the *request* key
will be a dictionary containing various information about the created request:
The most important keys are:
* ``id``: the request id
* ``key``: your private key for this request
These 2 values will be requested by the other methods (upload, process and status)
The other keys will be explained in the section describing the :ref:`status method <upgrade-api-status-method>`.
Sample script
'''''''''''''
Here are 2 examples of database upgrade request creation using:
* one in the python programming language using the requests library
* one in the bash programming language using `curl <https://curl.haxx.se>`_ (tool
for transferring data using http) and `jq <https://stedolan.github.io/jq>`_ (JSON processor):
.. rst-class:: setup doc-aside
.. switcher::
.. code-block:: python
import requests
CREATE_URL = "https://upgrade.odoo.com/database/v1/create"
CONTRACT = "M123456-abcdef"
AIM = "test"
TARGET = "12.0"
EMAIL = "john.doe@example.com"
FILENAME = "db_name.dump"
fields = dict([
('aim', AIM),
('email', EMAIL),
('filename', DB_SOURCE),
('contract', CONTRACT),
('target', TARGET),
])
r = requests.get(CREATE_URL, data=fields)
print(r.text)
.. code-block:: bash
CONTRACT=M123456-abcdef
AIM=test
TARGET=12.0
EMAIL=john.doe@example.com
FILENAME=db_name.dump
CREATE_URL="https://upgrade.odoo.com/database/v1/create"
URL_PARAMS="contract=${CONTRACT}&aim=${AIM}&target=${TARGET}&email=${EMAIL}&filename=${FILENAME}"
curl -sS "${CREATE_URL}?${URL_PARAMS}" > create_result.json
# check for failures
failures=$(cat create_result.json | jq -r '.failures[]')
if [ "$failures" != "" ]; then
echo $failures | jq -r '.'
exit 1
fi
.. _upgrade-api-upload-method:
Uploading your database dump
============================
There are 2 methods to upload your database dump:
* the ``upload`` method using the HTTPS protocol
* the ``request_sftp_access`` method using the SFTP protocol
The ``upload`` method
---------------------
It's the most simple and most straightforward way of uploading your database dump.
It uses the HTTPS protocol.
.. py:function:: https://upgrade.odoo.com/database/v1/upload
Uploads a database dump
:param str key: (required) your private key
:param str request: (required) your request id
:return: request result
:rtype: JSON dictionary
The request id and the private key are obtained using the :ref:`create method
<upgrade-api-create-method>`
The result is a JSON dictionary containing the list of ``failures``, which
should be empty if everything went fine.
.. rst-class:: setup doc-aside
.. switcher::
.. code-block:: python
import requests
UPLOAD_URL = "https://upgrade.odoo.com/database/v1/upload"
DUMPFILE = "/tmp/dump.sql"
fields = dict([
('request', '10534'),
('key', 'Aw7pItGVKFuZ_FOR3U8VFQ=='),
])
headers = {"Content-Type": "application/octet-stream"}
with open(DUMPFILE, 'rb') as f:
requests.post(UPLOAD_URL, data=f, params=fields, headers=headers)
.. code-block:: bash
UPLOAD_URL="https://upgrade.odoo.com/database/v1/upload"
DUMPFILE="openchs.70.cdump"
KEY="Aw7pItGVKFuZ_FOR3U8VFQ=="
REQUEST_ID="10534"
URL_PARAMS="key=${KEY}&request=${REQUEST_ID}"
HEADER="Content-Type: application/octet-stream"
curl -H $HEADER --data-binary "@${DUMPFILE}" "${UPLOAD_URL}?${URL_PARAMS}"
.. _upgrade-api-request-sftp-access-method:
The ``request_sftp_access`` method
----------------------------------
This method is recommended for big database dumps.
It uses the SFTP protocol and supports resuming.
It will create a temporary SFTP server where you can connect to and allow you
to upload your database dump using an SFTP client.
.. py:function:: https://upgrade.odoo.com/database/v1/request_sftp_access
Creates an SFTP server
:param str key: (required) your private key
:param str request: (required) your request id
:param str ssh_keys: (required) the path to a file listing the ssh public keys you'd like to use
:return: request result
:rtype: JSON dictionary
The request id and the private key are obtained using the :ref:`create method
<upgrade-api-create-method>`
The file listing your ssh public keys should be roughly similar to a standard ``authorized_keys`` file.
This file should only contains public keys, blank lines or comments (lines starting with the ``#`` character)
Your database upgrade request should be in the ``draft`` state.
The ``request_sftp_access`` method returns a JSON dictionary containing the following keys:
.. rst-class:: setup doc-aside
.. switcher::
.. code-block:: python
import requests
UPLOAD_URL = "https://upgrade.odoo.com/database/v1/request_sftp_access"
SSH_KEY = "$HOME/.ssh/id_rsa.pub"
SSH_KEY_CONTENT = open(SSH_KEY,'r').read()
fields = dict([
('request', '10534'),
('key', 'Aw7pItGVKFuZ_FOR3U8VFQ=='),
('ssh_keys', SSH_KEY_CONTENT)
])
r = requests.post(UPLOAD_URL, params=fields)
print(r.text)
.. code-block:: bash
REQUEST_SFTP_ACCESS_URL="https://upgrade.odoo.com/database/v1/request_sftp_access"
SSH_KEYS=/path/to/your/authorized_keys
KEY="Aw7pItGVKFuZ_FOR3U8VFQ=="
REQUEST_ID="10534"
URL_PARAMS="key=${KEY}&request=${REQUEST_ID}"
curl -sS "${REQUEST_SFTP_ACCESS_URL}?${URL_PARAMS}" -F ssh_keys=@${SSH_KEYS} > request_sftp_result.json
# check for failures
failures=$(cat request_sftp_result.json | jq -r '.failures[]')
if [ "$failures" != "" ]; then
echo $failures | jq -r '.'
exit 1
fi
``failures``
''''''''''''
The list of errors. See :ref:`failures <upgrade-api-json-failure>` for an
explanation about the JSON dictionary returned in case of failure.
``request``
'''''''''''
If the call is successful, the value associated to the *request* key
will be a dictionary containing your SFTP connection parameters:
* ``hostname``: the host address to connect to
* ``sftp_port``: the port to connect to
* ``sftp_user``: the SFTP user to use for connecting
* ``shared_file``: the filename you need to use (identical to the ``filename`` value you have used when creating the request in the :ref:`create method <upgrade-api-create-method>`.)
* ``request_id``: the related upgrade request id (only informative, ,not required for the connection)
* ``sample_command``: a sample command using the 'sftp' client
You should normally be able to connect using the sample command as is.
You will only have access to the ``shared_file``. No other files will be
accessible and you will not be able to create new files in your shared
environment on the SFTP server.
Using the 'sftp' client
+++++++++++++++++++++++
Once you have successfully connected using your SFTP client, you can upload
your database dump. Here is a sample session using the 'sftp' client:
::
$ sftp -P 2200 user_10534@upgrade.odoo.com
Connected to upgrade.odoo.com.
sftp> put /path/to/openchs.70.cdump openchs.70.cdump
Uploading /path/to/openchs.70.cdump to /openchs.70.cdump
sftp> ls -l openchs.70.cdump
-rw-rw-rw- 0 0 0 849920 Aug 30 15:58 openchs.70.cdump
If your connection is interrupted, you can continue your file transfer using
the ``-a`` command line switch:
.. code-block:: text
sftp> put -a /path/to/openchs.70.cdump openchs.70.cdump
Resuming upload of /path/to/openchs.70.cdump to /openchs.70.cdump
If you don't want to manually type the command and need to automate your
database upgrade using a script, you can use a batch file or pipe your commands to 'sftp':
::
echo "put /path/to/openchs.70.cdump openchs.70.cdump" | sftp -b - -P 2200 user_10534@upgrade.odoo.com
The ``-b`` parameter takes a filename. If the filename is ``-``, it reads the commands from standard input.
.. _upgrade-api-process-method:
Asking to process your request
==============================
This action ask the Upgrade Platform to process your database dump.
The ``process`` method
----------------------
.. py:function:: https://upgrade.odoo.com/database/v1/process
Process a database dump
:param str key: (required) your private key
:param str request: (required) your request id
:return: request result
:rtype: JSON dictionary
The request id and the private key are obtained using the :ref:`create method
<upgrade-api-create-method>`
The result is a JSON dictionary containing the list of ``failures``, which
should be empty if everything went fine.
.. rst-class:: setup doc-aside
.. switcher::
.. code-block:: python
import requests
PROCESS_URL = "https://upgrade.odoo.com/database/v1/process"
fields = dict([
('request', '10534'),
('key', 'Aw7pItGVKFuZ_FOR3U8VFQ=='),
])
r = requests.get(PROCESS_URL, data=fields)
print(r.text)
.. code-block:: bash
PROCESS_URL="https://upgrade.odoo.com/database/v1/process"
KEY="Aw7pItGVKFuZ_FOR3U8VFQ=="
REQUEST_ID="10534"
URL_PARAMS="key=${KEY}&request=${REQUEST_ID}"
curl -sS "${PROCESS_URL}?${URL_PARAMS}"
.. _upgrade-api-skip-tests:
Asking to skip the tests
=========================
This action asks the Upgrade Platform to skip the tests for your request.
If you don't want Odoo to test and validate the migration, you can bypass the testing stage and directly get the migrated dump.
The ``skip_test`` method
------------------------
.. py:function:: https://upgrade.odoo.com/database/v1/skip_test
Skip the tests, deliver the upgraded dump, and set the state to 'delivered'
:param str key: (required) your private key
:param str request: (required) your request id
:return: request result
:rtype: JSON dictionary
The request id and the private key are obtained using the :ref:`create method
<upgrade-api-create-method>`
The result is a JSON dictionary containing the list of ``failures``, which
should be empty if everything went fine.
.. rst-class:: setup doc-aside
.. switcher::
.. code-block:: python
import requests
PROCESS_URL = "https://upgrade.odoo.com/database/v1/skip_test"
fields = dict([
('request', '10534'),
('key', 'Aw7pItGVKFuZ_FOR3U8VFQ=='),
])
r = requests.get(PROCESS_URL, data=fields)
print(r.text)
.. code-block:: bash
PROCESS_URL="https://upgrade.odoo.com/database/v1/skip_test"
KEY="Aw7pItGVKFuZ_FOR3U8VFQ=="
REQUEST_ID="10534"
URL_PARAMS="key=${KEY}&request=${REQUEST_ID}"
curl -sS "${PROCESS_URL}?${URL_PARAMS}"
.. _upgrade-api-status-method:
Obtaining your request status
=============================
This action ask the status of your database upgrade request.
The ``status`` method
---------------------
.. py:function:: https://upgrade.odoo.com/database/v1/status
Ask the status of a database upgrade request
:param str key: (required) your private key
:param str request: (required) your request id
:return: request result
:rtype: JSON dictionary
The request id and the private key are obtained using the :ref:`create method
<upgrade-api-create-method>`
The result is a JSON dictionary containing various information about your
database upgrade request.
.. rst-class:: setup doc-aside
.. switcher::
.. code-block:: python
import requests
PROCESS_URL = "https://upgrade.odoo.com/database/v1/status"
fields = dict([
('request', '10534'),
('key', 'Aw7pItGVKFuZ_FOR3U8VFQ=='),
])
r = requests.get(PROCESS_URL, data=fields)
print(r.text)
.. code-block:: bash
STATUS_URL="https://upgrade.odoo.com/database/v1/status"
KEY="Aw7pItGVKFuZ_FOR3U8VFQ=="
REQUEST_ID="10534"
URL_PARAMS="key=${KEY}&request=${REQUEST_ID}"
curl -sS "${STATUS_URL}?${URL_PARAMS}"
Sample output
-------------
The ``request`` key contains various useful information about your request:
``id``
the request id
``key``
your private key
``email``
the email address you supplied when creating the request
``target``
the target Odoo version you supplied when creating the request
``aim``
the purpose (test, production) of your database upgrade request you supplied when creating the request
``filename``
the filename you supplied when creating the request
``timezone``
the timezone you supplied when creating the request
``state``
the state of your request
``issue_stage``
the stage of the issue we have create on Odoo main server
``issue``
the id of the issue we have create on Odoo main server
``status_url``
the URL to access your database upgrade request html page
``notes_url``
the URL to get the notes about your database upgrade
``original_sql_url``
the URL used to get your uploaded (not upgraded) database as an SQL stream
``original_dump_url``
the URL used to get your uploaded (not upgraded) database as an archive file
``upgraded_sql_url``
the URL used to get your upgraded database as an SQL stream
``upgraded_dump_url``
the URL used to get your upgraded database as an archive file
``modules_url``
the URL used to get your custom modules
``filesize``
the size of your uploaded database file
``database_uuid``
the Unique ID of your database
``created_at``
the date when you created the request
``estimated_time``
an estimation of the time it takes to upgrade your database
``processed_at``
time when your database upgrade was started
``elapsed``
the time it takes to upgrade your database
``filestore``
your attachments were converted to the filestore
``customer_message``
an important message related to your request
``database_version``
the guessed Odoo version of your uploaded (not upgraded) database
``postgresql``
the guessed Postgresql version of your uploaded (not upgraded) database
``compressions``
the compression methods used by your uploaded database
.. rst-class:: setup doc-aside
.. switcher::
.. code-block:: json
{
"failures": [],
"request": {
"id": 10534,
"key": "Aw7pItGVKFuZ_FOR3U8VFQ==",
"email": "john.doe@example.com",
"target": "12.0",
"aim": "test",
"filename": "db_name.dump",
"timezone": null,
"state": "draft",
"issue_stage": "new",
"issue": 648398,
"status_url": "https://upgrade.odoo.com/database/eu1/10534/Aw7pItGVKFuZ_FOR3U8VFQ==/status",
"notes_url": "https://upgrade.odoo.com/database/eu1/10534/Aw7pItGVKFuZ_FOR3U8VFQ==/upgraded/notes",
"original_sql_url": "https://upgrade.odoo.com/database/eu1/10534/Aw7pItGVKFuZ_FOR3U8VFQ==/original/sql",
"original_dump_url": "https://upgrade.odoo.com/database/eu1/10534/Aw7pItGVKFuZ_FOR3U8VFQ==/original/archive",
"upgraded_sql_url": "https://upgrade.odoo.com/database/eu1/10534/Aw7pItGVKFuZ_FOR3U8VFQ==/upgraded/sql",
"upgraded_dump_url": "https://upgrade.odoo.com/database/eu1/10534/Aw7pItGVKFuZ_FOR3U8VFQ==/upgraded/archive",
"modules_url": "https://upgrade.odoo.com/database/eu1/10534/Aw7pItGVKFuZ_FOR3U8VFQ==/modules/archive",
"filesize": "912.99 Kb",
"database_uuid": null,
"created_at": "2018-09-09 07:13:49",
"estimated_time": null,
"processed_at": null,
"elapsed": "00:00",
"filestore": false,
"customer_message": null,
"database_version": null,
"postgresql": "9.4",
"compressions": [
"pgdmp_custom",
"sql"
]
}
}
.. _upgrade-api-download-method:
Downloading your database dump
==============================
Beside downloading your migrated database using the URL provided by the
:ref:`status method <upgrade-api-status-method>`, you can also use the SFTP
protocol as described in the :ref:`request_sftp_access method
<upgrade-api-request-sftp-access-method>`
The difference is that you'll only be able to download the migrated database. No
uploading will be possible.
Your database upgrade request should be in the ``done`` state.
Once you have successfully connected using your SFTP client, you can download
your database dump. Here is a sample session using the 'sftp' client:
::
$ sftp -P 2200 user_10534@upgrade.odoo.com
Connected to upgrade.odoo.com.
sftp> get upgraded_openchs.70.cdump /path/to/upgraded_openchs.70.cdump
Downloading /upgraded_openchs.70.cdump to /path/to/upgraded_openchs.70.cdump

View File

@@ -529,7 +529,7 @@ attributes:
allows to specify a particular field in order to manage it from the available measures, it's
main use is for hiding a field from the selectable measures:
- ``name`` (mandatory)
- ``name`` (required)
the name of the field to use in the view.
- ``string`` (optional)
the name that would be used to display the field in the cohort view, overrides the
@@ -1131,51 +1131,48 @@ The graph view is used to visualize aggregations over a number of records or
record groups. Its root element is ``<graph>`` which can take the following
attributes:
``type`` (optional)
``type``
one of ``bar`` (default), ``pie`` and ``line``, the type of graph to use
``stacked`` (optional)
only used for ``bar`` charts. Set to ``0`` to prevent the bars within a group
to be stacked initially.
``disable_linking`` (optional)
set to ``1`` to prevent from redirecting clicks on graph to list view
``order`` (optional)
``stacked``
only used for ``bar`` charts. If present and set to ``True``, stacks bars
within a group
``disable_linking``
set to ``True`` to prevent from redirecting clicks on graph to list view
``order``
if set, x-axis values will be sorted by default according their measure with
respect to the given order (``asc`` or ``desc``). Only used for ``bar`` and
``pie`` charts.
``string`` (optional)
string displayed in the breadcrumbs when redirecting to list view.
The only allowed element within a graph view is ``field`` which can have the
following attributes:
``name`` (mandatory)
``name`` (required)
the name of a field to use in the view. If used for grouping (rather
than aggregating)
``title`` (optional)
string displayed on the top of the graph.
``invisible`` (optional)
if true, the field will not appear either in the active measures nor in the
selectable measures.
``type`` (optional)
if set to ``measure``, the field will be used as an aggregated value within a
group instead of a grouping criteria. It only works for the last field
with that attribute but it is useful for other fields with string attribute
(see below).
``type``
indicates whether the field should be used as a grouping criteria or as an
aggregated value within a group. Possible values are:
``interval`` (optional)
``row`` (default)
groups by the specified field. All graph types support at least one level
of grouping, some may support more.
``col``
authorized in graph views but only used by pivot tables
``measure``
field to aggregate within a group
``interval``
on date and datetime fields, groups by the specified interval (``day``,
``week``, ``month``, ``quarter`` or ``year``) instead of grouping on the
specific datetime (fixed second resolution) or date (fixed day resolution).
Default is ``month``.
``string`` (optional)
only used for field with ``type="measure"``. The name that will be used to
display the field in the graph view, overrides the default python String
attribute of the field.
The measures are automatically generated from the model fields; only the
aggregatable fields are used. Those measures are also alphabetically
@@ -1984,11 +1981,11 @@ Pivot
The pivot view is used to visualize aggregations as a `pivot table`_. Its root
element is ``<pivot>`` which can take the following attributes:
``disable_linking`` (optional)
Set to ``1`` to remove table cell's links to list view.
``display_quantity`` (optional)
Set to ``1`` to display the Quantity column by default.
``default_order`` (optional)
``disable_linking``
Set to ``True`` to remove table cell's links to list view.
``display_quantity``
Set to ``true`` to display the Quantity column by default.
``default_order``
The name of the measure and the order (asc or desc) to use as default order
in the view.
@@ -2001,15 +1998,15 @@ element is ``<pivot>`` which can take the following attributes:
The only allowed element within a pivot view is ``field`` which can have the
following attributes:
``name`` (mandatory)
``name`` (required)
the name of a field to use in the view. If used for grouping (rather
than aggregating)
``string`` (optional)
``string``
the name that will be used to display the field in the pivot view,
overrides the default python String attribute of the field.
``type`` (optional)
``type``
indicates whether the field should be used as a grouping criteria or as an
aggregated value within a group. Possible values are:
@@ -2024,9 +2021,9 @@ following attributes:
``week``, ``month``, ``quarter`` or ``year``) instead of grouping on the
specific datetime (fixed second resolution) or date (fixed day resolution).
``invisible`` (optional)
if true, the field will not appear either in the active measures nor
in the selectable measures (useful for fields that do not make sense aggregated,
``invisible``
if true, the field will not appear either in the active measures nor in the
selectable measures (useful for fields that do not make sense aggregated,
such as fields in different units, e.g. € and $).
The measures are automatically generated from the model fields; only the

View File

@@ -32,9 +32,6 @@ contributing/documentation/guidelines.rst contributing/documentation/rst_guideli
administration/odoo_sh/documentation.rst administration/odoo_sh.rst # moved during doc-apocalypse (#945)
developer/webservices/upgrade.rst administration/maintain/db_upgrade.rst # removed incorrect page
developer/misc/api/upgrade.rst administration/maintain/db_upgrade.rst # removed incorrect page
support/user_doc.rst contributing/documentation/introduction_guide.rst # removed in forward-port of #544 (b109c3af)
contributing/documentation/introduction_guide.rst contributing/documentation.rst # flatten hierarchy: introduction_guide --> ../
@@ -239,25 +236,26 @@ administration/deployment/install.rst administration/install/install.rst
developer/webservices/iap.rst developer/misc/api/iap.rst
developer/webservices/odoo.rst developer/misc/api/odoo.rst
developer/webservices/upgrade.rst developer/misc/api/upgrade.rst
developer/webservices/localizations.rst developer/misc/i18n/localization.rst
developer/reference/translations.rst developer/misc/i18n/translations.rst
developer/reference/cmdline.rst developer/misc/other/cmdline.rst
developer/reference/guidelines.rst developer/misc/other/guidelines.rst
developer/reference/iot.rst developer/misc/other/iot.rst
developer/reference/actions.rst developer/reference/addons/actions.rst
developer/reference/data.rst developer/reference/addons/data.rst
developer/reference/http.rst developer/reference/addons/http.rst
developer/reference/mixins.rst developer/reference/addons/mixins.rst
developer/reference/module.rst developer/reference/addons/module.rst
developer/reference/orm.rst developer/reference/addons/orm.rst
developer/reference/reports.rst developer/reference/addons/reports.rst
developer/reference/security.rst developer/reference/addons/security.rst
developer/reference/testing.rst developer/reference/addons/testing.rst
developer/reference/views.rst developer/reference/addons/views.rst
developer/reference/javascript_cheatsheet.rst developer/reference/javascript/javascript_cheatsheet.rst
developer/reference/javascript_reference.rst developer/reference/javascript/javascript_reference.rst
developer/reference/mobile.rst developer/reference/javascript/mobile.rst
developer/reference/qweb.rst developer/reference/javascript/qweb.rst
developer/actions.rst developer/addons/actions.rst
developer/data.rst developer/addons/data.rst
developer/http.rst developer/addons/http.rst
developer/mixins.rst developer/addons/mixins.rst
developer/module.rst developer/addons/module.rst
developer/orm.rst developer/addons/orm.rst
developer/reports.rst developer/addons/reports.rst
developer/security.rst developer/addons/security.rst
developer/testing.rst developer/addons/testing.rst
developer/views.rst developer/addons/views.rst
developer/javascript_cheatsheet.rst developer/javascript/javascript_cheatsheet.rst
developer/javascript_reference.rst developer/javascript/javascript_reference.rst
developer/mobile.rst developer/javascript/mobile.rst
developer/qweb.rst developer/javascript/qweb.rst
services/support/supported_versions.rst administration/maintain/supported_versions.rst # services/support/* -> administration/maintain/*
@@ -278,5 +276,3 @@ purchase/replenishment/flows/compute_date.rst applications/inventory_and_mrp/inv
purchase/replenishment/flows/purchase_triggering.rst applications/inventory_and_mrp/purchase/products/reordering.rst # (#814)
purchase/replenishment/flows/setup_stock_rule.rst applications/inventory_and_mrp/purchase/products/reordering.rst # (#814)
purchase/replenishment/multicompany/setup.rst applications/general/multi_companies/manage_multi_companies.rst # (#814)
# Redirections introduced in 15.0 :

1
test.txt Normal file
View File

@@ -0,0 +1 @@
test