Compare commits
1 Commits
ray-odoo-p
...
master-tes
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
dba4ba5f39 | test |
1
.gitignore
vendored
|
|
@@ -4,6 +4,7 @@
|
|||
|
||||
# Sphinx build files
|
||||
_build/
|
||||
extensions/odoo_theme/static/style.css
|
||||
|
||||
# Dependencies
|
||||
odoo
|
||||
|
|
|
|||
21
Makefile
|
|
@@ -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/
|
||||
|
|
|
|||
14
README.md
|
|
@@ -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
|
|
@@ -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}.")
|
||||
|
|
|
|||
|
|
@@ -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.
|
||||
|
|
|
|||
|
|
@@ -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>`_
|
||||
|
|
@@ -15,7 +15,6 @@ Localizations
|
|||
localizations/france
|
||||
localizations/germany
|
||||
localizations/indonesia
|
||||
localizations/italy
|
||||
localizations/italy_IT
|
||||
localizations/mexico
|
||||
localizations/netherlands
|
||||
|
|
|
|||
|
|
@@ -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
|
||||
|
|
|
|||
|
|
@@ -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
|
||||
dell’indirizzo 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.
|
||||
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
|
@@ -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à l’interscambio 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 dell’applicazione, il profilo di clienti e
|
||||
fornitori, nell’applicazione 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
|
||||
dell’applicazione. Il momento che determina il formale invio della
|
||||
|
|
|
|||
|
|
@@ -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
|
||||
=============
|
||||
|
|
|
|||
|
|
@@ -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`
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
|
@@ -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.
|
||||
|
|
|
|||
|
|
@@ -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
|
||||
|
|
|
|||
|
|
@@ -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. |
|
||||
|
|
|
|||
|
|
@@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@@ -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 -->
|
||||
|
|
|
|||
|
|
@@ -9,3 +9,4 @@ API
|
|||
|
||||
api/odoo
|
||||
api/iap
|
||||
api/upgrade
|
||||
|
|
|
|||
|
|
@@ -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
|
||||
|
|
|
|||
655
content/developer/misc/api/upgrade.rst
Normal 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
|
||||
|
||||
|
|
@@ -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
|
||||
|
|
|
|||
|
|
@@ -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 :
|
||||
|
|
|
|||