Compare commits
1 Commits
tmp.master
...
master-doc
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f0548c755b |
[IMP] documentation: update many2many_binary widget
The widget now also display an image preview for the files of MIME type "image". A new option 'reverse_order' has been added to visually reverse the files order. |
1
.gitignore
vendored
|
|
@@ -2,7 +2,6 @@
|
|||
*.mo
|
||||
.*
|
||||
!.gitattributes
|
||||
!.weblate.json
|
||||
|
||||
# Sphinx build files
|
||||
_build/
|
||||
|
|
|
|||
152
.tx/config
Normal file
|
|
@@ -0,0 +1,152 @@
|
|||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:administration]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/administration.po
|
||||
source_file = locale/sources/administration.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = administration
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:applications]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/applications.po
|
||||
source_file = locale/sources/applications.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = applications
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:essentials]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/essentials.po
|
||||
source_file = locale/sources/essentials.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = essentials
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:finance]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/finance.po
|
||||
source_file = locale/sources/finance.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = finance
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:general]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/general.po
|
||||
source_file = locale/sources/general.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = general
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:hr]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/hr.po
|
||||
source_file = locale/sources/hr.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = hr
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:index]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/index.po
|
||||
source_file = locale/sources/index.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = index
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:inventory_and_mrp]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/inventory_and_mrp.po
|
||||
source_file = locale/sources/inventory_and_mrp.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = inventory_and_mrp
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:marketing]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/marketing.po
|
||||
source_file = locale/sources/marketing.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = marketing
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:productivity]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/productivity.po
|
||||
source_file = locale/sources/productivity.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = productivity
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:sales]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/sales.po
|
||||
source_file = locale/sources/sales.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = sales
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:services]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/services.po
|
||||
source_file = locale/sources/services.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = services
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:user_settings]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/settings.po
|
||||
source_file = locale/sources/settings.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = settings
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:studio]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/studio.po
|
||||
source_file = locale/sources/studio.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = studio
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:websites]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/websites.po
|
||||
source_file = locale/sources/websites.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = websites
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
|
@@ -1,76 +0,0 @@
|
|||
{
|
||||
"projects": {
|
||||
"odoo-19-doc": [
|
||||
{
|
||||
"name": "administration",
|
||||
"filemask": "locale/*/LC_MESSAGES/administration.po",
|
||||
"new_base": "locale/sources/administration.pot"
|
||||
},
|
||||
{
|
||||
"name": "applications",
|
||||
"filemask": "locale/*/LC_MESSAGES/applications.po",
|
||||
"new_base": "locale/sources/applications.pot"
|
||||
},
|
||||
{
|
||||
"name": "essentials",
|
||||
"filemask": "locale/*/LC_MESSAGES/essentials.po",
|
||||
"new_base": "locale/sources/essentials.pot"
|
||||
},
|
||||
{
|
||||
"name": "finance",
|
||||
"filemask": "locale/*/LC_MESSAGES/finance.po",
|
||||
"new_base": "locale/sources/finance.pot"
|
||||
},
|
||||
{
|
||||
"name": "general",
|
||||
"filemask": "locale/*/LC_MESSAGES/general.po",
|
||||
"new_base": "locale/sources/general.pot"
|
||||
},
|
||||
{
|
||||
"name": "hr",
|
||||
"filemask": "locale/*/LC_MESSAGES/hr.po",
|
||||
"new_base": "locale/sources/hr.pot"
|
||||
},
|
||||
{
|
||||
"name": "index",
|
||||
"filemask": "locale/*/LC_MESSAGES/index.po",
|
||||
"new_base": "locale/sources/index.pot"
|
||||
},
|
||||
{
|
||||
"name": "inventory_and_mrp",
|
||||
"filemask": "locale/*/LC_MESSAGES/inventory_and_mrp.po",
|
||||
"new_base": "locale/sources/inventory_and_mrp.pot"
|
||||
},
|
||||
{
|
||||
"name": "marketing",
|
||||
"filemask": "locale/*/LC_MESSAGES/marketing.po",
|
||||
"new_base": "locale/sources/marketing.pot"
|
||||
},
|
||||
{
|
||||
"name": "productivity",
|
||||
"filemask": "locale/*/LC_MESSAGES/productivity.po",
|
||||
"new_base": "locale/sources/productivity.pot"
|
||||
},
|
||||
{
|
||||
"name": "sales",
|
||||
"filemask": "locale/*/LC_MESSAGES/sales.po",
|
||||
"new_base": "locale/sources/sales.pot"
|
||||
},
|
||||
{
|
||||
"name": "services",
|
||||
"filemask": "locale/*/LC_MESSAGES/services.po",
|
||||
"new_base": "locale/sources/services.pot"
|
||||
},
|
||||
{
|
||||
"name": "studio",
|
||||
"filemask": "locale/*/LC_MESSAGES/studio.po",
|
||||
"new_base": "locale/sources/studio.pot"
|
||||
},
|
||||
{
|
||||
"name": "websites",
|
||||
"filemask": "locale/*/LC_MESSAGES/websites.po",
|
||||
"new_base": "locale/sources/websites.pot"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
11
Makefile
|
|
@@ -13,10 +13,6 @@ ifndef CURRENT_LANG
|
|||
CURRENT_LANG = en
|
||||
endif
|
||||
|
||||
ifndef EXPORT_PATH
|
||||
EXPORT_PATH = locale/sources
|
||||
endif
|
||||
|
||||
SPHINX_BUILD = sphinx-build
|
||||
CONFIG_DIR = .
|
||||
SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSION) \
|
||||
|
|
@@ -39,8 +35,6 @@ endif
|
|||
|
||||
#=== Standard rules ===#
|
||||
|
||||
.PHONY: all help clean html latexpdf gettext fast static test review
|
||||
|
||||
# In first position to build the documentation from scratch by default
|
||||
all: html
|
||||
|
||||
|
|
@@ -73,7 +67,7 @@ latexpdf:
|
|||
|
||||
gettext:
|
||||
@echo "Generating translatable files..."
|
||||
$(SPHINX_BUILD) -c $(CONFIG_DIR) -b gettext $(SOURCE_DIR) $(EXPORT_PATH)
|
||||
$(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
|
||||
|
|
@@ -95,8 +89,7 @@ static: $(HTML_BUILD_DIR)/_static/style.css
|
|||
test:
|
||||
@python tests/main.py $(SOURCE_DIR)/administration $(SOURCE_DIR)/applications $(SOURCE_DIR)/contributing $(SOURCE_DIR)/developer redirects
|
||||
|
||||
# Similar to `test`, but called only manually by content reviewers to specify a path and a max line
|
||||
# length.
|
||||
# Similar as `test`, but called only manually by content reviewers to trigger extra checks.
|
||||
review:
|
||||
@read -p "Enter relative content path: " path; read -p "Enter max line length (default: 100): " line_length; \
|
||||
if [ -z "$$path" ]; then echo "Error: Path cannot be empty"; exit 1; fi; \
|
||||
|
|
|
|||
77
README.md
|
|
@@ -1,67 +1,38 @@
|
|||
# Odoo documentation
|
||||
|
||||
## Build the documentation
|
||||
## Build the documentation locally
|
||||
|
||||
### Requirements
|
||||
|
||||
- [Git](https://git-scm.com/install)
|
||||
- [Python 3.10 to 3.14](https://www.python.org/downloads/).
|
||||
- Git
|
||||
- Python 3.6, 3.7, or 3.8
|
||||
- Python dependencies listed in the file `requirements.txt`.
|
||||
- Make
|
||||
- Python dependencies from `requirements.txt` (see instructions below)
|
||||
- A local copy of the [odoo/odoo](https://github.com/odoo/odoo) repository (optional)
|
||||
- A local copy of the [odoo/upgrade-util](https://github.com/odoo/upgrade-util) repository
|
||||
(optional)
|
||||
- A local copy of the [odoo/odoo repository](https://github.com/odoo/odoo) (optional)
|
||||
- A local copy of the [odoo/upgrade-util repository](https://github.com/odoo/upgrade-util) (optional)
|
||||
|
||||
### Quick start
|
||||
### Instructions
|
||||
|
||||
1. Create and activate a virtual environment.
|
||||
- On Linux and macOS: `python3 -m venv .venv && source .venv/bin/activate`
|
||||
- On Windows (PowerShell): `py3 -m venv .venv; .\.venv\Scripts\Activate.ps1`
|
||||
2. Install the Python dependencies: `pip install -r requirements.txt`
|
||||
3. Build the documentation: `make html` (see more commands with `make help`)
|
||||
4. Open `documentation/_build/html/index.html` in your web browser.
|
||||
1. In a terminal, navigate to the root directory of the documentation and build it `make`.
|
||||
Additional commands are available with `make help`.
|
||||
2. Open the file `documentation/_build/html/index.html` in your web browser.
|
||||
3. See [this guide](https://www.odoo.com/documentation/latest/contributing/documentation.html)
|
||||
for more detailed instructions.
|
||||
|
||||
### Additional build options
|
||||
|
||||
- `make fast` to build the documentation with a shallow menu (faster).
|
||||
- `make clean` to delete the build files.
|
||||
- `make test` to run the guidelines tests.
|
||||
- `make html CURRENT_LANG=fr` to build the documentation only in French.
|
||||
- `make html CURRENT_LANG=fr LANGUAGES=en,fr,de` to build the documentation in French and enable the
|
||||
language switcher, with the specified LANGUAGES as available languages. This command must be
|
||||
invoked for each CURRENT_LANG you want to build.
|
||||
- `make html VERSIONS=17.0,18.0,saas-18.4,19.0,master` to build the documentation in the **current
|
||||
version** and enable the version switcher, with the specified VERSIONS as available versions. This
|
||||
command must be invoked for each of the VERSIONS you want to build.
|
||||
|
||||
The list of available languages can be found in `conf.py`, in the `languages_names` variable.
|
||||
|
||||
When building the documentation for a specific language or version, the build files are created in
|
||||
`documentation/_build/html/<language>/`, `documentation/_build/html/<version>/` or
|
||||
`documentation/_build/html/<version>/<language>/`.
|
||||
|
||||
### Using local Odoo sources
|
||||
|
||||
If you have local checkouts of `odoo/odoo` and/or `odoo/upgrade-util`, place them either:
|
||||
- as siblings of this repository (in the parent directory), or
|
||||
- inside the `documentation` directory.
|
||||
|
||||
When present in one of these locations, the build will include Python docstrings from those
|
||||
repositories if their version matches the documentation's version.
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
- Verify your Python version: `python3 --version` (must be 3.10–3.14)
|
||||
- Ensure your virtual environment is active and dependencies are installed.
|
||||
- If you have made changes to the file structure, try `make clean` before building.
|
||||
- If the language or version switchers redirect to a missing file, check that you have built the
|
||||
documentation for all available languages and versions.
|
||||
- The "Developer" documentation is only available in English.
|
||||
Optional: place your local copy of the `odoo/odoo` and `odoo/upgrade-util` repositories in
|
||||
the parent directory or in the root directory of the documentation to build the latter
|
||||
with the documented Python docstrings.
|
||||
|
||||
## Contribute to the documentation
|
||||
|
||||
For contributions to the content of the documentation, see the
|
||||
For contributions to the content of the documentation, please refer to the
|
||||
[Introduction Guide](https://www.odoo.com/documentation/latest/contributing/documentation.html).
|
||||
|
||||
To report a content issue, request new content, or ask a question, use the
|
||||
[issue tracker](https://github.com/odoo/documentation/issues).
|
||||
To **report a content issue**, **request new content** or **ask a question**, use the
|
||||
[repository's issue tracker](https://github.com/odoo/documentation/issues).
|
||||
|
||||
## Learn More
|
||||
|
||||
To learn more about Odoo, in addition to the documentation, have a look at
|
||||
[the official eLearning](https://odoo.com/slides) and
|
||||
[Scale-up, The Business Game](https://www.odoo.com/page/scale-up-business-game).
|
||||
|
|
|
|||
148
conf.py
|
|
@@ -21,7 +21,7 @@ copyright = 'Odoo S.A.'
|
|||
|
||||
# `version` is the version info for the project being documented, acts as replacement for |version|,
|
||||
# also used in various other places throughout the built documents.
|
||||
# `release` is the full version, including a/b/rc tags. Acts as replacement for |release|.
|
||||
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
|
||||
version = release = 'master'
|
||||
|
||||
# `current_branch` is the technical name of the current branch.
|
||||
|
|
@@ -82,7 +82,6 @@ source_read_replace_vals = {
|
|||
'CURRENT_MAJOR_VERSION': current_major_version,
|
||||
'GITHUB_PATH': f'https://github.com/odoo/odoo/blob/{version}',
|
||||
'GITHUB_ENT_PATH': f'https://github.com/odoo/enterprise/blob/{version}',
|
||||
'GITHUB_TUTO_PATH': f'https://github.com/odoo/tutorials/blob/{current_major_branch}',
|
||||
'OWL_PATH': f'https://github.com/odoo/owl/blob/master',
|
||||
}
|
||||
|
||||
|
|
@@ -117,7 +116,7 @@ else:
|
|||
odoo.addons.__path__.append(str(odoo_dir) + '/addons')
|
||||
from odoo import release as odoo_release # Don't collide with Sphinx's 'release' config option
|
||||
odoo_version = '.'.join(str(s) for s in odoo_release.version_info[:2]).replace('~', '-') # Change saas~XX.Y to saas-XX.Y
|
||||
odoo_version = 'master' if odoo_release.ALPHA in odoo_release.version_info else odoo_version
|
||||
odoo_version = 'master' if 'alpha' in odoo_release.version else odoo_version
|
||||
if release != odoo_version:
|
||||
_logger.warning(
|
||||
"Found Odoo sources in %(directory)s but with version '%(odoo_version)s' incompatible "
|
||||
|
|
@@ -212,9 +211,9 @@ extensions.append('sphinx.ext.graphviz' if shutil.which('dot') else 'graphviz_pl
|
|||
todo_include_todos = False
|
||||
|
||||
intersphinx_mapping = {
|
||||
'python': ('https://docs.python.org/3/', '../invs/python.inv'),
|
||||
# apparently local inventories are relative to the source dir?
|
||||
'werkzeug': ('https://werkzeug.palletsprojects.com/', '../invs/werkzeug.inv'),
|
||||
'pillow': ('https://pillow.readthedocs.io/en/stable/', None),
|
||||
'python': ('https://docs.python.org/3/', None),
|
||||
'werkzeug': ('https://werkzeug.palletsprojects.com/en/2.3.x/', None),
|
||||
}
|
||||
|
||||
github_user = 'odoo'
|
||||
|
|
@@ -228,21 +227,20 @@ sphinx.transforms.i18n.docname_to_domain = (
|
|||
sphinx.util.i18n.docname_to_domain
|
||||
) = lambda docname, compact: docname.split('/')[1 if docname.startswith('applications/') else 0]
|
||||
|
||||
# The labels used in the version switcher to show the versions provided with the `versions` config
|
||||
# option. If a provided version has no label, the version string is used as label.
|
||||
# The version names that should be shown in the version switcher, if the config option `versions`
|
||||
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
|
||||
versions_names = {
|
||||
'master': "Master",
|
||||
'19.0': "Odoo 19",
|
||||
'saas-18.4': "Odoo 18.4",
|
||||
'saas-18.3': "Odoo 18.3",
|
||||
'saas-18.2': "Odoo 18.2",
|
||||
'18.0': "Odoo 18",
|
||||
'saas-17.4': "Odoo Online",
|
||||
'saas-17.2': "Odoo Online",
|
||||
'17.0': "Odoo 17",
|
||||
'16.0': "Odoo 16",
|
||||
'15.0': "Odoo 15",
|
||||
}
|
||||
|
||||
# The labels used in the language switcher to show the languages provided with the `languages`
|
||||
# config option. If a provided language code has no label, the upper-cased code is used as label.
|
||||
# The language names that should be shown in the language switcher, if the config option `languages`
|
||||
# is populated. If a language is passed to `languages` but is not listed here, it will not be shown.
|
||||
languages_names = {
|
||||
'de': 'DE',
|
||||
'en': 'EN',
|
||||
|
|
@@ -331,31 +329,29 @@ latex_documents = [
|
|||
'terms_of_sale.tex', 'Odoo Terms of Sale', '', 'howto'),
|
||||
|
||||
('legal/terms/i18n/enterprise_tex_fr', 'odoo_enterprise_agreement_fr.tex',
|
||||
"Contrat d'Abonnement Odoo Enterprise", '', 'howto'),
|
||||
'Odoo Enterprise Subscription Agreement (FR)', '', 'howto'),
|
||||
('legal/terms/i18n/partnership_tex_fr',
|
||||
'odoo_partnership_agreement_fr.tex', 'Contrat de Partenariat Odoo', '', 'howto'),
|
||||
'odoo_partnership_agreement_fr.tex', 'Odoo Partnership Agreement (FR)', '', 'howto'),
|
||||
('legal/terms/i18n/terms_of_sale_fr', 'terms_of_sale_fr.tex',
|
||||
'Conditions Générales de Vente Odoo', '', 'howto'),
|
||||
|
||||
('legal/terms/i18n/enterprise_tex_nl', 'odoo_enterprise_agreement_nl.tex',
|
||||
'Odoo Enterprise Abonnementsovereenkomst', '', 'howto'),
|
||||
'Odoo Enterprise Subscription Agreement (NL)', '', 'howto'),
|
||||
|
||||
('legal/terms/i18n/enterprise_tex_de', 'odoo_enterprise_agreement_de.tex',
|
||||
'Odoo Enterprise Abonnementsvertrag', '', 'howto'),
|
||||
'Odoo Enterprise Subscription Agreement (DE)', '', 'howto'),
|
||||
('legal/terms/i18n/terms_of_sale_de', 'terms_of_sale_de.tex',
|
||||
'Allgemeine Verkaufsbedingungen Odoo', '', 'howto'),
|
||||
|
||||
('legal/terms/i18n/enterprise_tex_es', 'odoo_enterprise_agreement_es.tex',
|
||||
'Acuerdo de suscripción de Odoo Enterprise', '', 'howto'),
|
||||
'Odoo Enterprise Subscription Agreement (ES)', '', 'howto'),
|
||||
('legal/terms/i18n/partnership_tex_es',
|
||||
'odoo_partnership_agreement_es.tex', 'Acuerdo de Colaboración de Odoo', '', 'howto'),
|
||||
'odoo_partnership_agreement_es.tex', 'Odoo Partnership Agreement (ES)', '', 'howto'),
|
||||
('legal/terms/i18n/terms_of_sale_es', 'terms_of_sale_es.tex',
|
||||
'Términos Generales de Venta Odoo', '', 'howto'),
|
||||
|
||||
('legal/terms/i18n/enterprise_tex_pt_BR', 'odoo_enterprise_agreement_pt_BR.tex',
|
||||
'Contrato de Assinatura do Odoo Enterprise', '', 'howto'),
|
||||
('legal/terms/i18n/terms_of_sale_pt_BR', 'terms_of_sale_pt_BR.tex',
|
||||
'Termos Gerais de Venda Odoo', '', 'howto'),
|
||||
'Odoo Enterprise Subscription Agreement (PT)', '', 'howto'),
|
||||
]
|
||||
|
||||
# List of languages that have legal translations (excluding EN). The keys must be in
|
||||
|
|
@@ -386,18 +382,6 @@ def source_read_replace(app, docname, source):
|
|||
result = result.replace(f"{{{key}}}", app.config.source_read_replace_vals[key])
|
||||
source[0] = result
|
||||
|
||||
def upgrade_util_signature_rewrite(app, domain, objtype, contentnode):
|
||||
# Same as add_module_names=False but **only** for odoo.upgrade.util functions or classes
|
||||
signature = contentnode.parent[0]
|
||||
if objtype == 'function' and signature.astext().startswith(('odoo.upgrade.util.', 'odoo.upgrade.testing.')):
|
||||
# <odoo.upgrade.util.modules>, <modules_installed>, <(cr, *modules)>
|
||||
# <odoo.upgrade.testing>, <change_version>, <(version_str)>
|
||||
signature.pop(0)
|
||||
if objtype == 'class' and signature.astext().startswith(('class odoo.upgrade.util.', 'class odoo.upgrade.testing.')):
|
||||
# <class >, <odoo.upgrade.util.pg.>, <PGRegexp>
|
||||
# <class >, <odoo.upgrade.testing.>, <UpgradeCase>
|
||||
signature.pop(1)
|
||||
|
||||
def setup(app):
|
||||
# Generate all alternate URLs for each document
|
||||
app.add_config_value('project_root', None, 'env')
|
||||
|
|
@@ -407,7 +391,6 @@ def setup(app):
|
|||
app.add_config_value('is_remote_build', None, 'env') # Whether the build is remotely deployed
|
||||
app.add_config_value('source_read_replace_vals', {}, 'env')
|
||||
app.connect('source-read', source_read_replace)
|
||||
app.connect('object-description-transform', upgrade_util_signature_rewrite)
|
||||
# TODO uncomment after moving to >= v7.2.5 to also substitute placeholders in included files.
|
||||
# See https://github.com/sphinx-doc/sphinx/commit/ff1831
|
||||
# app.connect('include-read', source_read_replace)
|
||||
|
|
@@ -447,7 +430,7 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
|
|||
- The language switcher and related link tags
|
||||
"""
|
||||
|
||||
def canonicalize():
|
||||
def _canonicalize():
|
||||
""" Add the canonical URL for the current document in the rendering context.
|
||||
|
||||
The canonical version is the last released version of the documentation.
|
||||
|
|
@@ -459,93 +442,94 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
|
|||
- /documentation/11.0/fr/website.html -> canonical = /documentation/14.0/fr/website.html
|
||||
"""
|
||||
# If the canonical version is not set, assume that the project has a single version
|
||||
canonical_version_ = app.config.canonical_version or app.config.version
|
||||
canonical_lang_ = 'en' # Always 'en'. Don't take the value of the config option.
|
||||
context['canonical'] = build_url(version_=canonical_version_, lang_=canonical_lang_)
|
||||
_canonical_version = app.config.canonical_version or app.config.version
|
||||
_canonical_lang = 'en' # Always 'en'. Don't take the value of the config option.
|
||||
context['canonical'] = _build_url(_version=_canonical_version, _lang=_canonical_lang)
|
||||
|
||||
def versionize():
|
||||
def _versionize():
|
||||
""" Add the pairs of (version, url) for the current document in the rendering context.
|
||||
|
||||
The entry 'version' is added by Sphinx in the rendering context.
|
||||
"""
|
||||
context['version_display_name'] = versions_names.get(version, version)
|
||||
context['version_display_name'] = versions_names[version]
|
||||
|
||||
# If the list of versions is not set, assume the project has no alternate version.
|
||||
provided_versions_ = app.config.versions and app.config.versions.split(',') or []
|
||||
# If the list of versions is not set, assume the project has no alternate version
|
||||
_provided_versions = app.config.versions and app.config.versions.split(',') or []
|
||||
|
||||
# Map alternate versions to their display names and URLs.
|
||||
context['alternate_versions'] = []
|
||||
for alternate_version_ in reversed(provided_versions_): # Reverse to show latest first.
|
||||
if alternate_version_ != version:
|
||||
display_name_ = versions_names.get(alternate_version_, alternate_version_)
|
||||
context['alternate_versions'].append((display_name_, build_url(alternate_version_)))
|
||||
for _alternate_version, _display_name in versions_names.items():
|
||||
if _alternate_version in _provided_versions and _alternate_version != version:
|
||||
context['alternate_versions'].append(
|
||||
(_display_name, _build_url(_alternate_version))
|
||||
)
|
||||
|
||||
def localize():
|
||||
def _localize():
|
||||
""" Add the pairs of (lang, code, url) for the current document in the rendering context.
|
||||
|
||||
E.g.: ('French', 'fr', 'https://.../fr_BE/...')
|
||||
|
||||
The entry 'language' is added by Sphinx in the rendering context.
|
||||
"""
|
||||
current_lang_ = app.config.language or 'en'
|
||||
_current_lang = app.config.language or 'en'
|
||||
# Replace the context value by its upper-cased value ("FR" instead of "fr")
|
||||
context['language'] = languages_names.get(current_lang_, current_lang_.upper())
|
||||
context['language_code'] = current_lang_
|
||||
context['language'] = languages_names.get(_current_lang, _current_lang.upper())
|
||||
context['language_code'] = _current_lang
|
||||
|
||||
# If the list of languages is not set, assume that the project has no alternate language
|
||||
provided_languages_ = app.config.languages and app.config.languages.split(',') or []
|
||||
_provided_languages = app.config.languages and app.config.languages.split(',') or []
|
||||
|
||||
# Map alternate languages to their display names and URLs.
|
||||
context['alternate_languages'] = []
|
||||
for alternate_lang_ in provided_languages_:
|
||||
if alternate_lang_ != current_lang_:
|
||||
display_name_ = languages_names.get(alternate_lang_, alternate_lang_.upper())
|
||||
for _alternate_lang, _display_name in languages_names.items():
|
||||
if _alternate_lang in _provided_languages and _alternate_lang != _current_lang:
|
||||
context['alternate_languages'].append(
|
||||
(
|
||||
display_name_,
|
||||
alternate_lang_.split('_')[0] if alternate_lang_ != 'en' else 'x-default',
|
||||
build_url(lang_=alternate_lang_),
|
||||
_display_name,
|
||||
_alternate_lang.split('_')[0] if _alternate_lang != 'en' else 'x-default',
|
||||
_build_url(_lang=_alternate_lang),
|
||||
)
|
||||
)
|
||||
|
||||
# Dynamic generation of localized legal doc links
|
||||
context['legal_translations'] = legal_translations
|
||||
|
||||
def build_url(version_=None, lang_=None):
|
||||
|
||||
def _build_url(_version=None, _lang=None):
|
||||
if app.config.is_remote_build:
|
||||
# Project root like https://www.odoo.com/documentation
|
||||
root_ = app.config.project_root
|
||||
_root = app.config.project_root
|
||||
else:
|
||||
# Project root like .../documentation/_build/html/14.0/fr
|
||||
root_ = re.sub(rf'(/{app.config.version})?(/{app.config.language})?$', '', app.outdir)
|
||||
_root = re.sub(rf'(/{app.config.version})?(/{app.config.language})?$', '', app.outdir)
|
||||
# If the canonical version is not set, assume that the project has a single version
|
||||
canonical_version_ = app.config.canonical_version or app.config.version
|
||||
version_ = version_ or app.config.version
|
||||
lang_ = lang_ or app.config.language or 'en'
|
||||
canonical_page_ = f'{pagename}.html'
|
||||
_canonical_version = app.config.canonical_version or app.config.version
|
||||
_version = _version or app.config.version
|
||||
_lang = _lang or app.config.language or 'en'
|
||||
_canonical_page = f'{pagename}.html'
|
||||
|
||||
# legal translations have different URLs schemes as they are not managed on transifex
|
||||
# e.g. FR translation of /terms/enterprise => /fr/terms/enterprise_fr
|
||||
if pagename.startswith('legal/terms/'):
|
||||
if lang_ in legal_translations and not pagename.endswith(f"_{lang_}"):
|
||||
if _lang in legal_translations and not pagename.endswith(f"_{_lang}"):
|
||||
# remove language code for current translation, set target one
|
||||
page_ = re.sub("_[a-z]{2}$", "", pagename)
|
||||
if 'terms/i18n' not in page_:
|
||||
page_ = page_.replace("/terms/", "/terms/i18n/")
|
||||
canonical_page_ = f'{page_}_{lang_}.html'
|
||||
elif lang_ == 'en' and pagename.endswith(tuple(f"_{l}" for l in legal_translations)):
|
||||
_page = re.sub("_[a-z]{2}$", "", pagename)
|
||||
if 'terms/i18n' not in _page:
|
||||
_page = _page.replace("/terms/", "/terms/i18n/")
|
||||
_canonical_page = f'{_page}_{_lang}.html'
|
||||
elif _lang == 'en' and pagename.endswith(tuple(f"_{l}" for l in legal_translations)):
|
||||
# remove language code for current translation, link to original EN one
|
||||
page_ = re.sub("_[a-z]{2}$", "", pagename)
|
||||
canonical_page_ = f'{page_.replace("/i18n/", "/")}.html'
|
||||
_page = re.sub("_[a-z]{2}$", "", pagename)
|
||||
_canonical_page = f'{_page.replace("/i18n/", "/")}.html'
|
||||
|
||||
if app.config.is_remote_build:
|
||||
canonical_page_ = canonical_page_.replace('index.html', '')
|
||||
_canonical_page = _canonical_page.replace('index.html', '')
|
||||
|
||||
return f'{root_}' \
|
||||
f'{f"/{version_}" if app.config.versions else ""}' \
|
||||
f'{f"/{lang_}" if lang_ != "en" else ""}' \
|
||||
f'/{canonical_page_}'
|
||||
return f'{_root}' \
|
||||
f'{f"/{_version}" if app.config.versions else ""}' \
|
||||
f'{f"/{_lang}" if _lang != "en" else ""}' \
|
||||
f'/{_canonical_page}'
|
||||
|
||||
canonicalize()
|
||||
versionize()
|
||||
localize()
|
||||
_canonicalize()
|
||||
_versionize()
|
||||
_localize()
|
||||
|
|
|
|||
|
|
@@ -23,7 +23,7 @@ To Odoo Online
|
|||
#. Create a :ref:`duplicate of the database <on-premise/duplicate>`.
|
||||
#. In this duplicate, uninstall all **non-standard apps**.
|
||||
#. Use the database manager to grab a *dump with filestore*.
|
||||
#. `Create a support ticket <https://www.odoo.com/help-form>`_ including the following:
|
||||
#. `Submit a support ticket <https://www.odoo.com/help>`_ including the following:
|
||||
|
||||
- your **subscription number**,
|
||||
- the **URL** you want to use for the database (e.g., `company.odoo.com`), and
|
||||
|
|
@@ -33,14 +33,14 @@ To Odoo Online
|
|||
issues during the process, Odoo might contact you.
|
||||
|
||||
.. note::
|
||||
If you have time constraints, `create a support ticket <https://www.odoo.com/help-form>`_ as soon
|
||||
as possible to schedule the transfer.
|
||||
If you have time constraints, `submit a support ticket <https://www.odoo.com/help>`_ as soon as
|
||||
possible to schedule the transfer.
|
||||
|
||||
To Odoo.sh
|
||||
----------
|
||||
|
||||
Follow the instructions found in :ref:`the Import a database section <odoo-sh/create/import>` of the
|
||||
Odoo.sh *Create a project* documentation.
|
||||
Follow the instructions found in :ref:`the Import your database section
|
||||
<odoo_sh_import_your_database>` of the Odoo.sh *Create your project* documentation.
|
||||
|
||||
Transferring an Odoo Online database
|
||||
====================================
|
||||
|
|
@@ -56,20 +56,19 @@ Transferring an Odoo Online database
|
|||
17.0.
|
||||
|
||||
.. tip::
|
||||
Click the :icon:`fa-gear` (:guilabel:`gear`) button next to the database name on the `Odoo
|
||||
Online database manager <https://www.odoo.com/my/databases/>`_ to display its version number.
|
||||
Click the gear icon (:guilabel:`⚙`) next to the database name on the `Odoo Online database
|
||||
manager <https://www.odoo.com/my/databases/>`_ to display its version number.
|
||||
|
||||
.. warning::
|
||||
If there is an active Odoo subscription linked to the database being migrated, reach out to
|
||||
the Customer Service Manager or `contact Odoo support <https://www.odoo.com/help>`_ to
|
||||
the Customer Service Manager or `submit a support ticket <https://www.odoo.com/help>`_ to
|
||||
complete the subscription transfer.
|
||||
|
||||
To on-premise
|
||||
-------------
|
||||
|
||||
#. Download a database backup by signing in to `the Odoo Online database manager
|
||||
<https://www.odoo.com/my/databases/>`_, clicking the :icon:`fa-gear` (:guilabel:`gear`) button
|
||||
next to the database name, then selecting :icon:`fa-cloud-download` :guilabel:`Download`. If the
|
||||
#. Sign in to `the Odoo Online database manager <https://www.odoo.com/my/databases/>`_ and click the
|
||||
gear icon (:guilabel:`⚙`) next to the database name to :guilabel:`Download` a backup. If the
|
||||
download fails due to the file being too large, `contact Odoo support
|
||||
<https://www.odoo.com/help>`_.
|
||||
#. Restore the database from the database manager on your local server using the backup.
|
||||
|
|
@@ -77,13 +76,12 @@ To on-premise
|
|||
To Odoo.sh
|
||||
----------
|
||||
|
||||
#. Download a database backup by signing in to `the Odoo Online database manager
|
||||
<https://www.odoo.com/my/databases/>`_, clicking the :icon:`fa-gear` (:guilabel:`gear`) button
|
||||
next to the database name, then selecting :icon:`fa-cloud-download` :guilabel:`Download`. If the
|
||||
#. Sign in to `the Odoo Online database manager <https://www.odoo.com/my/databases/>`_ and click the
|
||||
gear icon (:guilabel:`⚙`) next to the database name to :guilabel:`Download` a backup. If the
|
||||
download fails due to the file being too large, `contact Odoo support
|
||||
<https://www.odoo.com/help>`_.
|
||||
#. Follow the instructions found in :ref:`the Import a database section <odoo-sh/create/import>` of
|
||||
the Odoo.sh *Create a project* documentation.
|
||||
#. Follow the instructions found in :ref:`the Import your database section
|
||||
<odoo_sh_import_your_database>` of the Odoo.sh *Create your project* documentation.
|
||||
|
||||
Transferring an Odoo.sh database
|
||||
================================
|
||||
|
|
@@ -95,7 +93,7 @@ To Odoo Online
|
|||
Odoo Online is *not* compatible with **non-standard apps**.
|
||||
|
||||
#. Uninstall all **non-standard apps** in a staging build before doing it in the production build.
|
||||
#. `Create a support ticket <https://www.odoo.com/help-form>`_ including the following:
|
||||
#. `Create a support ticket <https://www.odoo.com/help>`_ including the following:
|
||||
|
||||
- your **subscription number**,
|
||||
- the **URL** you want to use for the database (e.g., `company.odoo.com`),
|
||||
|
|
@@ -108,8 +106,8 @@ To Odoo Online
|
|||
issues during the process, Odoo might contact you.
|
||||
|
||||
.. note::
|
||||
- If you have time constraints, `create a support ticket <https://www.odoo.com/help-form>`_ as
|
||||
soon as possible to schedule the transfer.
|
||||
- If you have time constraints, `submit a support ticket <https://www.odoo.com/help>`_ as soon as
|
||||
possible to schedule the transfer.
|
||||
- Select the **region** closest to most of your users to reduce latency.
|
||||
- Future **administrator(s)** must have an Odoo.com account.
|
||||
- The **date and time** you want the database to be up and running are helpful to organize the
|
||||
|
|
@@ -119,5 +117,5 @@ To Odoo Online
|
|||
To on-premise
|
||||
-------------
|
||||
|
||||
#. Download a :ref:`backup of your Odoo.sh production database <odoo-sh/branches/tabs/backups>`.
|
||||
#. Download a :ref:`backup of your Odoo.sh production database <odoo_sh_branches_backups>`.
|
||||
#. Restore the database from the database manager on your local server using the backup.
|
||||
|
|
|
|||
|
|
@@ -62,6 +62,6 @@ The Odoo mobile apps are available for download on the `Google Play Store
|
|||
<https://apps.apple.com/app/odoo/id1272543640>`_.
|
||||
|
||||
.. important::
|
||||
The iOS app might not be updated and might be deprecated at some point in the future.
|
||||
The iOS app cannot be updated and will be deprecated at some point in the future.
|
||||
|
||||
While the store apps support multi-accounts, they are not compatible with SSO authentication.
|
||||
While the store apps support multi-accounts, they are not compatible with SS0 authentication.
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
|
@@ -1,57 +1,80 @@
|
|||
================
|
||||
Odoo.com account
|
||||
================
|
||||
=================
|
||||
Odoo.com accounts
|
||||
=================
|
||||
|
||||
Open the `Connection & Security page <https://www.odoo.com/my/security>`_ on your Odoo.com account
|
||||
portal to:
|
||||
This documentation is dedicated to edits made to an Odoo.com account. The following processes
|
||||
describe how to delete an Odoo.com account, and how to change the password on an Odoo.com account.
|
||||
|
||||
- Change your :guilabel:`Password`.
|
||||
Delete Odoo.com account
|
||||
=======================
|
||||
|
||||
.. note::
|
||||
- When you create a database, a user linked to your Odoo.com account is generated on the
|
||||
database. Changing your Odoo.com account's password will also modify the password used to
|
||||
sign in with that user to the database.
|
||||
- You can set a database-specific password for that user by going to the :ref:`database's
|
||||
settings <users/change-password>`. However, you will still be able to sign in with your
|
||||
Odoo.com account's password.
|
||||
To delete an Odoo.com account, start by clicking the profile icon in the upper-right corner
|
||||
(represented by the username and icon) to reveal a drop-down menu. From the drop-down menu, select
|
||||
:guilabel:`My Odoo.com account`, which reveals the user portal.
|
||||
|
||||
- Enable :guilabel:`Two-factor authentication` using an authenticator app.
|
||||
From the user portal, the delete option can be accessed by going to :menuselection:`My Account -->
|
||||
Edit Security Settings --> Delete Account`. It can also be accessed by going to
|
||||
`https://www.odoo.com/my/home <https://www.odoo.com/my/home>`_.
|
||||
|
||||
.. seealso::
|
||||
Refer to the :doc:`Two-factor authentication documentation <../applications/general/users/2fa>`
|
||||
for more information. The process to enable it for a database user and for your Odoo.com
|
||||
account is similar.
|
||||
.. danger::
|
||||
Deleting an Odoo account is irreversible. Be careful performing this action, as the Odoo.com
|
||||
account is **not** retrievable once deleted.
|
||||
|
||||
- :guilabel:`Log out from all devices` signed in to your Odoo.com account, except for the current
|
||||
session.
|
||||
Upon clicking the :guilabel:`Delete Account` button, a pop-up window appears, requesting
|
||||
confirmation for the account deletion.
|
||||
|
||||
.. tip::
|
||||
To log out from the current session, click the :icon:`fa-user-circle-o` (:guilabel:`user`)
|
||||
icon in the top right and select :icon:`fa-sign-out` :guilabel:`Logout`.
|
||||
.. image:: odoo_account/delete-account.png
|
||||
:align: center
|
||||
:alt: Clicking on the Delete Account button will populate a window verifying the change.
|
||||
|
||||
- Enable :ref:`developer mode <developer-mode>` to add a :ref:`developer API key
|
||||
<api/external_api/keys>`.
|
||||
To confirm the deletion, enter the :guilabel:`Password` and the :guilabel:`Login` for the account
|
||||
being deleted. Then, click the :guilabel:`Delete Account` button to confirm the deletion.
|
||||
|
||||
- :guilabel:`Delete` your account.
|
||||
.. _odoocom/change_password:
|
||||
|
||||
.. danger::
|
||||
Deleting your Odoo.com account is **irreversible**. Once deleted, your account **cannot be
|
||||
retrieved**.
|
||||
Odoo.com account password change
|
||||
================================
|
||||
|
||||
Open the `Account Information page <https://www.odoo.com/my/account>`_ to edit your account details,
|
||||
including your **email address**.
|
||||
To change an Odoo.com account password, first login into the Odoo.com user account from the Odoo.com
|
||||
login page. After logging-in, go to the upper-right corner of the screen, and click the :guilabel:`▼
|
||||
(down arrow)` icon next to the profile icon. Then, select :guilabel:`My Account`, and a portal
|
||||
dashboard appears.
|
||||
|
||||
To change the Odoo.com password, click on the :guilabel:`Edit Security Settings` link, below the
|
||||
:menuselection:`Account Security` section. Next, make the necessary changes by typing in the current
|
||||
:guilabel:`Password`, :guilabel:`New Password`, and verify the new password. Lastly, click on
|
||||
:guilabel:`Change Password` to complete the password change.
|
||||
|
||||
.. note::
|
||||
- When you create a database, a user linked to your Odoo.com account is generated on the
|
||||
database. Changing your Odoo.com account's email address does not modify the email address used
|
||||
to sign in with that user.
|
||||
- You can set a database-specific email address for that user by clicking your avatar in the
|
||||
top-right corner of the database and selecting :guilabel:`My Preferences`. You will still need
|
||||
to sign in to the database using the email address used at the time of the database creation.
|
||||
- To change the email address used to sign in to a database, `contact Odoo Support
|
||||
<https://www.odoo.com/help>`_.
|
||||
If a customer would like to change the login, contact Odoo support `here
|
||||
<https://www.odoo.com/help>`_.
|
||||
|
||||
.. tip::
|
||||
In addition to the database you create, all databases you are :ref:`invited to join
|
||||
<users/add-individual>` with your Odoo.com account's email address will be displayed under the
|
||||
`database manager <https://www.odoo.com/my/databases>`_.
|
||||
.. note::
|
||||
Passwords for Odoo.com users and portal users remain separate, even if the same email address is
|
||||
used.
|
||||
|
||||
Add two-factor authentication
|
||||
=============================
|
||||
|
||||
To add two-factor authentication, login into the Odoo.com user account from the Odoo.com login page.
|
||||
After logging-in, go to the upper-right corner of the screen, and click the :guilabel:`▼ (down
|
||||
arrow)` icon next to the :guilabel:`profile icon`. Then, select :guilabel:`My Account`, and a portal
|
||||
dashboard appears.
|
||||
|
||||
If the user would like to turn on two-factor authentication (2FA) for Odoo.com access, click on the
|
||||
:guilabel:`Edit Security Settings` link below the :menuselection:`Account Security` section.
|
||||
|
||||
Click on :guilabel:`Enable two-factor authentication` to turn on :abbr:`2FA (two-factor
|
||||
authentication)`. Then, confirm the current password in the :guilabel:`Password` field. Next, click
|
||||
on :guilabel:`Confirm Password`. Following that, activate :abbr:`2FA (two-factor authentication)` in
|
||||
a :abbr:`2FA (two-factor authentication)` app (Google Authenticator, Authy, etc.), by scanning the
|
||||
:guilabel:`QR code` or entering a :guilabel:`Verification Code`.
|
||||
|
||||
Finally, click on :guilabel:`Enable two-factor authentication` to complete the setup.
|
||||
|
||||
.. note::
|
||||
Under :guilabel:`My Account` Odoo.com users can also access the following:
|
||||
|
||||
- :guilabel:`My Partner dashboard`
|
||||
- :guilabel:`My In-App Services`
|
||||
- :guilabel:`My Apps Dashboard`
|
||||
|
|
|
|||
|
|
@@ -2,179 +2,150 @@
|
|||
Odoo Online
|
||||
===========
|
||||
|
||||
`Odoo Online <https://www.odoo.com/trial>`_ offers private databases hosted and managed by Odoo.
|
||||
Odoo Online databases can be accessed using any web browser and do not require a local installation.
|
||||
They can be used for long-term production or to thoroughly test Odoo, including customizations that
|
||||
do not require custom code.
|
||||
|
||||
.. tip::
|
||||
To quickly try out Odoo, shared `demo databases <https://demo.odoo.com>`_ are available for
|
||||
testing. No registration is required; however, each database is only available for a few hours.
|
||||
`Odoo Online <https://www.odoo.com/trial>`_ provides private databases which are fully managed and
|
||||
hosted by Odoo. It can be used for long-term production or to test Odoo thoroughly, including
|
||||
customizations that don't require code.
|
||||
|
||||
.. note::
|
||||
Odoo Online is incompatible with custom modules or modules from the `Odoo Apps Store
|
||||
<https://apps.odoo.com/apps>`_.
|
||||
Odoo Online is incompatible with custom modules or the Odoo App Store.
|
||||
|
||||
.. _odoo-online/database-manager:
|
||||
Odoo Online databases are accessed using any web browser and do not require a local installation.
|
||||
|
||||
Database manager
|
||||
================
|
||||
To quickly try out Odoo, shared `demo <https://demo.odoo.com>`_ instances are available. No
|
||||
registration is required, but each instance only lives for a few hours.
|
||||
|
||||
To manage an Odoo Online database, open to the `database manager
|
||||
<https://www.odoo.com/my/databases>`_ and sign in as the database administrator.
|
||||
Database management
|
||||
===================
|
||||
|
||||
.. _odoo-online/domain-names:
|
||||
To manage a database, go to the `database manager <https://www.odoo.com/my/databases>`_ and sign in
|
||||
as the database administrator.
|
||||
|
||||
Domain names
|
||||
------------
|
||||
All the main database management options are available by clicking the database name, except the
|
||||
upgrade option, which can be accessed by clicking the **arrow in a circle** icon next to the
|
||||
database name. It is only displayed if an upgrade is available.
|
||||
|
||||
:doc:`Configure a custom domain name <../applications/websites/website/configuration/domain_names>`
|
||||
by selecting a database and clicking :icon:`fa-globe` :guilabel:`Domain Names`.
|
||||
.. image:: odoo_online/database-manager.png
|
||||
:alt: Accessing the database management options
|
||||
|
||||
.. tip::
|
||||
:ref:`Register a domain name for free <domain-name/register>`.
|
||||
- :ref:`odoo_online/upgrade`
|
||||
- :ref:`odoo_online/duplicate`
|
||||
- :ref:`odoo_online/rename`
|
||||
- :ref:`odoo_online/download`
|
||||
- :ref:`odoo_online/domains`
|
||||
- :ref:`odoo_online/tags`
|
||||
- :ref:`odoo_online/delete`
|
||||
- :ref:`odoo_online/contact-support`
|
||||
- :ref:`odoo_online/users`
|
||||
|
||||
.. _odoo-online/tags:
|
||||
|
||||
Tags
|
||||
----
|
||||
|
||||
Add tags to identify and sort databases by selecting a database and clicking :icon:`fa-tags`
|
||||
:guilabel:`Tags`. In the dialog box, enter a tag, click the :icon:`fa-plus-circle`
|
||||
(:guilabel:`plus`) button, and click :guilabel:`Save`.
|
||||
|
||||
.. tip::
|
||||
Search for tags in the :icon:`fa-search` search bar at the top right.
|
||||
|
||||
.. _odoo-online/hide:
|
||||
|
||||
Hide
|
||||
----
|
||||
|
||||
Permanently hide the database from the database manager by selecting it and clicking
|
||||
:icon:`fa-eye-slash` :guilabel:`Hide`. In the dialog box, click :guilabel:`Yes, I don't need it
|
||||
anymore`.
|
||||
|
||||
.. Note::
|
||||
It is possible to access a hidden database through its URL.
|
||||
|
||||
.. _odoo-online/manage:
|
||||
|
||||
Manage
|
||||
------
|
||||
|
||||
Access all other database management options by selecting it and clicking :icon:`fa-gears`
|
||||
:guilabel:`Manage`.
|
||||
|
||||
Switch plans
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Switch `pricing plans <https://www.odoo.com/pricing>`_ by clicking :guilabel:`Switch` under the
|
||||
desired plan.
|
||||
|
||||
.. _odoo-online/upgrade:
|
||||
.. _odoo_online/upgrade:
|
||||
|
||||
Upgrade
|
||||
~~~~~~~
|
||||
=======
|
||||
|
||||
Launch a :ref:`database upgrade <upgrade-request-test>` by clicking :guilabel:`Upgrade`.
|
||||
Trigger a database upgrade.
|
||||
|
||||
.. note::
|
||||
This option is only displayed when an upgrade is available.
|
||||
.. seealso::
|
||||
For more information about the upgrade process, check out the :ref:`Odoo Online upgrade
|
||||
documentation <upgrade-request-test>`.
|
||||
|
||||
.. _odoo-online/rename:
|
||||
|
||||
Rename
|
||||
~~~~~~
|
||||
|
||||
Rename and change the URL of a database by clicking :guilabel:`Rename`. In the dialog box, enter a
|
||||
:guilabel:`New name` and click :guilabel:`Rename`.
|
||||
|
||||
.. _odoo-online/duplicate:
|
||||
.. _odoo_online/duplicate:
|
||||
|
||||
Duplicate
|
||||
~~~~~~~~~
|
||||
=========
|
||||
|
||||
Create a copy of the database by clicking :guilabel:`Duplicate`. In the dialog box, enter a
|
||||
:guilabel:`New name` and click :guilabel:`Duplicate`.
|
||||
Create an exact copy of the database, which can be used to perform testing without compromising
|
||||
daily operations.
|
||||
|
||||
.. important::
|
||||
- By default, the :guilabel:`For testing purposes` option is enabled. It disables all external
|
||||
actions (emails, payments, delivery orders, etc.) on the duplicated database.
|
||||
- Duplicates expire after 15 days.
|
||||
- A maximum of five duplicates can be created per database. Under extraordinary circumstances,
|
||||
contact `Odoo Support <https://www.odoo.com/help>`_ to extend the limit.
|
||||
- By checking :guilabel:`For testing purposes`, all external actions (emails, payments, delivery
|
||||
orders, etc.) are disabled by default on the duplicated database.
|
||||
- Duplicated databases expire automatically after 15 days.
|
||||
- A maximum of five duplicates can be made per database. Under extraordinary circumstances,
|
||||
contact `support <https://www.odoo.com/help>`_ to raise the limit.
|
||||
|
||||
.. _odoo-online/download:
|
||||
.. _odoo_online/rename:
|
||||
|
||||
Download a backup
|
||||
~~~~~~~~~~~~~~~~~
|
||||
Rename
|
||||
======
|
||||
|
||||
Download a ZIP file containing a database backup by clicking :guilabel:`Download Backup`.
|
||||
Rename the database and its URL.
|
||||
|
||||
.. _odoo_online/download:
|
||||
|
||||
Download
|
||||
========
|
||||
|
||||
Download a ZIP file containing a backup of the database.
|
||||
|
||||
.. note::
|
||||
- Databases are backed up daily as per the `Odoo Cloud Hosting SLA
|
||||
<https://www.odoo.com/cloud-sla>`_.
|
||||
- If the :guilabel:`Download Backup` option is disabled, it means the database is too large to be
|
||||
downloaded using the database manager. Contact `Odoo Support <https://www.odoo.com/help>`_ to
|
||||
request an alternative download solution.
|
||||
Databases are backed up daily as per the `Odoo Cloud Hosting SLA
|
||||
<https://www.odoo.com/cloud-sla>`_.
|
||||
|
||||
.. _odoo-online/activity-logs:
|
||||
.. _odoo_online/domains:
|
||||
|
||||
View admin activity logs
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
View the logs of all actions taken by Odoo employees or the database administrator on the database
|
||||
by clicking :guilabel:`View Admin Activity Logs`.
|
||||
|
||||
.. note::
|
||||
Actions taken by Odoo employees are typically the result of requests submitted to Odoo support,
|
||||
done within the context of a quick start project, or necessary to maintain the database.
|
||||
|
||||
.. _odoo-online/transfer-ownership:
|
||||
|
||||
Transfer ownership
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Create a support ticket to request a database ownership transfer by clicking :guilabel:`Transfer
|
||||
Ownership`.
|
||||
|
||||
.. _odoo-online/delete:
|
||||
|
||||
Delete
|
||||
~~~~~~
|
||||
|
||||
Delete the database and close its related subscription by clicking :guilabel:`Delete`. In the dialog
|
||||
box, click :guilabel:`Delete`.
|
||||
|
||||
.. danger::
|
||||
All the database's data will be deleted instaneously for all users and **cannot be restored**. It
|
||||
is recommended to :ref:`download a backup <odoo-online/download>` before deleting a database.
|
||||
|
||||
.. note::
|
||||
After deletion, the database's name becomes available to anyone.
|
||||
|
||||
.. _odoo-online/web-services:
|
||||
|
||||
Web services
|
||||
Domain names
|
||||
============
|
||||
|
||||
To retrieve a list of all databases displayed under the `database manager
|
||||
<https://www.odoo.com/my/databases>`_ programmatically, call the `list` method of the
|
||||
`odoo.database` model via an :doc:`external JSON-2 API <../developer/reference/external_api>` call.
|
||||
Use a custom :doc:`domain name </applications/websites/website/configuration/domain_names>` to
|
||||
access the database via another URL.
|
||||
|
||||
.. example::
|
||||
.. code:: python
|
||||
.. tip::
|
||||
You can :ref:`register a domain name for free <domain-name/register>`.
|
||||
|
||||
import requests
|
||||
.. _odoo_online/tags:
|
||||
|
||||
APIKEY = "your_apikey"
|
||||
Tags
|
||||
====
|
||||
|
||||
requests.post(
|
||||
"https://www.odoo.com/json/2/odoo.database/list",
|
||||
headers={
|
||||
"Authorization": f"bearer {APIKEY}",
|
||||
"X-Odoo-Database": "openerp",
|
||||
}
|
||||
json={},
|
||||
)
|
||||
Add tags to easily identify and sort your databases.
|
||||
|
||||
.. tip::
|
||||
You can search for tags in the search bar.
|
||||
|
||||
.. _odoo_online/delete:
|
||||
|
||||
Delete
|
||||
======
|
||||
|
||||
Delete a database instantly.
|
||||
|
||||
.. danger::
|
||||
Deleting a database means that all data is permanently lost. The deletion is instant and applies
|
||||
to all users. It is recommended to create a backup of the database before deleting it.
|
||||
|
||||
Carefully read the warning message and only proceed if the implications of deleting a database are
|
||||
fully understood.
|
||||
|
||||
.. image:: odoo_online/delete.png
|
||||
:alt: The warning message displayed before deleting a database
|
||||
|
||||
.. note::
|
||||
- Only an administrator can delete a database.
|
||||
- The database name is immediately made available to anyone.
|
||||
- Deleting a database if it has expired or is linked to a subscription is impossible. In that
|
||||
case, contact `Odoo Support <https://www.odoo.com/help>`_.
|
||||
|
||||
.. _odoo_online/contact-support:
|
||||
|
||||
Contact us
|
||||
==========
|
||||
|
||||
Access the `Odoo.com support page <https://www.odoo.com/help>`_ with the database's details already
|
||||
pre-filled.
|
||||
|
||||
.. _odoo_online/users:
|
||||
|
||||
Invite / remove users
|
||||
=====================
|
||||
|
||||
To invite users, fill out the new user's email address and click :guilabel:`Invite`. To add multiple
|
||||
users, click :guilabel:`Add more users`.
|
||||
|
||||
.. image:: odoo_online/invite-users.png
|
||||
:alt: Inviting a user on a database
|
||||
|
||||
To remove users, select them and click :guilabel:`Remove`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/general/users`
|
||||
- :doc:`odoo_accounts`
|
||||
|
|
|
|||
BIN
content/administration/odoo_online/database-manager.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
content/administration/odoo_online/delete.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
content/administration/odoo_online/invite-users.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
|
|
@@ -1,16 +1,12 @@
|
|||
:show-content:
|
||||
:show-toc:
|
||||
:nosearch:
|
||||
|
||||
=======
|
||||
Odoo.sh
|
||||
=======
|
||||
|
||||
Odoo.sh is the official cloud platform for hosting and managing Odoo applications. It offers a
|
||||
range of features such as web shell, module dependencies, continuous integration, and SSH access.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
odoo_sh/getting_started
|
||||
odoo_sh/first_module
|
||||
odoo_sh/advanced
|
||||
odoo_sh/overview
|
||||
odoo_sh/getting_started
|
||||
odoo_sh/advanced
|
||||
|
|
|
|||
|
|
@@ -147,7 +147,7 @@ with a browser, but you can for instance:
|
|||
|
||||
.. code-block:: bash
|
||||
|
||||
$ odoo-bin -i sale --stop-after-init
|
||||
$ odoo-bin -i sale --without-demo=all --stop-after-init
|
||||
|
||||
* update a module,
|
||||
|
||||
|
|
@@ -163,6 +163,7 @@ with a browser, but you can for instance:
|
|||
|
||||
In the above commands, the argument:
|
||||
|
||||
* ``--without-demo=all`` prevents demo data to be loaded for all modules
|
||||
* ``--stop-after-init`` will immediately shutdown the server instance after it completed the operations you asked.
|
||||
|
||||
More options are available and detailed in the
|
||||
|
|
|
|||
|
|
@@ -1,51 +1,8 @@
|
|||
:show-content:
|
||||
:nosearch:
|
||||
|
||||
===============
|
||||
Getting started
|
||||
===============
|
||||
|
||||
Main components
|
||||
---------------
|
||||
|
||||
When working with Odoo.sh, it is important to understand the main components involved. While they
|
||||
are all interconnected, each one plays a distinct role in the development and deployment of Odoo
|
||||
applications:
|
||||
|
||||
- **GitHub repository**: a version-controlled space where the Odoo applications' source code is
|
||||
stored. It tracks every change, supports collaboration, and can be either public or private.
|
||||
|
||||
.. image:: getting_started/github-repository.png
|
||||
:alt: Example of a GitHub repository
|
||||
|
||||
- **Odoo.sh project**: a Platform as a Service (PaaS) that integrates with GitHub and enables
|
||||
streamlined development, testing, and deployment of Odoo applications. It includes tools such as
|
||||
automated backups, staging environments, and continuous integration pipelines.
|
||||
|
||||
.. image:: getting_started/odoo-sh-project.png
|
||||
:alt: Example of an Odoo.sh project
|
||||
|
||||
- **Odoo database**: a database stores all the operational data used and generated by Odoo
|
||||
applications, such as business records, configurations, and user data.
|
||||
|
||||
.. image:: getting_started/odoo-database.png
|
||||
:alt: Example of an Odoo database
|
||||
|
||||
Together, they form a cohesive pipeline from code development to a live business use.
|
||||
|
||||
User types
|
||||
----------
|
||||
|
||||
Odoo.sh involves different types of users, each with a specific role in the project lifecycle:
|
||||
|
||||
- GitHub users: developers with access to the GitHub repository linked to the Odoo.sh project.
|
||||
Access to the repository does not automatically make someone a collaborator on the Odoo.sh
|
||||
project.
|
||||
|
||||
- Odoo.sh collaborators: individuals managing the Odoo.sh project. Each collaborator must be
|
||||
linked to a GitHub user. However, collaborators are not the same as database users.
|
||||
|
||||
- Database users: end-users of the deployed Odoo database. They interact with the live system but
|
||||
are not involved in development or project management.
|
||||
===========
|
||||
Get started
|
||||
===========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
|
@@ -56,3 +13,4 @@ Odoo.sh involves different types of users, each with a specific role in the proj
|
|||
getting_started/status
|
||||
getting_started/settings
|
||||
getting_started/online-editor
|
||||
getting_started/first_module
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 727 KiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 759 KiB |
|
Before Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 154 KiB |
|
Before Width: | Height: | Size: 403 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 378 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 330 KiB |
|
Before Width: | Height: | Size: 46 KiB |
|
|
@@ -1,137 +1,124 @@
|
|||
|
||||
.. _odoosh-gettingstarted-builds:
|
||||
|
||||
======
|
||||
Builds
|
||||
======
|
||||
|
||||
In Odoo.sh, a build is a database loaded by an Odoo server (`odoo/odoo
|
||||
<https://github.com/odoo/odoo>`_ and `odoo/enterprise <https://github.com/odoo/enterprise>`_)
|
||||
running on a specific revision of your project repository in a containerized environment. Its
|
||||
purpose is to test the proper behavior of the server, the database, and the features associated with
|
||||
that revision.
|
||||
|
||||
.. _odoo-sh/builds/overview:
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
.. image:: builds/builds-overview.png
|
||||
:alt: Overiew of the builds
|
||||
In Odoo.sh, a build is considered as a database loaded by an Odoo server
|
||||
(`odoo/odoo <https://github.com/odoo/odoo>`_ & `odoo/enterprise
|
||||
<https://github.com/odoo/enterprise>`_) running on a specific revision of your project repository in
|
||||
a containerized environment. Its purpose is to test the well-behavior of the server, the database
|
||||
and the features with this revision.
|
||||
|
||||
In the :guilabel:`Builds` overview, a row represents a branch, and a cell within that row represents
|
||||
a build of that branch.
|
||||
.. image:: builds/interface-builds.png
|
||||
:align: center
|
||||
|
||||
Most builds are created after pushes to your GitHub repository branches. They can also be created
|
||||
through other operations, such as importing a database on Odoo.sh or requesting a rebuild for a
|
||||
branch in your project.
|
||||
In this view, a row represents a branch, and a cell of a row represents a build of this branch.
|
||||
|
||||
Builds can have three possible statuses:
|
||||
Most of the time, builds are created following pushes on your Github repository branches.
|
||||
They can be created as well when you do other operations,
|
||||
such as importing a database on Odoo.sh or asking a rebuild for a branch in your project.
|
||||
|
||||
- A build is considered **successful** if no errors or warnings occur during its creation.
|
||||
Successful builds are highlighted in **green**.
|
||||
- A build is considered **almost successful** if warnings occur, but there are no errors. Almost
|
||||
successful builds are highlighted in **yellow**.
|
||||
- A build is considered **failed** if errors occur during its creation. Failed builds are
|
||||
highlighted in **red**.
|
||||
A build is considered successful if no errors or warnings come up during its creation.
|
||||
A successful build is highlighted in green.
|
||||
|
||||
.. note::
|
||||
Builds do not always create a database from scratch. For instance, when pushing a change on the
|
||||
production branch, the created build starts the server with your new revision and tries to load
|
||||
the current production database on it.
|
||||
A build is considered failed if errors come up during its creation.
|
||||
A failed build is highlighted in red.
|
||||
|
||||
.. _odoo-sh/builds/stages:
|
||||
If warnings come up during the creation, but there are no errors, the build is considered almost
|
||||
successful. It is highlighted in yellow to notify the developer warnings were raised.
|
||||
|
||||
Builds do not always create a database from scratch. For instance, when pushing a change on the
|
||||
production branch, the build created just starts the server with your new revision and tries to load
|
||||
the current production database on it. If no errors come up, the build is considered successful, and
|
||||
otherwise failed.
|
||||
|
||||
Stages
|
||||
======
|
||||
|
||||
.. _odoo-sh/builds/stages/production:
|
||||
|
||||
Production
|
||||
----------
|
||||
|
||||
The first build of a production branch creates a database from scratch. If this build is successful,
|
||||
this database will become the production database of your project.
|
||||
The first build of a production branch creates a database from scratch.
|
||||
If this build is successful, this database is considered as the production database of your project.
|
||||
|
||||
From then on, pushes to the production branch will create new builds that attempt to load the
|
||||
database using a server running the new revision.
|
||||
From then, pushes on the production branch will create new builds that attempt to load the database
|
||||
using a server running with the new revision.
|
||||
|
||||
If the build is successful or almost successful, the production database will run with this build
|
||||
and its associated revision.
|
||||
If the build is successful, or has warnings but no errors, the production database will now run with
|
||||
this build, along with the revision associated to this build.
|
||||
|
||||
If the build fails to load or update the database, the previous successful build is reused to load
|
||||
the database. In that case, the database continues to run using the previous successful revision.
|
||||
If the build fails to load or update the database, then the previous successful build is re-used to
|
||||
load the database, and therefore the database will run using a server running with the previous
|
||||
successful revision.
|
||||
|
||||
.. note::
|
||||
The build used to run the production database is always the first in the builds list. If a build
|
||||
fails, it is placed after the build currently running the production database.
|
||||
|
||||
.. _odoo-sh/builds/stages/staging:
|
||||
The build used to run the production database is always the first of the builds list. If a build
|
||||
fails, it is put after the build currently running the production database.
|
||||
|
||||
Staging
|
||||
-------
|
||||
|
||||
Staging builds duplicate the production database and attempt to load this copy using the revisions
|
||||
of the staging branches.
|
||||
Staging builds duplicate the production database,
|
||||
and try to load this duplicate with the revisions of the staging branches.
|
||||
|
||||
Each time you push a new revision to a staging branch, the resulting build uses a fresh copy of the
|
||||
production database. Databases are not reused between builds of the same branch. This ensures that:
|
||||
Each time you push a new revision on a staging branch, the build created uses a new copy of the
|
||||
production database. The databases are not re-used between builds of the same branch. This ensures:
|
||||
|
||||
- Staging builds use databases that closely match the current production state, so your tests are
|
||||
not performed on outdated data.
|
||||
- You can freely experiment within a staging database. When you want to start over with a new copy
|
||||
of the production database, you can request a rebuild.
|
||||
* staging builds use databases that are close to what the production looks like, so you do not make
|
||||
your tests with outdated data,
|
||||
|
||||
However, this also means that if you make configuration changes in a staging database and do not
|
||||
apply them in production, those changes will not be present in the next build of the same staging
|
||||
branch.
|
||||
* you can play around as much as you want in the same staging database, and you can then ask for a
|
||||
rebuild when you want to restart with a new copy of the production.
|
||||
|
||||
.. _odoo-sh/builds/stages/development:
|
||||
Nevertheless, this means that if you make configuration changes in staging databases and do not
|
||||
apply them in the production, they will not be passed on the next build of the same staging branch.
|
||||
|
||||
Development
|
||||
-----------
|
||||
|
||||
Development builds create new databases, load the demo data, and run the unit tests.
|
||||
Development builds create new databases, load the demo data and run the unit tests.
|
||||
|
||||
A build will be considered failed if tests fail during installation, as they are designed to raise
|
||||
errors when something is wrong.
|
||||
A build will be considered failed and highlighted in red if tests fail during the installation,
|
||||
as they are meant to raise errors if something wrong occurs.
|
||||
|
||||
If all tests pass and no errors occur, the build is considered successful.
|
||||
If all tests pass, and there is no error, the build will be considered successful.
|
||||
|
||||
.. note::
|
||||
Depending on the list of modules to install and test, a development build can take up to one hour
|
||||
to be ready. This is due to the large number of tests included in the default Odoo module suite.
|
||||
|
||||
.. _odoo-sh/builds/stages/features:
|
||||
According to the list of modules to install and test, a development build can take up to 1 hour to
|
||||
be ready. This is due to the large number of tests set in the default Odoo modules suite.
|
||||
|
||||
Features
|
||||
========
|
||||
|
||||
The production branch always appears first. Other branches are ordered by the time of their last
|
||||
created build. The stage highlighted in purple corresponds to the stage selected in the
|
||||
:guilabel:`Branches` menu.
|
||||
The production branch will always appear first, and then the other branches are ordered by last
|
||||
build created. You can filter out the branches.
|
||||
|
||||
.. tip::
|
||||
You can filter branches using the search bar.
|
||||
.. image:: builds/interface-builds-branches.png
|
||||
:align: center
|
||||
|
||||
.. image:: builds/branches-menu.png
|
||||
:alt: The branches menu
|
||||
For each branch, you can access the last build's database using the *Connect* link and jump to the
|
||||
branch code using the *Github* link. For other branches than the production, you can create a new
|
||||
build which will use the latest revision of the branch using the link *rebuild*. This last link is
|
||||
not available when there is already a build in progress for the branch.
|
||||
|
||||
For each branch, you can:
|
||||
.. image:: builds/interface-builds-build.png
|
||||
:align: center
|
||||
|
||||
- Access the latest build's database by clicking :guilabel:`Connect`.
|
||||
- Jump to the branch's code by clicking :guilabel:`Github`.
|
||||
- Create a new build by clicking :guilabel:`Rebuild`. It uses the latest revision of the branch (it
|
||||
is not available if a build is already in progress for that branch).
|
||||
For each build, you can access the revision changes using the button with the Github icon. You can
|
||||
access the build's database as the administrator using the *Connect* button. Also, you can access
|
||||
the database with another user using the *Connect as* button, in the dropdown menu of the *Connect*
|
||||
button.
|
||||
|
||||
For each build, you can:
|
||||
.. _odoosh-gettingstarted-builds-download-dump:
|
||||
|
||||
- View the revision changes by clicking the :icon:`fa-github` (:guilabel:`GitHub`) icon.
|
||||
- Access the build's database as the administrator by clicking :guilabel:`Connect` or as another
|
||||
user by clicking the :icon:`fa-caret-down` (:guilabel:`More Actions`) button next to
|
||||
:guilabel:`Connect` and selecting :guilabel:`Connect as`.
|
||||
- Access the same tools as in the branches view by clicking the :icon:`fa-caret-down`
|
||||
(:guilabel:`More Actions`) button next to :guilabel:`Connect` and selecting :guilabel:`Logs`,
|
||||
:guilabel:`Web Shell`, :guilabel:`Editor`, :guilabel:`Outgoing e-mails` (for the staging and
|
||||
development stages), :guilabel:`Monitoring`, and :guilabel:`Download DB dump` (for the production
|
||||
and staging stages).
|
||||
.. image:: builds/interface-builds-build-dropdown.png
|
||||
:align: center
|
||||
|
||||
.. image:: builds/builds-options.png
|
||||
:alt: A build's options
|
||||
.. _odoosh-gettingstarted-builds-dropdown-menu:
|
||||
|
||||
In the dropdown menu of the build, you can access the same features than in :ref:`the branches view
|
||||
<odoosh-gettingstarted-branches-tabs>`: *Logs*, *Web Shell*, *Editor*, *Outgoing e-mails*. You also
|
||||
have the possibility to *Download a dump* of the build's database.
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
|
@@ -1,192 +1,205 @@
|
|||
================
|
||||
Create a project
|
||||
================
|
||||
|
||||
Deploy a platform
|
||||
.. _odoosh-gettingstarted-create:
|
||||
|
||||
===================
|
||||
Create your project
|
||||
===================
|
||||
|
||||
Deploy your platform
|
||||
====================
|
||||
|
||||
Go to `Odoo.sh <https://www.odoo.sh/>`_ and hit the *Deploy your platform* button.
|
||||
|
||||
.. image:: create/deploy.png
|
||||
:align: center
|
||||
|
||||
Sign in with Github
|
||||
===================
|
||||
|
||||
Sign in with your Github account. If you do not have an account yet, hit the *Create an account*
|
||||
link.
|
||||
|
||||
.. image:: create/github-signin.png
|
||||
:align: center
|
||||
|
||||
Authorize Odoo.sh
|
||||
=================
|
||||
|
||||
#. Visit `Odoo.sh <https://www.odoo.sh>`_ and click :guilabel:`Deploy your platform`.
|
||||
Grant Odoo.sh the required accesses to your account by clicking the *Authorize* button.
|
||||
|
||||
.. image:: create/deploy-button.png
|
||||
:alt: The Deploy your platform button on Odoo.sh
|
||||
.. image:: create/github-authorize.png
|
||||
:align: center
|
||||
|
||||
#. Sign in with a `GitHub <https://github.com>`_ account.
|
||||
Odoo.sh basically needs:
|
||||
|
||||
.. image:: create/github-sign-in.png
|
||||
:alt: Signing in to GitHub
|
||||
* to know your Github login and email,
|
||||
* to create a new repository in case you decide to start from scratch,
|
||||
* to read your existing repositories, including the ones of your organizations, in case you want to
|
||||
start from an existing repository,
|
||||
* to create a webhook to be notified each time you push changes,
|
||||
* to commit changes to make your deployment easier, merging branches or adding new `submodules
|
||||
<https://git-scm.com/book/en/v2/Git-Tools-Submodules>`_ for example.
|
||||
|
||||
#. Authorize Odoo.sh by clicking :guilabel:`Authorize odoo` twice.
|
||||
Submit your project
|
||||
===================
|
||||
|
||||
.. image:: create/github-authorize.png
|
||||
:alt: Granting Odoo.sh permissions to perform actions and access data on GitHub
|
||||
Choose if you want to start from scratch by creating a new repository, or if you want to use an
|
||||
existing repository.
|
||||
|
||||
.. image:: create/github-authorize.png
|
||||
:alt: Granting Odoo.sh additional permissions to perform actions and access data on GitHub
|
||||
Then, choose a name or select the repository you want to use.
|
||||
|
||||
.. note::
|
||||
Odoo.sh requests GitHub to:
|
||||
Choose the Odoo version you want to use. If you plan to import an existing database or an existing
|
||||
set of applications, you might need to choose the according version. If you start from scratch, use
|
||||
the latest version.
|
||||
|
||||
- Access your GitHub login and email.
|
||||
- Create a new repository, in case you start from scratch.
|
||||
- Access existing repositories, including organization ones, in case you start from an
|
||||
existing repository.
|
||||
- Create a webhook to notify you each time changes are pushed.
|
||||
- Commit changes for easier deployment.
|
||||
Enter your *subscription code*. This is also called *subscription referral*, *contract number* or
|
||||
*activation code*.
|
||||
|
||||
#. Fill in the :guilabel:`Deploy your platform` form and click :guilabel:`Deploy`:
|
||||
It should be the code of your Enterprise subscription that includes Odoo.sh.
|
||||
|
||||
- :guilabel:`Github repository`: to create a new repository, choose :guilabel:`New repository`
|
||||
and enter a name; to use an existing one, choose :guilabel:`Existing repository` and select it.
|
||||
- :guilabel:`Odoo Version`: select the major version of Odoo you want to use.
|
||||
Partners can use their partnership codes to start a trial. Should their clients start a project,
|
||||
they ought to get an Enterprise subscription including Odoo.sh and use its subscription code. The
|
||||
partner will get 50% of the amount back as commission. Contact your sales representative or account
|
||||
manager in order to get it.
|
||||
|
||||
.. tip::
|
||||
- Use the latest major version of Odoo version when creating a new repository. If you are
|
||||
planning to import an existing database or applications, it might be required that their
|
||||
versions match.
|
||||
- If you are starting on Odoo Online and plan to migrate to Odoo.sh later, create your
|
||||
database using `odoo.com/start-lts <https://www.odoo.com/start-lts>`_ to ensure
|
||||
compatibility, as minor versions are not supported by Odoo.sh.
|
||||
When submitting the form, if you are notified your subscription is not valid, it either means:
|
||||
|
||||
- :guilabel:`Subscription Code`: enter your Odoo Enterprise subscription code that includes
|
||||
Odoo.sh. It is also sometimes called the *subscription referral*, *contract number*, or
|
||||
*activation code*.
|
||||
* it is not an existing subscription,
|
||||
* it is not a partnership subscription,
|
||||
* it is an enterprise subscription, but which does not include Odoo.sh,
|
||||
* it is neither a partnership subscription or an enterprise subscription (e.g. an online
|
||||
subscription).
|
||||
|
||||
.. tip::
|
||||
Partners can use their partnership codes to initiate a trial (trial builds are limited to 1
|
||||
GB storage and two staging). If a client proceeds to start a project, they must subscribe
|
||||
to an Odoo Enterprise plan that includes Odoo.sh hosting and use their subscription code.
|
||||
In case of doubt with your subscription, please contact the `Odoo support
|
||||
<https://www.odoo.com/help>`_.
|
||||
|
||||
- :guilabel:`Hosting location`: select the region where your platform will be hosted.
|
||||
.. image:: create/deploy-form.png
|
||||
:align: center
|
||||
|
||||
.. image:: create/deploy-form.png
|
||||
:alt: The Deploy your platform form
|
||||
You're done !
|
||||
=============
|
||||
|
||||
.. _odoo-sh/create/import:
|
||||
You can start using Odoo.sh. Your first build is about to be created. You will soon be able to
|
||||
connect to your first database.
|
||||
|
||||
Import a database
|
||||
=================
|
||||
.. image:: create/deploy-done.png
|
||||
:align: center
|
||||
|
||||
Once your platform is deployed, you can import a database into your Odoo.sh project, provided it
|
||||
uses a :doc:`supported version <../../supported_versions>` of Odoo.
|
||||
.. _odoo_sh_import_your_database:
|
||||
|
||||
.. note::
|
||||
Due to `Odoo's backup policy <https://www.odoo.com/cloud-sla>`_, the import process requires
|
||||
**four times** the size of your database dump in available storage. For example, a 10 GB dump
|
||||
file will require at least 40 GB of available space. We recommend allocating **more than four
|
||||
times×** the dump size temporarily, then reducing storage after the import is complete.
|
||||
Import your database
|
||||
====================
|
||||
|
||||
If your project is a trial created with a partnership code, you can only import database dumps up
|
||||
to **1 GB** in size.
|
||||
You can import your database in your Odoo.sh project as long as it is in a :doc:`supported version
|
||||
</administration/supported_versions>` of Odoo.
|
||||
|
||||
Push modules in production
|
||||
--------------------------
|
||||
Push your modules in production
|
||||
-------------------------------
|
||||
|
||||
If you are using community or custom modules, add them to a branch in your GitHub repository.
|
||||
If you use community or custom modules, add them in a branch in your Github repository.
|
||||
Databases hosted on the Odoo.com online platform do not have any custom modules.
|
||||
Users of these databases can therefore skip this step.
|
||||
|
||||
.. note::
|
||||
Databases hosted on Odoo Online do not support custom modules.
|
||||
You can structure your modules as you wish, Odoo.sh will automatically detect the folders containing
|
||||
Odoo addons. For instance, you can put all your modules folder in the root directory of your
|
||||
repository, or group the modules in folders by categories that you define (accounting, project,
|
||||
...).
|
||||
|
||||
Odoo.sh automatically detects folders containing Odoo modules. You can organize them however you
|
||||
prefer. For example, you can place them directly in the root directory of your repository or group
|
||||
them by category (e.g., `accounting`, `project`, etc.).
|
||||
For community modules available in public Git repositories,
|
||||
you can also consider to add them using :ref:`Submodules <odoosh-advanced-submodules>`.
|
||||
|
||||
For publicly available community modules, you may also consider using :doc:`submodules
|
||||
<../advanced/submodules>`.
|
||||
Then, either :ref:`make this branch the production branch <odoosh-gettingstarted-branches-stages>`,
|
||||
or :ref:`merge it into your production branch <odoosh-gettingstarted-branches-mergingbranches>`.
|
||||
|
||||
Download a backup
|
||||
-----------------
|
||||
|
||||
.. tabs::
|
||||
On-premise databases
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. group-tab:: On-premise
|
||||
Access the URL :file:`/web/database/manager` of your on-premise database and download a backup.
|
||||
|
||||
Go to `/web/database/manager` on your on-premise Odoo instance and click :icon:`fa-floppy-o`
|
||||
:guilabel:`Backup`.
|
||||
.. Warning::
|
||||
|
||||
.. image:: create/on-premise-manager.png
|
||||
:alt: The on-premise web manager interface
|
||||
If you cannot access the database manager, it may have been disabled by your system administrator.
|
||||
See the :ref:`database manager security documentation <db_manager_security>`.
|
||||
|
||||
Select :guilabel:`zip (includes filestore)` as the :guilabel:`Backup Format`.
|
||||
You will need the master password of your database server. If you do not have it, contact your
|
||||
system administrator.
|
||||
|
||||
.. image:: create/on-premise-backup.png
|
||||
:alt: Downloading an on-premise database backup
|
||||
.. image:: create/create-import-onpremise-backup.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
- You will need the :guilabel:`Master Password` of your Odoo server. If you do not have it,
|
||||
contact your system administrator.
|
||||
- If you cannot access the database manager, it may have been disabled by your system
|
||||
administrator. Refer to the :ref:`database manager security documentation
|
||||
<db_manager_security>`.
|
||||
Choose a zip including the filestore as the backup format.
|
||||
|
||||
.. group-tab:: Odoo Online
|
||||
.. image:: create/create-import-onpremise-backup-dialog.png
|
||||
:align: center
|
||||
|
||||
Log in to your portal account and navigate to the `My Databases page
|
||||
<https://www.odoo.com/my/databases>`_, and download a backup by clicking the :icon:`fa-gear`
|
||||
(:guilabel:`gear`) icon, then :icon:`fa-cloud-download` :guilabel:`Download`.
|
||||
Odoo Online databases
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. image:: create/odoo-online-backup.png
|
||||
:alt: Downloading an Odoo Online database backup
|
||||
`Access your databases manager <https://accounts.odoo.com/my/databases/manage>`_ and download a
|
||||
backup of your database.
|
||||
|
||||
.. warning::
|
||||
Only major versions of Odoo are compatible with Odoo.sh.
|
||||
.. image:: create/create-import-online-backup.png
|
||||
:align: center
|
||||
|
||||
.. Warning::
|
||||
|
||||
Online versions (e.g. *saas-**) are not supported on Odoo.sh.
|
||||
|
||||
Upload the backup
|
||||
-----------------
|
||||
|
||||
In your Odoo.sh project, navigate to the :guilabel:`Backups` tab of your :guilabel:`Production`
|
||||
branch, and click :guilabel:`Import Database` to upload the backup you previously downloaded.
|
||||
Then, in your Odoo.sh project, in the backups tab of your production branch, import the backup you
|
||||
just downloaded.
|
||||
|
||||
.. image:: create/import-database.png
|
||||
:alt: Importing a database backup on Odoo.sh
|
||||
.. image:: create/create-import-production.png
|
||||
:align: center
|
||||
|
||||
Once the import is complete, you can access the database using the :guilabel:`Connect` button in the
|
||||
branch's :guilabel:`History` tab.
|
||||
Once the backup imported, you can access the database using the *Connect* button in the history of
|
||||
the branch.
|
||||
|
||||
.. important::
|
||||
Importing a backup **overwrites all data** currently in the branch. Consider downloading a manual
|
||||
backup beforehand if you want to preserve the existing data.
|
||||
.. image:: create/create-import-production-done.png
|
||||
:align: center
|
||||
|
||||
Check outgoing email servers
|
||||
----------------------------
|
||||
Check your outgoing email servers
|
||||
---------------------------------
|
||||
|
||||
Odoo.sh provides a default email server. To use it, ensure that **no outgoing mail server is
|
||||
enabled** in your database by enabling :ref:`developer mode <developer-mode>` and navigating to
|
||||
:menuselection:`Settings --> Technical --> Email: Outgoing Mail Servers`
|
||||
There is a default mail server provided with Odoo.sh.
|
||||
To use it, there must be no enabled outgoing mail server configured in your database in
|
||||
:menuselection:`Settings --> Technical --> Outgoing Mail Servers` (:ref:`Developer mode
|
||||
<developer-mode>` must be activated).
|
||||
|
||||
After importing your database, all configured outgoing mail servers are **disabled**, and the
|
||||
default Odoo.sh server is used.
|
||||
After the import of your database, all outgoing email servers are disabled so you use the Odoo.sh
|
||||
email server provided by default.
|
||||
|
||||
.. warning::
|
||||
Port **25** is and will remain closed. If connecting to an external SMTP server, use port **465**
|
||||
or **587**.
|
||||
Port 25 is (and will stay) closed. If you want to connect to an external SMTP server, you should
|
||||
use ports 465 and 587.
|
||||
|
||||
Check scheduled actions
|
||||
-----------------------
|
||||
Check your scheduled actions
|
||||
----------------------------
|
||||
|
||||
Scheduled actions are **disabled by default** after importing your database. This prevents your
|
||||
newly imported database from performing potentially disruptive operations such as:
|
||||
All scheduled actions are disabled after the import.
|
||||
|
||||
- sending queued emails,
|
||||
- triggering mass mailings, or
|
||||
- syncing with third-party services (e.g., calendars, cloud storage).
|
||||
This is to prevent your newly imported database to perform actions that could impact your running
|
||||
production, such as sending the mails remaining in the queue, processing mass mailings, or
|
||||
third-party services synchronization (Calendars, files hosting, ...).
|
||||
|
||||
If you intend to use this imported database in production, **re-enable** only the scheduled actions
|
||||
you need by enabling :ref:`developer mode <developer-mode>` and going to :menuselection:`Settings
|
||||
--> Technical --> Automation: Scheduled Actions`.
|
||||
If you plan to make the imported database your production, enable the scheduled actions you need.
|
||||
You can check what is enabled in the database of origin and enable the same actions in the imported
|
||||
database. Scheduled actions are located under :menuselection:`Settings --> Technical --> Automation
|
||||
--> Scheduled Actions`.
|
||||
|
||||
Register the subscription
|
||||
-------------------------
|
||||
Register your subscription
|
||||
--------------------------
|
||||
|
||||
After import, the database is considered a **duplicate** and will be unlinked from your enterprise
|
||||
subscription.
|
||||
Your subscription is unlinked after the import.
|
||||
|
||||
.. note::
|
||||
You are allowed only one active database per subscription.
|
||||
The imported database is considered a duplicate by default and the enterprise subscription is
|
||||
therefore removed, as you can only have one database linked per subscription.
|
||||
|
||||
If you intend to make the imported database your production environment:
|
||||
|
||||
#. Unlink your previous database from the subscription.
|
||||
#. Register the new one.
|
||||
|
||||
Refer to the :doc:`database registration documentation <../../on_premise>` for step-by-step
|
||||
instructions.
|
||||
If you plan to make it your production, unlink your former database from the subscription, and
|
||||
register the newly imported database. Read the :doc:`database registration documentation
|
||||
<../../on_premise>` for instructions.
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 29 KiB |
BIN
content/administration/odoo_sh/getting_started/create/deploy.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 8.7 KiB |
|
|
@@ -7,7 +7,7 @@ Overview
|
|||
|
||||
This chapter helps you to create your first Odoo module and deploy it in your Odoo.sh project.
|
||||
|
||||
This tutorial requires you created a project on Odoo.sh, and
|
||||
This tutorial requires :ref:`you created a project on Odoo.sh <odoosh-gettingstarted-create>`, and
|
||||
you know your Github repository's URL.
|
||||
|
||||
Basic use of Git and Github is explained.
|
||||
|
|
@@ -85,7 +85,7 @@ From the Odoo.sh editor, in a terminal:
|
|||
|
||||
$ odoo-bin scaffold my_module ~/src/user/
|
||||
|
||||
Or, from your computer, if you have an installation of Odoo:
|
||||
Or, from your computer, if you have an :doc:`installation of Odoo <../../on_premise/source>`:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
|
@@ -304,8 +304,6 @@ you have to install it manually as explained in the
|
|||
:ref:`above section about installing your module in staging databases
|
||||
<odoosh-gettingstarted-firstmodule-productiondata-install>`.
|
||||
|
||||
.. _odoo-sh/module/add:
|
||||
|
||||
Add a change
|
||||
============
|
||||
|
||||
|
|
@@ -483,16 +481,15 @@ Add
|
|||
.. code-block:: python
|
||||
|
||||
@api.model
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if 'name' in vals:
|
||||
vals['name'] = unidecode(vals['name'])
|
||||
return super().create(vals_list)
|
||||
def create(self, values):
|
||||
if 'name' in values:
|
||||
values['name'] = unidecode(values['name'])
|
||||
return super(my_module, self).create(values)
|
||||
|
||||
def write(self, vals):
|
||||
if 'name' in vals:
|
||||
vals['name'] = unidecode(vals['name'])
|
||||
return super().write(vals)
|
||||
def write(self, values):
|
||||
if 'name' in values:
|
||||
values['name'] = unidecode(values['name'])
|
||||
return super(my_module, self).write(values)
|
||||
|
||||
Adding a Python dependency requires a module version increase for the platform to install it.
|
||||
|
||||
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |