Compare commits
158 Commits
18.0
...
master-18.
Author | SHA1 | Message | Date | |
---|---|---|---|---|
![]() |
407200b0d8 |
[IMP] Inventory: Rewrite aging report as stock valuation report
X-original-commit:
|
||
![]() |
c3a308f4b9 |
[IMP] marketing: match the Display Timezone description with tooltips
Issue:
The current descriptions and naming of the `Date` fields (`date_begin`,
`date_end`) and the `Timezone` field (`date_tz`) can be confusing in the
form view of the event model. Specifically:
The timezone used for converting the form dates to the database is
determined by the context and not by the `Timezone` field present on the
form. However, this `Timezone` field determines the timezone used
for displaying the event's date/time on the website. This change
clarifies the situation according to the update done in the community PR
opw-4323142
closes odoo/documentation#11820
X-original-commit:
|
||
![]() |
8d22fea849 |
[IMP] l10n_spain: update FACe configuration
Update configration as the location of the config changed in 18.0.
task-4327068
closes odoo/documentation#11830
X-original-commit:
|
||
![]() |
e190e03e93 |
[IMP] studio: can duplicate feature
task-4444001
closes odoo/documentation#11806
X-original-commit:
|
||
![]() |
a8d555494f |
[IMP] supported_versions: release saas-18.1
closes odoo/documentation#11807
X-original-commit:
|
||
![]() |
f1007895b6 |
[FIX] Inventory: Fixing reordering rules navigation for 18.0
closes odoo/documentation#11711
X-original-commit:
|
||
![]() |
106ac4d505 |
[IMP] accounting: einvoicing by country mention
closes odoo/documentation#11793
X-original-commit:
|
||
![]() |
6c027c9f4d |
[ADD] project/dashboard: project dashboard
task-id 4384333
closes odoo/documentation#11745
X-original-commit:
|
||
![]() |
6e4ab30214 |
[IMP] database: update status of supported versions
task-4485068
closes odoo/documentation#11786
X-original-commit:
|
||
![]() |
ebca1144b6 |
[FIX] accounting:update internal transfers doc to 18.0
Internal transfers are now handled via reconciliation model button instead of through payments. This PR moves the internal transfers documentation from the Payments section to the Bank section and updates it to reflect the process in 18.0.
task-4331744
closes odoo/documentation#11778
X-original-commit:
|
||
![]() |
4d08ff7294 |
[IMP] l10n: odoo 18 update of the german l10n
Based on information from CBE and PR #11417
closes odoo/documentation#11772
X-original-commit:
|
||
![]() |
241fd01063 |
[IMP] General: Outbound email servers correction
closes odoo/documentation#11764
X-original-commit:
|
||
![]() |
1f842b5f2b |
[FIX] payment_providers/xendit: remove step to enable optional 3ds
Enabling optional 3DS should not part of the official step. This configuration
is specific to cards payment, by default should perform 3DS, and only eligible
merchant able to perform cards payment with optional 3DS enabled.
closes odoo/documentation#11759
Forward-port-of: #11712
X-original-commit:
|
||
![]() |
af34c2c473 |
[IMP] Inventory: add delivery slip setting to serial numbers
closes odoo/documentation#11737
X-original-commit:
|
||
![]() |
23f80369ff |
[IMP] accounting/l10n_uy: clarify onboarding
Currently, users are having a hard time setting up their Uruware account. With the improvement to the documentation we are adding clarifications to simplify the onboarding process as well as adding a see also section so users have more documentation and smart classes/eLearning available.
closes odoo/documentation#11758
X-original-commit:
|
||
![]() |
830c311f68 |
[IMP] Inventory: Merged cycle count docs and updated for 17.0
closes odoo/documentation#11733
X-original-commit:
|
||
![]() |
0ee2ff365d |
[IMP] account/bank: Consistent number for available banks
The aim of this commit is making sure that we have the same number of available banks.
no task id
closes odoo/documentation#11751
X-original-commit:
|
||
![]() |
336c77042a |
[IMP] javascript reference: document domain field options
Before this commit, options of the domain field weren't documented.
Now, they are.
closes odoo/documentation#11735
X-original-commit:
|
||
![]() |
cc896e052f |
[IMP] essentials/import data: add Import files section
task-4043639
closes odoo/documentation#11725
X-original-commit:
|
||
![]() |
3d5d0681e9 |
[IMP] Helpdesk: Update SLAs
closes odoo/documentation#11727
X-original-commit:
|
||
![]() |
b2677946fd |
[IMP] Helpdesk: Helpcenter updates
closes odoo/documentation#11726
X-original-commit:
|
||
![]() |
512919de84 |
[IMP] ecommerce: delivery methods
taskid-4016678
closes odoo/documentation#11718
X-original-commit:
|
||
![]() |
461b4565c5 |
[IMP] project/tasks: correction in what triggers reccurence + icon
closes odoo/documentation#11706
Task-id: 3601222
X-original-commit:
|
||
![]() |
8273efda22 |
[ADD] point_of_sale: documentation for pos-based marketing
This PR adds the documentation needed to use pos-based marketing.
In this PR, we introduce configuration and flow related to Email
and WhatsApp marketing in Point of Sale from storing contact details
to sending emails and WhatsApp messages from the point of sale.
task-4053075
closes odoo/documentation#11628
X-original-commit:
|
||
![]() |
851a828fd4 |
[ADD] project: task dependencies
task-4413833
closes odoo/documentation#11671
X-original-commit:
|
||
![]() |
84451d1bf7 |
[FIX] accounting/tax-return: fix tax return menu path
Fix the menu navigation path of the tax return and update for 18.0 UI
task-4424499
closes odoo/documentation#11689
X-original-commit:
|
||
![]() |
4a069b9681 |
[IMP] Helpdesk: update basics 18
closes odoo/documentation#11700
X-original-commit:
|
||
![]() |
9319cc3b71 |
[FIX] Egypt fiscal localizations: Update proxy install instructions
Since Odoo 16, to install the local proxy, users need to select the
"Odoo IoT" option install of the "Local Proxy Mode" to install the local
proxy.
This commit updates both the text and accompanying screenshot
closes odoo/documentation#11670
X-original-commit:
|
||
![]() |
a7264a1687 |
[IMP] inventory: add bpost link
closes odoo/documentation#11683
X-original-commit:
|
||
![]() |
749a8365c7 |
[IMP] accounting/l10n_pe: PLE 12.1 and PLE 13.1 inventory reports
Add new section for reports
Content based on V17
Images : [ADD]Inventory Reports: PLE 12.1 and PLE 13.1 - Images
Expected section to be added: [l10n_pe][USER DOC][ADD]Inventory Reports: PLE 12.1 and PLE 13.1
closes odoo/documentation#11696
X-original-commit:
|
||
![]() |
38cd791272 |
[IMP] Helpdesk: receiving tickets
closes odoo/documentation#11690
X-original-commit:
|
||
![]() |
88620fad79 |
[IMP] Subscriptions: Contract in exception
closes odoo/documentation#10892
X-original-commit:
|
||
![]() |
53c3d6442f |
[I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)
closes odoo/documentation#11673
X-original-commit:
|
||
![]() |
0d794c2cc2 |
[IMP] accounting/l10n_pe: update GRE credentials section
closes odoo/documentation#11632
Context: after Odoo17 the menu changes on the settings from Accounting to Inventory, as this workflow is related to stock moves
X-original-commit:
|
||
![]() |
183fa4245d |
[ADD] inventory: compare packs and uom
closes odoo/documentation#11650
X-original-commit:
|
||
![]() |
fb55e8287c |
[IMP] fiscal_localization/philippines: updates for 18.0
Added sales WHT, QAP & SAWT report, and PH check printing documentation
Based on https://github.com/odoo/documentation/pull/11531
closes odoo/documentation#11604
X-original-commit:
|
||
![]() |
7e583a27d0 |
[FIX] fiscal_localizations: Italy, San Marino's destination code fix
Code is 2R4GTO8, not 2R4GT08.
task-4398355
closes odoo/documentation#11639
X-original-commit:
|
||
![]() |
77acc85e6a |
[IMP] mrp: workcenter wording adjustment
closes odoo/documentation#11627
X-original-commit:
|
||
![]() |
bdbff4fc9a |
[FIX] website/domain: add sub domain
task-4220363
closes odoo/documentation#11612
X-original-commit:
|
||
![]() |
57348bb017 |
[FIX] payment_providers/authorize: update Excel import template
closes odoo/documentation#11589
X-original-commit:
|
||
![]() |
8bc1f02a12 |
[IMP] core: remove @api.returns
closes odoo/documentation#11156 Related: odoo/odoo#182709 Related: odoo/enterprise#71424 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
![]() |
b2f190d628 |
[IMP] ecommerce: shipping
taskid-4016678
closes odoo/documentation#11601
X-original-commit:
|
||
![]() |
a27b8f0494 |
[IMP] Inventory: Update product type documentation
closes odoo/documentation#11529
X-original-commit:
|
||
![]() |
9f82f2d321 |
[IMP] point_of_sale: remove start category feature from pos
In this commit:
==============
The "Start Category" feature has been removed from the Point of Sale.
This feature is now redundant due to the existing "Restrict Category" feature,
which provides similar functionality by limiting the available categories in POS
Task- 4405337
closes odoo/documentation#11602
X-original-commit:
|
||
![]() |
ece8a91059 |
[IMP] fiscal_localization/italy: add configuration steps for fiscal printer
Since Odoo 18.0, we have introduced support for the italian fiscal printer.
These printers often come configured to use HTTP.
However for compliance reasons, Odoo POS is configured to only work with HTTPS.
That difference leads to errors connecting the POS to the printer.
This commit adds steps in the documentation for the users to configure their
printers and Odoo DB in order to resolve those issues.
While I think it's unconventional that we describe in our documentation the
steps to configure a third-party device, find below the only documentation
we were able to find from the manufacturers, while knowing EXCATLY what we were
looking for.
https://download4.epson.biz/sec_pubs/bs/pdf/Fiscal%20Printer%20Intelligent%20Features%20Guide%20Rev%20J.pdf
Given how cryptic this is, I highly doubt clients would make anything out of it,
resulting in many tickets.
here are already 4 tickets related to this issue
opw-4338402
opw-4306960
opw-4328481
opw-4351925
closes odoo/documentation#11597
X-original-commit:
|
||
![]() |
03a68c7be3 |
[IMP] l10n: australia odoo 18 update
closes odoo/documentation#11592
X-original-commit:
|
||
![]() |
eb204b9d21 |
[IMP] accounting: update the analytic budgets page
task-4237563
task-4257623
task-4308176
task-4369415
closes odoo/documentation#11593
X-original-commit:
|
||
![]() |
87b489d36e |
[IMP] core: odoo.domain
odoo/odoo#170009 closes odoo/documentation#10214 Related: odoo/enterprise#65013 Related: odoo/upgrade-util#99 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
![]() |
a88d46164b |
[ADD] sales: add Pricer discounts configuration
We added the support for discounts on pricer tags (electronic labels).
The documentation has been updated to describe the process of linking a pricelist to a tag.
closes odoo/documentation#11590
Task: 4060699
X-original-commit:
|
||
![]() |
bdd4f9d91f |
[IMP] website: replace cloudflare's page rule by redirect rule
closes odoo/documentation#11579
X-original-commit:
|
||
![]() |
48a6b86231 |
[ADD] Helpdesk: Stages
closes odoo/documentation#11584
X-original-commit:
|
||
![]() |
3bdfb21aee |
[ADD] project: new top bar page
task-4277055
closes odoo/documentation#11539
X-original-commit:
|
||
![]() |
5970988577 |
[IMP] Time Off: added multiple request section
closes odoo/documentation#11567
X-original-commit:
|
||
![]() |
68f7c1df12 |
[IMP] website: URL translation note to be updated
taskid-4377816
closes odoo/documentation#11574
X-original-commit:
|
||
![]() |
6995abec3c |
[FIX] Upgrade: Correct URL and text for post-upgrade issues
As stated on the sentence above, in case of an issue with the **production**
database, we should open a ticket with the label (production) and not
testing an upgrade.
This commits adapt the test to match the label currently present on
odoo.com/help and the URL to pre-select the correct stage as well
closes odoo/documentation#11564
X-original-commit:
|
||
![]() |
e9c2290cba |
[IMP] ldap: disable referral chasing for Microsoft AD
based on https://github.com/odoo/documentation/pull/11462
reformat to comply with doc guidelines
closes odoo/documentation#11560
X-original-commit:
|
||
![]() |
617a1d0c82 |
[DOC] tours
closes odoo/documentation#11553
X-original-commit:
|
||
![]() |
b21777ddae |
[FW][IMP] developer/*: update js code to ES6
This PR updates javascript code to be up to date with the codebase standards: - use the `static` keyword when possible - proper owl imports - removed unecessary `@odoo-module` directives Task ID: 2258359 closes odoo/documentation#11483 Forward-port-of: odoo/documentation#11466 Signed-off-by: Bastien Fafchamps (bafa) <bafa@odoo.com> Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
![]() |
f51520413e |
[ADD] accounting: e-invoicing regulations
task-4330898
closes odoo/documentation#11554
X-original-commit:
|
||
![]() |
6a4ed0530f |
[IMP] general: remove mailjet notifications setup
closes odoo/documentation#11551
X-original-commit:
|
||
![]() |
0f03a9db35 |
[IMP] l10n: pos 18.0 and on-premise certification
task-4391068
closes odoo/documentation#11546
X-original-commit:
|
||
![]() |
366f1d4735 |
[IMP] developer/../view_architectures: new control feature
This commit updates the documentation related to the `control` feature of list and kanban views, w.r.t. to recent changes on that matter. Linked to odoo/odoo#188619 task~4063960 closes odoo/documentation#11536 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> |
||
![]() |
989d5b1110 |
[IMP] accounting/avatax: update limitations for 18
closes odoo/documentation#11528
X-original-commit:
|
||
![]() |
d18e03f3a1 |
[IMP] sales: update settings navigation for multi address
closes odoo/documentation#11473
X-original-commit:
|
||
![]() |
f621677aa8 |
[FIX] tutorials: explicit translation function example
closes odoo/documentation#11526
X-original-commit:
|
||
![]() |
a912cf32c7 |
[IMP] POS: returns and credit note
task-4016275
closes odoo/documentation#11502
X-original-commit:
|
||
![]() |
82289fe0fa |
[IMP] website: cloudflare configuration
task-4113085
closes odoo/documentation#11515
X-original-commit:
|
||
![]() |
58aee61dcd |
[IMP] Email marketing: Analyze metrics reports
closes odoo/documentation#11449
X-original-commit:
|
||
![]() |
d60310c25e |
[IMP] Manufacturing: update MO costs
closes odoo/documentation#11475
X-original-commit:
|
||
![]() |
921bf0d82e |
[IMP] Quality: add spreadsheet check to QCP doc
closes odoo/documentation#11476
X-original-commit:
|
||
![]() |
7b64c95fe3 |
[I18N] *: export latest termsi
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)
closes odoo/documentation#11516
X-original-commit:
|
||
![]() |
d7ecf97869 |
[IMP] Fiscal localizations: Add info about Teledec and liasse fiscale
task-4342454
closes odoo/documentation#11512
X-original-commit:
|
||
![]() |
7405eb2f9e |
[IMP] Fiscal Localizations: Add CIS deduction info for UK
task-4341297
closes odoo/documentation#11513
X-original-commit:
|
||
![]() |
2f0c08242e |
[IMP] l10n_my: MyInvois documentation
Recently, there has been a new module to support MyInvois which is legally mandatory for Malaysia. With its release this week, documentation is required for the users to add specific information to register Odoo as an intermediary but also to let them know how the set-up is and the business flow achievable in Odoo.
task-3953659
closes odoo/documentation#11508
X-original-commit:
|
||
![]() |
faa204e0a0 |
[IMP] accounting: info about proforma label on invoices
task-3938154
task-3416326
task-2466972
closes odoo/documentation#11491
X-original-commit:
|
||
![]() |
d53fbfc995 |
[FIX] developer/tutorials/importable_modules: no self in actions
In ir.actions.server, the variable containing the record(s) is not
`self`, but `record` and `records`.
Also, since there is a word about `store` attribute for computed
fields, this commit specifies the behaviour of `readonly` attribute.
closes odoo/documentation#11489
X-original-commit:
|
||
![]() |
096d17c474 |
[IMP] developer: added "--shell-file" CLI option
Added the description for the new '--shell-file' option, which overrides the the $PYTHONSTARTUP env variable to initialize the shell session with a startup Python script. Related docs: https://docs.python.org/3/using/cmdline.html#envvar-PYTHONSTARTUP Community PR: odoo/odoo#185075 task-4306704 closes odoo/documentation#11334 Signed-off-by: Paolo Gatti (pgi) <pgi@odoo.com> |
||
![]() |
112551a0f7 |
[FIX] l10n_in_edi_ewaybill: fix the typos and update the functionality
In commit - |
||
![]() |
1e90d132a6 |
[IMP] Inventory: add UPS warning
closes odoo/documentation#11438
X-original-commit:
|
||
![]() |
ac71b91edc |
[IMP] accounting/l10n_co: Update documentation for DIAN module
This commit improves the official documentation to support the strategy to focus on the new DIAN electronic invoicing module on V18 (leaving notes and references for clients still using Carvajal in this version)
closes odoo/documentation#11445
X-original-commit:
|
||
![]() |
e3e39a0177 |
[IMP] ecommerce: cross-upselling
closes odoo/documentation#11443
Taskid: 4273498
X-original-commit:
|
||
![]() |
f1a3515f83 |
[IMP] on-premise: remove too many users upsell alert block
task-4343506
closes odoo/documentation#11436
X-original-commit:
|
||
![]() |
ccc9337f2c |
[IMP] upgrade: harmonize release interval
task-4346126
closes odoo/documentation#11432
X-original-commit:
|
||
![]() |
7f7ff980ec |
[IMP] localizations: clarify, simplify and update the content
closes odoo/documentation#11423
X-original-commit:
|
||
![]() |
bd285ab701 |
[IMP] l10n_in_gstin_status: add documentation for GSTIN status
task-4143187
closes odoo/documentation#11416
X-original-commit:
|
||
![]() |
483cb357d4 |
[IMP] Productivity: Discuss Getting Started rewrite
[FIX] Updates to Discuss doc for 17.0
Adding reviewer suggestions
Added blank line at end of file
closes odoo/documentation#11421
X-original-commit:
|
||
![]() |
57712dfb99 |
[IMP] accounting/l10n_br: Resourceful links section for onboarding
Add the relevant links to improve the onboarding of new customers. This documentation is accessible from the `res.config` in the customer DB.
To improve the onboarding, when the customer clicks in the DB is redirected here, and the first thing they see are the videos and the onboarding document with more details on how to configure the Avalara Portal, Use cases, tips, and tricks.
closes odoo/documentation#11387
X-original-commit:
|
||
![]() |
44388a8645 |
[IMP] VoIP: Update settings menu images
closes odoo/documentation#11412
X-original-commit:
|
||
![]() |
b639c62201 |
[IMP] send_quotations/pdf_quote_builder
Add documentation about the new features and possibilities of the PDF quote builder.
Delete obsolote information.
closes odoo/documentation#11413
X-original-commit:
|
||
![]() |
a3a1be4fb7 |
[FIX] administration/on-premise: Incorrect ports
In Odoo 18 and lower versions, update notifications are sent over HTTP, not HTTPS: Odoo 18: |
||
![]() |
07122aa8a8 |
[IMP] inventory: landed cost conditions
closes odoo/documentation#11395
X-original-commit:
|
||
![]() |
9490048209 |
[IMP] pos: remove warning "july 22" in six
task-4337378
closes odoo/documentation#11401
X-original-commit:
|
||
![]() |
c31d61cb5b |
[IMP] POS: remove star printer reference
closes odoo/documentation#11383
X-original-commit:
|
||
![]() |
085613f63e |
[IMP] extract_api: Add bank statement documentation
- Updated documentation to include details on the new bank statement
extraction via OCR.
- Removed mention of unsupported discount, product, and unit features
from invoice_lines feature.
Task-3895452
closes odoo/documentation#11393
X-original-commit:
|
||
![]() |
0292755fe1 |
[IMP] accounting: adding info about group payments
task-3518648
closes odoo/documentation#11358
X-original-commit:
|
||
![]() |
6d7d9aacb7 |
[FIX] developer/tutorials/pdf_reports: fix a grammer issue
On line 60 changed "we will can print..." to "we will be able to print..."
closes odoo/documentation#11366
X-original-commit:
|
||
![]() |
71b426177a |
[IMP] payment_providers/paypal: new PayPal version
task-3355211
closes odoo/documentation#11388
X-original-commit:
|
||
![]() |
b29eae5102 |
[FIX] accounting: fix broken OCR tutorial link
closes odoo/documentation#11371
X-original-commit:
|
||
![]() |
3218baee71 |
[ADD] Essentials: Keyboard shortcuts
closes odoo/documentation#10969
X-original-commit:
|
||
![]() |
08a3f15732 |
[IMP] upgrade: sla clarifications
closes odoo/documentation#11365
X-original-commit:
|
||
![]() |
d458c753b5 |
[IMP] Calendar sync: changing title of google doc
closes odoo/documentation#11351
X-original-commit:
|
||
![]() |
740cf75f94 |
[ADD] Payroll: Salary attachments
closes odoo/documentation#11342
X-original-commit:
|
||
![]() |
6395455f0b |
[IMP] core: SQLObject replaces _sql_constraints
task-3390431 closes odoo/documentation#11071 Related: odoo/odoo#175783 Related: odoo/enterprise#68589 Signed-off-by: Krzysztof Magusiak (krma) <krma@odoo.com> |
||
![]() |
381ae7793b |
[I18N] add es_419 to the documentation
This commit adds es_419 (LATAM Spanish) to the available languages. It
populates LATAM Spanish translation based on the existing Spanish
translation.
closes odoo/documentation#11221
X-original-commit:
|
||
![]() |
7d8368e553 |
[I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)
closes odoo/documentation#11331
X-original-commit:
|
||
![]() |
07ef80ec47 |
[IMP] General: Update manage inbound email doc
closes odoo/documentation#11309
X-original-commit:
|
||
![]() |
973c9a1f5a |
[I18N] add vi and id to the language switcher
closes odoo/documentation#11323
X-original-commit:
|
||
![]() |
d7b4114728 |
[IMP] l10n_cl: Update main EDI module and description
closes odoo/documentation#11329
X-original-commit:
|
||
![]() |
2e661006e5 |
[ADD] Payroll: Salary attachment report
closes odoo/documentation#11313
X-original-commit:
|
||
![]() |
7c2a16b28d |
[FW][FIX] developer/view_architectures: fix a typo
Corrected a typo in the file view_architectures.rst on line 2395. Changed 'than' to 'that'. closes odoo/documentation#11317 Forward-port-of: odoo/documentation#11314 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
![]() |
44b4138a45 |
[ADD] Developer: data module tutorial
Introduce a new tutorial about creating Odoo modules using XML data files
instead of Python code.
This guide is follows closely the 'Server Framework 101' tutorial and
covers the following:
- Module structure and deployment
- Defining models and fields
- Setting up security and access rights
- Creating views and actions
- Implementing relational fields (many2one, many2many, one2many)
- Working with computed and related fields
- Adding business logic through server actions and automation rules
- Creating website controllers for API endpoints
The tutorial includes practical exercises and code examples to reinforce
learning, catering to developers who need to customize Odoo without writing
Python code (e.g. Odoo PS-Tech employees, partners that focus on SaaS instances
or author of Industry modules).
Task-4167176
closes odoo/documentation#11305
X-original-commit:
|
||
![]() |
7b6f0d9226 |
[IMP] contributing/git: add [PERF] to the valid commit tags
The [PERF] commit tag passes the runbot minimal check and has been
used in lots of patches. E.g.
- odoo/odoo@f02bcfadcb
- odoo/odoo@b30b059898
- odoo/odoo@780a2bb601
However this tag was not listed in the documentation yet. This led
to confusion for reviewers not accustomed with it. This commit
fixes that.
closes odoo/documentation#11300
X-original-commit:
|
||
![]() |
24bf905cd9 |
[IMP] accounting/l10n_pe: update modules and description
Remove older ‘Introduction section’
Add a table listing and update of the currently supported features and modules with a description of its functionality (like the format/structure displayed for Chile Localization page)
Update the description of suggested and related resources, such as Smart Tutorial videos
closes odoo/documentation#11282
X-original-commit:
|
||
![]() |
f3d2381bf4 |
[IMP] developer/changelog: controllers json -> jsonrpc
Task-4257153 closes odoo/documentation#11292 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
![]() |
117aae0771 |
[IMP] accounting: ca_l10n spelling fix
closes odoo/documentation#11260
X-original-commit:
|
||
![]() |
9c4d9b35dc |
[IMP] POS: add a configuration step to enable ePos printers
task-4055549
closes odoo/documentation#11289
X-original-commit:
|
||
![]() |
bd5fdcfbb4 |
[IMP] Iot: Remove star printer reference
closes odoo/documentation#11281
X-original-commit:
|
||
![]() |
8b7c7f4b6e |
[FIX] l10n_de: Fix second broken GoBD link
There were two broken links originally, one of which was fixed by PR#10074. This commit will remove the first link entirely and fix the second link, as suggested by TSB.
task-4088554
closes odoo/documentation#11274
X-original-commit:
|
||
![]() |
eed7e42a14 |
[ADD] inventory: dispatch management system
closes odoo/documentation#11268
X-original-commit:
|
||
![]() |
11cc952979 |
[IMP] core: Deprecate toggle_active()
task-3983933 closes odoo/documentation#11261 Related: odoo/odoo#183691 Related: odoo/enterprise#71963 Signed-off-by: Krzysztof Magusiak (krma) <krma@odoo.com> |
||
![]() |
9049311711 |
[ADD] tools: add populate cli documentation
closes odoo/documentation#11266
X-original-commit:
|
||
![]() |
51369b1001 |
[IMP] POS: move replicated title into one page
task-3973404
Must come back in 16.0 & 17.0
closes odoo/documentation#11265
X-original-commit:
|
||
![]() |
1e551ebb73 |
[IMP] ar_l10n: remove extra comma
closes odoo/documentation#11256
X-original-commit:
|
||
![]() |
9dfef5e151 |
[IMP] accounting/l10n_br: IAP Free Credits Clarification
Odoo gives users 500 free IAP credits when they start with Odoo in BR in production databases. This is an important information that was not clarified.
closes odoo/documentation#11245
X-original-commit:
|
||
![]() |
4a927f0d46 |
[ADD] sign: legality of electronic signatures in germany
closes odoo/documentation#11249
X-original-commit:
|
||
![]() |
9b3e9a3c8e |
[IMP] accounting: deferred full months
Feature added in commit |
||
![]() |
987a40cb29 |
[IMP] accounting: add loan management
This has been done in https://github.com/odoo/enterprise/pull/68698
closes odoo/documentation#11235
X-original-commit:
|
||
![]() |
e6ffeb0da4 |
[IMP] web: notification: custom autoclose delay
closes odoo/documentation#11230
X-original-commit:
|
||
![]() |
cfd0fbe6b0 |
[IMP] Contacts: Update contacts basics
closes odoo/documentation#11223
X-original-commit:
|
||
![]() |
dfa899e959 |
[IMP] Inventory: Updating serial numbers documentation
closes odoo/documentation#11218
X-original-commit:
|
||
![]() |
76d6a9a84e |
[FIX] general : Update link from Google Domains to Squarespace
Task-4224635
closes odoo/documentation#11215
X-original-commit:
|
||
![]() |
343d8cafb4
|
[FIX] legal: update license info for 18.0
X-original-commit:
|
||
![]() |
72ccbd43d7 |
[IMP] studio: update approval rules for v18
closes odoo/documentation#11209
X-original-commit:
|
||
![]() |
4caa891ad8 |
[ADD] l10n_in_withholding: add TDS/TCS threshold alert (India)
with this commit: added TDS/TCS threshold alert (India) task - 4143155 closes odoo/documentation#11109 Signed-off-by: Raj Bhuva (bhra) <bhra@odoo.com> |
||
![]() |
dcb48c3dc4 |
[IMP] inventory: improve routes definitions
closes odoo/documentation#11169
X-original-commit:
|
||
![]() |
8b7be69be6 |
[IMP] inventory: merge resupply
closes odoo/documentation#11205
X-original-commit:
|
||
![]() |
81f28e0793 |
[IMP] surveys: add cards and links/intros
closes odoo/documentation#11177
X-original-commit:
|
||
![]() |
f1a607a9c7 |
[IMP] *: Using class name corresponding to odoo models
closes odoo/documentation#11115 Related: odoo/odoo#178200 Related: odoo/enterprise#69762 Related: odoo/upgrade#6577 Related: odoo/design-themes#988 Related: odoo/upgrade-util#143 Signed-off-by: Christophe Matthieu (chm) <chm@odoo.com> |
||
![]() |
9368181d04 |
[REF] inventory: resupply warehouses
closes odoo/documentation#11195
X-original-commit:
|
||
![]() |
d87271002b |
[IMP] inventory: fix typos in shipping table
closes odoo/documentation#11185
X-original-commit:
|
||
![]() |
783ab8f2c0 |
[ADD] Payroll: Work entry analysis report
closes odoo/documentation#11181
X-original-commit:
|
||
![]() |
da0360cdd5 |
[FW][ADD] odoo.sh: new ci token usage
closes odoo/documentation#11190 Forward-port-of: odoo/documentation#11172 Signed-off-by: Fabien Meghazi (fme) <fme@odoo.com> Signed-off-by: Stanislas Sobieski (sts) <sts@odoo.com> Co-authored-by: Fabien Meghazi <fme@odoo.com> Co-authored-by: Stanislas Sobieski <sts@odoo.com> |
||
![]() |
e17d6d7689 |
[ADD] payment_providers/worldline
task-3499275
New payment provider and its related configuration; remove Ogone and SIPS payments providers as they were replaced by Wordline.
closes odoo/documentation#11173
X-original-commit:
|
||
![]() |
e174fa9e3e |
[IMP] ecommerce: products page updated
closes odoo/documentation#11165
Taskid: 4056328
X-original-commit:
|
||
![]() |
3d2422b3bd |
[IMP] accounting: split deferred settings
This has been done in |
||
![]() |
d7eb8f014b |
[IMP] calendar: expand parent documentation
[ADD] expand parent calendar documentation
[FIX] formatting changes
[FIX] formatting changes
[FIX] content changes
Apply suggestions from KAEK review
[FIX] KAEK review edits
[FIX] resize images
Apply suggestions from KSC review
[FIX] content from KSC review
[FIX] revisions KSC review
[FIX] formatting
newline
formatting
Apply suggestions from KSC review
[FIX] Content change
[FIX] Content changes
Apply suggestions from KSC review
Apply suggestions from SALI review
Apply suggestions from SALI review2
content changes
format
Apply suggestions from SALI review
content
content
closes odoo/documentation#11133
X-original-commit:
|
||
![]() |
9a2921ba52 |
[IMP] administration: on-premise publisher warranty URL
task-4226945
closes odoo/documentation#11155
X-original-commit:
|
||
![]() |
c42963cda9 |
[I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)
Also update the tx/config to point to v18 project
closes odoo/documentation#11149
X-original-commit:
|
||
![]() |
38ce2431e5 |
[ADD] purchase: import vendor pricelist
closes odoo/documentation#11142
X-original-commit:
|
||
![]() |
5c43477540 |
[IMP] Appraisals: Skills Report - highest improvement
closes odoo/documentation#11137
X-original-commit:
|
||
![]() |
e56cfe5e48 |
[ADD] inventory: valuation by lots
closes odoo/documentation#10858 Signed-off-by: Felicia Kuan (feku) <feku@odoo.com> Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com> Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com> Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com> |
||
![]() |
5627bea8aa |
[IMP] supported_versions: release 18.0
closes odoo/documentation#11126
X-original-commit:
|
||
![]() |
3f048e7997 |
[FW][IMP] developer/testing: update tours documentation
The towers interface was modified during version 17. Therefore, in this commit, we update the documentation of this interface. closes odoo/documentation#11117 Forward-port-of: odoo/documentation#11116 Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com> |
||
![]() |
a13bf9b24f |
[IMP] accounting: pdf menu to export reports
task-3605633
closes odoo/documentation#11114
X-original-commit:
|
||
![]() |
615d282910 |
[FIX] website: recaptcha threshold number
task-4145451
closes odoo/documentation#11108
X-original-commit:
|
||
![]() |
f820f189a2 |
[ADD] Appraisals: Skills Evolution reporting
closes odoo/documentation#11102
X-original-commit:
|
||
![]() |
1d17ceda3c |
[ADD] Employees: Certifications
closes odoo/documentation#11101
X-original-commit:
|
||
![]() |
4b5b008063 |
[ADD] Employees: Employee retention report
closes odoo/documentation#11094
X-original-commit:
|
1
.gitignore
vendored
|
@ -8,4 +8,3 @@ _build/
|
|||
|
||||
# Dependencies
|
||||
odoo
|
||||
venv/
|
36
Makefile
|
@ -14,7 +14,6 @@ ifndef CURRENT_LANG
|
|||
endif
|
||||
|
||||
SPHINX_BUILD = sphinx-build
|
||||
SPHINX_AUTO_BUILD = sphinx-autobuild
|
||||
CONFIG_DIR = .
|
||||
SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSION) \
|
||||
-D versions=$(VERSIONS) -D languages=$(LANGUAGES) -D language=$(CURRENT_LANG) \
|
||||
|
@ -25,21 +24,10 @@ SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSIO
|
|||
-A plausible_domain=$(PLAUSIBLE_DOMAIN) \
|
||||
-j $(WORKERS)
|
||||
SOURCE_DIR = content
|
||||
THEME = extensions/odoo_theme
|
||||
THEME_STATIC = extensions/odoo_theme/static
|
||||
LOCALE = locale
|
||||
STATIC = static
|
||||
REDIRECTS = redirects
|
||||
SERVER_IP := $(shell ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
||||
# Get all listening ports
|
||||
LISTENING_PORTS := $(shell ss -tuln | awk 'NR>1 {print $$4}' | awk -F: '{print $$NF}' | sort -n | uniq)
|
||||
LOGFILE := $(BUILD_DIR)/live_server.log
|
||||
# Default port
|
||||
OPEN_PORTS := $(shell ss -tuln | awk 'NR>1 {print $$4}' | awk -F: '{print $$NF}' | sort -n | uniq)
|
||||
SELECTED_PORT := $(shell echo "$(OPEN_PORTS)" | awk 'NR==1')
|
||||
|
||||
HTML_BUILD_DIR = $(BUILD_DIR)/html
|
||||
ifdef VERSIONS
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/18.0
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
|
||||
endif
|
||||
ifneq ($(CURRENT_LANG),en)
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
|
||||
|
@ -64,24 +52,8 @@ clean:
|
|||
|
||||
html: $(HTML_BUILD_DIR)/_static/style.css
|
||||
@echo "Starting build..."
|
||||
$(SPHINX_BUILD) -q -c $(CONFIG_DIR) -b html $(SPHINXOPTS) $(SOURCE_DIR) $(HTML_BUILD_DIR)
|
||||
$(SPHINX_BUILD) -c $(CONFIG_DIR) -b html $(SPHINXOPTS) $(SOURCE_DIR) $(HTML_BUILD_DIR)
|
||||
@echo "Build finished."
|
||||
html_log: SPHINXOPTS += -A collapse_menu=True
|
||||
html_log: $(HTML_BUILD_DIR)/_static/style.css
|
||||
@echo "Starting build..."
|
||||
$(SPHINX_BUILD) -q -c $(CONFIG_DIR) -b html $(SPHINXOPTS) $(SOURCE_DIR) $(HTML_BUILD_DIR) > $(LOGFILE) 2>&1
|
||||
@echo "Build finished."
|
||||
|
||||
live: SPHINXOPTS += -A collapse_menu=True
|
||||
live:
|
||||
@echo "Starting Live Server..."
|
||||
$(SPHINX_AUTO_BUILD) $(SOURCE_DIR) $(HTML_BUILD_DIR) \
|
||||
--port 8000 --host $(SERVER_IP) \
|
||||
--watch $(THEME) --watch $(LOCALE) --watch $(STATIC) --watch $(REDIRECTS) --watch $(THEME_STATIC) --watch . \
|
||||
--pre-build "sh -c 'mkdir -p $(HTML_BUILD_DIR)/_static && python3 -m pysassc $(THEME)/static/style.scss $(HTML_BUILD_DIR)/_static/style.css'" \
|
||||
$(SPHINXOPTS) -c $(CONFIG_DIR) -b html
|
||||
|
||||
|
||||
|
||||
# To call *after* `make html`
|
||||
# Binary dependencies (Debian): texlive-fonts-recommended texlive-latex-extra
|
||||
|
@ -107,7 +79,7 @@ $(HTML_BUILD_DIR)/_static/style.css: extensions/odoo_theme/static/style.scss ext
|
|||
#=== Development and debugging rules ===#
|
||||
|
||||
fast: SPHINXOPTS += -A collapse_menu=True
|
||||
fast: hmlt
|
||||
fast: html
|
||||
|
||||
static: $(HTML_BUILD_DIR)/_static/style.css
|
||||
cp -r extensions/odoo_theme/static/* $(HTML_BUILD_DIR)/_static/
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Documentation
|
||||
# Odoo documentation
|
||||
|
||||
## Build the documentation locally
|
||||
|
||||
|
|
526
conf.py
|
@ -13,92 +13,86 @@ from sphinx.util import logging
|
|||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
# === General configuration ===#
|
||||
#=== General configuration ===#
|
||||
|
||||
# General information about the project.
|
||||
project = "Odoo"
|
||||
copyright = "Odoo S.A."
|
||||
project = 'Odoo'
|
||||
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 alpha/beta/rc tags. Acts as replacement for |release|.
|
||||
version = release = "18.0"
|
||||
version = release = 'master'
|
||||
|
||||
# `current_branch` is the technical name of the current branch.
|
||||
# E.g., saas-15.4 -> saas-15.4; 12.0 -> 12.0, master -> master (*).
|
||||
current_branch = version
|
||||
# `current_version` is the Odoo version linked to the current branch.
|
||||
# E.g., saas-15.4 -> 15.4; 12.0 -> 12; master -> master (*).
|
||||
current_version = current_branch.replace("saas-", "").replace(".0", "")
|
||||
current_version = current_branch.replace('saas-', '').replace('.0', '')
|
||||
# `current_major_branch` is the technical name of the major branch before the current branch.
|
||||
# E.g., saas-15.4 -> 15.0; 12.0 -> 12.0; master -> master (*).
|
||||
current_major_branch = re.sub(r"\.\d", ".0", current_branch.replace("saas-", ""))
|
||||
current_major_branch = re.sub(r'\.\d', '.0', current_branch.replace('saas-', ''))
|
||||
# `current_major_version` is the Odoo version linked to the current major branch.
|
||||
# E.g., saas-15.4 -> 15; 12.0 -> 12; master -> master (*).
|
||||
current_major_version = current_major_branch.replace(".0", "")
|
||||
current_major_version = current_major_branch.replace('.0', '')
|
||||
# (*): We don't care for master.
|
||||
|
||||
# The minimal Sphinx version required to build the documentation.
|
||||
needs_sphinx = "3.0.0"
|
||||
needs_sphinx = '3.0.0'
|
||||
|
||||
# The default language in which the documentation is written. It is set to `None` because Sphinx
|
||||
# considers that no language means 'en'.
|
||||
language = None
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = {
|
||||
".md": "markdown",
|
||||
".rst": "restructuredtext",
|
||||
}
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = "index"
|
||||
master_doc = 'index'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and directories to ignore when
|
||||
# looking for source files.
|
||||
exclude_patterns = [
|
||||
"locale",
|
||||
"README.*",
|
||||
"bin",
|
||||
"include",
|
||||
"lib",
|
||||
"odoo",
|
||||
'locale',
|
||||
'README.*',
|
||||
'bin', 'include', 'lib',
|
||||
'odoo',
|
||||
]
|
||||
|
||||
# The RST text role to use when the role is not specified. E.g.: `example`.
|
||||
# We use 'literal' as default role for markdown compatibility: `foo` behaves like ``foo``.
|
||||
# See https://docutils.sourceforge.io/docs/ref/rst/roles.html#standard-roles for other roles.
|
||||
default_role = "literal"
|
||||
default_role = 'literal'
|
||||
|
||||
|
||||
html_copy_source = False
|
||||
# Whether scaled down images should be be wrapped in a `<a/>` tag linking to the image file or not.
|
||||
html_scaled_image_link = False
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text
|
||||
add_function_parentheses = True
|
||||
|
||||
# === Extensions configuration ===#
|
||||
#=== Extensions configuration ===#
|
||||
|
||||
source_read_replace_vals = {
|
||||
"BRANCH": current_branch,
|
||||
"CURRENT_BRANCH": current_branch,
|
||||
"CURRENT_VERSION": current_version,
|
||||
"CURRENT_MAJOR_BRANCH": current_major_branch,
|
||||
"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}",
|
||||
"OWL_PATH": f"https://github.com/odoo/owl/blob/master",
|
||||
'BRANCH': current_branch,
|
||||
'CURRENT_BRANCH': current_branch,
|
||||
'CURRENT_VERSION': current_version,
|
||||
'CURRENT_MAJOR_BRANCH': current_major_branch,
|
||||
'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}',
|
||||
'OWL_PATH': f'https://github.com/odoo/owl/blob/master',
|
||||
}
|
||||
|
||||
# Add extensions directory to PYTHONPATH
|
||||
extension_dir = Path("extensions")
|
||||
extension_dir = Path('extensions')
|
||||
sys.path.insert(0, str(extension_dir.absolute()))
|
||||
|
||||
# Search for the directory of odoo sources to know whether autodoc should be used on the dev doc
|
||||
odoo_sources_candidate_dirs = (Path("Odoo18"), Path("../Odoo18"))
|
||||
# odoo_sources_candidate_dirs = (Path('odoo'), Path('../odoo'))
|
||||
odoo_sources_candidate_dirs = (Path('odoo'), Path('../odoo'))
|
||||
odoo_sources_dirs = [
|
||||
d for d in odoo_sources_candidate_dirs if d.is_dir() and (d / "odoo-bin").exists()
|
||||
d for d in odoo_sources_candidate_dirs if d.is_dir() and (d / 'odoo-bin').exists()
|
||||
]
|
||||
odoo_dir_in_path = False
|
||||
|
||||
|
@ -109,30 +103,20 @@ if not odoo_sources_dirs:
|
|||
"The 'Developer' documentation will be built but autodoc directives will be skipped.\n"
|
||||
"In order to fully build the 'Developer' documentation, clone the repository with "
|
||||
"`git clone https://github.com/odoo/odoo` or create a symbolic link.",
|
||||
{
|
||||
"dir_list": "\n".join(
|
||||
[f"\t- {d.resolve()}" for d in odoo_sources_candidate_dirs]
|
||||
)
|
||||
},
|
||||
{'dir_list': '\n'.join([f'\t- {d.resolve()}' for d in odoo_sources_candidate_dirs])},
|
||||
)
|
||||
else:
|
||||
if (3, 6) < sys.version_info < (3, 7):
|
||||
# Running odoo needs python 3.7 min but monkey patch version_info to be compatible with 3.6.
|
||||
sys.version_info = (3, 7, 0)
|
||||
odoo_dir = odoo_sources_dirs[0].resolve()
|
||||
source_read_replace_vals["ODOO_RELPATH"] = "/../" + str(odoo_sources_dirs[0])
|
||||
source_read_replace_vals['ODOO_RELPATH'] = '/../' + str(odoo_sources_dirs[0])
|
||||
sys.path.insert(0, str(odoo_dir))
|
||||
import odoo.addons
|
||||
|
||||
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 "alpha" in odoo_release.version else odoo_version
|
||||
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 '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 "
|
||||
|
@ -140,23 +124,17 @@ else:
|
|||
"The 'Developer' documentation will be built but autodoc directives will be skipped.\n"
|
||||
"In order to fully build the 'Developer' documentation, checkout the matching branch"
|
||||
" with `cd odoo && git checkout %(doc_version)s`.",
|
||||
{
|
||||
"directory": odoo_dir,
|
||||
"odoo_version": odoo_version,
|
||||
"doc_version": version,
|
||||
},
|
||||
{'directory': odoo_dir, 'odoo_version': odoo_version, 'doc_version': version},
|
||||
)
|
||||
else:
|
||||
_logger.info(
|
||||
"Found Odoo sources in %(directory)s matching documentation version '%(version)s'.",
|
||||
{"directory": odoo_dir, "version": release},
|
||||
{'directory': odoo_dir, 'version': release},
|
||||
)
|
||||
odoo_dir_in_path = True
|
||||
|
||||
if odoo_dir_in_path:
|
||||
upgrade_util_dir = next(
|
||||
filter(Path.exists, [Path("upgrade-util"), Path("../upgrade-util")]), None
|
||||
)
|
||||
upgrade_util_dir = next(filter(Path.exists, [Path('upgrade-util'), Path('../upgrade-util')]), None)
|
||||
if not upgrade_util_dir:
|
||||
_logger.warning(
|
||||
"Could not find Upgrade Utils sources directory in `upgrade_util`.\n"
|
||||
|
@ -168,165 +146,151 @@ if odoo_dir_in_path:
|
|||
else:
|
||||
_logger.info(
|
||||
"Found Upgrade Util sources in %(directory)s",
|
||||
{"directory": upgrade_util_dir.resolve()},
|
||||
{'directory': upgrade_util_dir.resolve()},
|
||||
)
|
||||
from odoo import upgrade
|
||||
|
||||
upgrade.__path__.append(str((upgrade_util_dir / "src").resolve()))
|
||||
upgrade.__path__.append(str((upgrade_util_dir / 'src').resolve()))
|
||||
|
||||
# Mapping between odoo models related to master data and the declaration of the
|
||||
# data. This is used to point users to available xml_ids when giving values for
|
||||
# a field with the autodoc_field extension.
|
||||
model_references = {
|
||||
"account.account.type": "addons/account/data/data_account_type.xml",
|
||||
"res.country": "odoo/addons/base/data/res_country_data.xml",
|
||||
"res.currency": "odoo/addons/base/data/res_currency_data.xml",
|
||||
'account.account.type': 'addons/account/data/data_account_type.xml',
|
||||
'res.country': 'odoo/addons/base/data/res_country_data.xml',
|
||||
'res.currency': 'odoo/addons/base/data/res_currency_data.xml',
|
||||
}
|
||||
|
||||
# The Sphinx extensions to use, as module names.
|
||||
# They can be extensions coming with Sphinx (named 'sphinx.ext.*') or custom ones.
|
||||
extensions = [
|
||||
# Link sources in other projects (used to build the reference doc)
|
||||
"sphinx.ext.intersphinx",
|
||||
'sphinx.ext.intersphinx',
|
||||
|
||||
# Support the specialized to-do directives
|
||||
"sphinx.ext.todo",
|
||||
'sphinx.ext.todo',
|
||||
|
||||
# Custom Odoo theme
|
||||
"odoo_theme",
|
||||
'odoo_theme',
|
||||
|
||||
# Youtube and Vimeo videos integration (youtube, vimeo directives)
|
||||
"embedded_video",
|
||||
"custom_admonitions",
|
||||
'embedded_video',
|
||||
|
||||
'custom_admonitions',
|
||||
|
||||
# Redirection generator
|
||||
"redirects",
|
||||
'redirects',
|
||||
|
||||
# Content tabs
|
||||
"sphinx_tabs.tabs",
|
||||
'sphinx_tabs.tabs',
|
||||
|
||||
# Cards
|
||||
# "cards",
|
||||
'cards',
|
||||
|
||||
# Spoilers
|
||||
"spoilers",
|
||||
'spoilers',
|
||||
|
||||
# Strange html domain logic used in memento pages
|
||||
"html_domain",
|
||||
"myst_parser",
|
||||
"sphinx_design",
|
||||
'html_domain',
|
||||
]
|
||||
|
||||
myst_enable_extensions = [
|
||||
"amsmath",
|
||||
"colon_fence",
|
||||
"deflist",
|
||||
"dollarmath",
|
||||
"fieldlist",
|
||||
"html_admonition",
|
||||
"html_image",
|
||||
"replacements",
|
||||
"smartquotes",
|
||||
"strikethrough",
|
||||
"substitution",
|
||||
"tasklist",
|
||||
]
|
||||
if odoo_dir_in_path:
|
||||
# GitHub links generation
|
||||
extensions += [
|
||||
"sphinx.ext.linkcode",
|
||||
"github_link",
|
||||
'sphinx.ext.linkcode',
|
||||
'github_link',
|
||||
# Parse Python docstrings (autodoc, automodule, autoattribute directives)
|
||||
"sphinx.ext.autodoc",
|
||||
"autodoc_field",
|
||||
'sphinx.ext.autodoc',
|
||||
'autodoc_field',
|
||||
]
|
||||
else:
|
||||
extensions += [
|
||||
"autodoc_placeholder",
|
||||
'autodoc_placeholder',
|
||||
]
|
||||
extensions.append(
|
||||
"sphinx.ext.graphviz" if shutil.which("dot") else "graphviz_placeholder"
|
||||
)
|
||||
extensions.append('sphinx.ext.graphviz' if shutil.which('dot') else 'graphviz_placeholder')
|
||||
|
||||
todo_include_todos = False
|
||||
|
||||
intersphinx_mapping = {
|
||||
"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),
|
||||
'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 = "NextERP"
|
||||
github_project = "documentation"
|
||||
github_user = 'odoo'
|
||||
github_project = 'documentation'
|
||||
|
||||
locale_dirs = ["../locale/"]
|
||||
templates_path = ["../extensions"]
|
||||
locale_dirs = ['../locale/']
|
||||
templates_path = ['../extensions']
|
||||
|
||||
# custom docname_to_domain to divide the translations of applications in subdirectories
|
||||
sphinx.transforms.i18n.docname_to_domain = sphinx.util.i18n.docname_to_domain = (
|
||||
lambda docname, compact: docname.split("/")[
|
||||
1 if docname.startswith("applications/") else 0
|
||||
]
|
||||
)
|
||||
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 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",
|
||||
"saas-18.1": "Odoo Online",
|
||||
"18.0": "18.0",
|
||||
"saas-17.4": "Odoo Online",
|
||||
"saas-17.2": "Odoo Online",
|
||||
"17.0": "Odoo 17",
|
||||
"16.0": "Odoo 16",
|
||||
"15.0": "Odoo 15",
|
||||
'master': "Master",
|
||||
'saas-18.1': "Odoo Online",
|
||||
'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 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",
|
||||
"es": "ES",
|
||||
"es_419": "ES (LATAM)",
|
||||
"fr": "FR",
|
||||
"id": "ID",
|
||||
"it": "IT",
|
||||
"ja": "JA",
|
||||
"ko": "KR",
|
||||
"nl": "NL",
|
||||
"pt_BR": "PT",
|
||||
"ro": "RO",
|
||||
"sv": "SV",
|
||||
"th": "TH",
|
||||
"uk": "UA",
|
||||
"vi": "VI",
|
||||
"zh_CN": "ZH (CN)",
|
||||
"zh_TW": "ZH (TW)",
|
||||
'de': 'DE',
|
||||
'en': 'EN',
|
||||
'es': 'ES',
|
||||
'es_419': 'ES (LATAM)',
|
||||
'fr': 'FR',
|
||||
'id': 'ID',
|
||||
'it': 'IT',
|
||||
'ja': 'JA',
|
||||
'ko': 'KR',
|
||||
'nl': 'NL',
|
||||
'pt_BR': 'PT',
|
||||
'ro': 'RO',
|
||||
'sv': 'SV',
|
||||
'th': 'TH',
|
||||
'uk': 'UA',
|
||||
'vi': 'VI',
|
||||
'zh_CN': 'ZH (CN)',
|
||||
'zh_TW': 'ZH (TW)'
|
||||
}
|
||||
|
||||
# The directory in which files holding redirect rules used by the 'redirects' extension are listed.
|
||||
redirects_dir = "redirects/"
|
||||
redirects_dir = 'redirects/'
|
||||
|
||||
sphinx_tabs_disable_tab_closing = True
|
||||
sphinx_tabs_disable_css_loading = True
|
||||
|
||||
# Autodoc ordering
|
||||
autodoc_member_order = "bysource"
|
||||
autodoc_member_order = 'bysource'
|
||||
|
||||
# === Options for HTML output ===#
|
||||
#=== Options for HTML output ===#
|
||||
|
||||
html_theme = "odoo_theme"
|
||||
html_theme = 'odoo_theme'
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
# See extensions/odoo_theme/pygments_override.py
|
||||
pygments_style = "odoo"
|
||||
pygments_style = 'odoo'
|
||||
|
||||
# The paths that contain custom themes, relative to this directory.
|
||||
html_theme_path = ["extensions"]
|
||||
html_theme_path = ['extensions']
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the docs.
|
||||
# This file should be a Windows icon file (.ico) being 16x16 or 32x32 pixels large.
|
||||
html_favicon = os.path.join(
|
||||
html_theme_path[0], html_theme, "static", "img", "favicon.ico"
|
||||
)
|
||||
html_favicon = os.path.join(html_theme_path[0], html_theme, 'static', 'img', 'favicon.ico')
|
||||
|
||||
# The paths that contain custom static files, relative to this directory.
|
||||
# They are copied after the builtin static files, so a file named "default.css" will overwrite the
|
||||
# builtin "default.css".
|
||||
html_static_path = ["static"]
|
||||
html_static_path = ['static']
|
||||
html_permalinks = True
|
||||
|
||||
# Additional JS & CSS files that can be imported with the 'custom-js' and 'custom-css' metadata.
|
||||
|
@ -336,131 +300,72 @@ html_css_files = []
|
|||
|
||||
# PHP lexer option to not require <?php
|
||||
highlight_options = {
|
||||
"php": {"startinline": True},
|
||||
'php': {'startinline': True},
|
||||
}
|
||||
|
||||
# === Options for LaTeX output ===#
|
||||
#=== Options for LaTeX output ===#
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
"papersize": "a4paper",
|
||||
'papersize': 'a4paper',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
"preamble": r"\usepackage{odoo}",
|
||||
"tableofcontents": "", # no TOC
|
||||
'preamble': r'\usepackage{odoo}',
|
||||
'tableofcontents': '', # no TOC
|
||||
|
||||
# Output manually in latex docs
|
||||
"releasename": release,
|
||||
'releasename': release,
|
||||
}
|
||||
|
||||
latex_additional_files = ["static/latex/odoo.sty"]
|
||||
latex_additional_files = ['static/latex/odoo.sty']
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples:
|
||||
# (source start file, target name, title, author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(
|
||||
"legal/terms/enterprise_tex",
|
||||
"odoo_enterprise_agreement.tex",
|
||||
"Odoo Enterprise Subscription Agreement",
|
||||
"",
|
||||
"howto",
|
||||
),
|
||||
(
|
||||
"legal/terms/partnership_tex",
|
||||
"odoo_partnership_agreement.tex",
|
||||
"Odoo Partnership Agreement",
|
||||
"",
|
||||
"howto",
|
||||
),
|
||||
(
|
||||
"legal/terms/terms_of_sale",
|
||||
"terms_of_sale.tex",
|
||||
"Odoo Terms of Sale",
|
||||
"",
|
||||
"howto",
|
||||
),
|
||||
(
|
||||
"legal/terms/i18n/enterprise_tex_fr",
|
||||
"odoo_enterprise_agreement_fr.tex",
|
||||
"Odoo Enterprise Subscription Agreement (FR)",
|
||||
"",
|
||||
"howto",
|
||||
),
|
||||
(
|
||||
"legal/terms/i18n/partnership_tex_fr",
|
||||
"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 Subscription Agreement (NL)",
|
||||
"",
|
||||
"howto",
|
||||
),
|
||||
(
|
||||
"legal/terms/i18n/enterprise_tex_de",
|
||||
"odoo_enterprise_agreement_de.tex",
|
||||
"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",
|
||||
"Odoo Enterprise Subscription Agreement (ES)",
|
||||
"",
|
||||
"howto",
|
||||
),
|
||||
(
|
||||
"legal/terms/i18n/partnership_tex_es",
|
||||
"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",
|
||||
"Odoo Enterprise Subscription Agreement (PT)",
|
||||
"",
|
||||
"howto",
|
||||
),
|
||||
('legal/terms/enterprise_tex', 'odoo_enterprise_agreement.tex',
|
||||
'Odoo Enterprise Subscription Agreement', '', 'howto'),
|
||||
('legal/terms/partnership_tex',
|
||||
'odoo_partnership_agreement.tex', 'Odoo Partnership Agreement', '', 'howto'),
|
||||
('legal/terms/terms_of_sale',
|
||||
'terms_of_sale.tex', 'Odoo Terms of Sale', '', 'howto'),
|
||||
|
||||
('legal/terms/i18n/enterprise_tex_fr', 'odoo_enterprise_agreement_fr.tex',
|
||||
'Odoo Enterprise Subscription Agreement (FR)', '', 'howto'),
|
||||
('legal/terms/i18n/partnership_tex_fr',
|
||||
'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 Subscription Agreement (NL)', '', 'howto'),
|
||||
|
||||
('legal/terms/i18n/enterprise_tex_de', 'odoo_enterprise_agreement_de.tex',
|
||||
'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',
|
||||
'Odoo Enterprise Subscription Agreement (ES)', '', 'howto'),
|
||||
('legal/terms/i18n/partnership_tex_es',
|
||||
'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',
|
||||
'Odoo Enterprise Subscription Agreement (PT)', '', 'howto'),
|
||||
]
|
||||
|
||||
# List of languages that have legal translations (excluding EN). The keys must be in
|
||||
# `languages_names`. These translations will have a link to their versions of the legal
|
||||
# contracts, instead of the default EN one. The main legal documents are not part of the
|
||||
# translations since they have legal meaning.
|
||||
legal_translations = ["de", "es", "fr", "nl", "pt_BR"]
|
||||
legal_translations = ['de', 'es', 'fr', 'nl', 'pt_BR']
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of the title page.
|
||||
latex_logo = "static/img/odoo_logo.png"
|
||||
latex_logo = 'static/img/odoo_logo.png'
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
latex_show_urls = "True"
|
||||
|
||||
latex_show_urls = 'True'
|
||||
|
||||
# https://github.com/sphinx-doc/sphinx/issues/4054#issuecomment-329097229
|
||||
def source_read_replace(app, docname, source):
|
||||
|
@ -478,42 +383,36 @@ def source_read_replace(app, docname, source):
|
|||
result = result.replace(f"{{{key}}}", app.config.source_read_replace_vals[key])
|
||||
source[0] = result
|
||||
|
||||
|
||||
def setup(app):
|
||||
# Generate all alternate URLs for each document
|
||||
app.add_config_value("project_root", None, "env")
|
||||
app.add_config_value("canonical_version", None, "env")
|
||||
app.add_config_value("versions", None, "env")
|
||||
app.add_config_value("languages", None, "env")
|
||||
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.add_config_value('project_root', None, 'env')
|
||||
app.add_config_value('canonical_version', None, 'env')
|
||||
app.add_config_value('versions', None, 'env')
|
||||
app.add_config_value('languages', None, 'env')
|
||||
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)
|
||||
# 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)
|
||||
|
||||
app.add_lexer("json", JsonLexer)
|
||||
app.add_lexer("xml", XmlLexer)
|
||||
app.add_lexer('json', JsonLexer)
|
||||
app.add_lexer('xml', XmlLexer)
|
||||
|
||||
app.connect("html-page-context", _generate_alternate_urls)
|
||||
app.connect('html-page-context', _generate_alternate_urls)
|
||||
|
||||
# Add a `condition` option on directives to ignore them based on config values
|
||||
app.add_config_value("odoo_dir_in_path", None, "env")
|
||||
|
||||
app.add_config_value('odoo_dir_in_path', None, 'env')
|
||||
def context_eval(expr):
|
||||
return eval(expr, {confval.name: confval.value for confval in app.config})
|
||||
|
||||
def patch(to_patch):
|
||||
to_patch.option_spec["condition"] = context_eval
|
||||
to_patch.option_spec['condition'] = context_eval
|
||||
original_run = to_patch.run
|
||||
|
||||
def new_run(self):
|
||||
if not self.options.get("condition", True):
|
||||
if not self.options.get('condition', True):
|
||||
return []
|
||||
return original_run(self)
|
||||
|
||||
to_patch.run = new_run
|
||||
|
||||
for to_patch in (
|
||||
|
@ -524,7 +423,7 @@ def setup(app):
|
|||
|
||||
|
||||
def _generate_alternate_urls(app, pagename, templatename, context, doctree):
|
||||
"""Add keys of required alternate URLs for the current document in the rendering context.
|
||||
""" Add keys of required alternate URLs for the current document in the rendering context.
|
||||
|
||||
Alternate URLS are required for:
|
||||
- The canonical link tag
|
||||
|
@ -533,7 +432,7 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
|
|||
"""
|
||||
|
||||
def _canonicalize():
|
||||
"""Add the canonical URL for the current document in the rendering context.
|
||||
""" Add the canonical URL for the current document in the rendering context.
|
||||
|
||||
The canonical version is the last released version of the documentation.
|
||||
For a given language, the canonical root of a page is in the same language so that web
|
||||
|
@ -545,117 +444,92 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
|
|||
"""
|
||||
# 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_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():
|
||||
"""Add the pairs of (version, url) for the current document in the rendering context.
|
||||
""" 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[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 []
|
||||
)
|
||||
_provided_versions = app.config.versions and app.config.versions.split(',') or []
|
||||
|
||||
# Map alternate versions to their display names and URLs.
|
||||
context["alternate_versions"] = []
|
||||
context['alternate_versions'] = []
|
||||
for _alternate_version, _display_name in versions_names.items():
|
||||
if (
|
||||
_alternate_version in _provided_versions
|
||||
and _alternate_version != version
|
||||
):
|
||||
context["alternate_versions"].append(
|
||||
if _alternate_version in _provided_versions and _alternate_version != version:
|
||||
context['alternate_versions'].append(
|
||||
(_display_name, _build_url(_alternate_version))
|
||||
)
|
||||
|
||||
def _localize():
|
||||
"""Add the pairs of (lang, code, url) for the current document in the rendering context.
|
||||
""" 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"] = []
|
||||
context['alternate_languages'] = []
|
||||
for _alternate_lang, _display_name in languages_names.items():
|
||||
if (
|
||||
_alternate_lang in _provided_languages
|
||||
and _alternate_lang != _current_lang
|
||||
):
|
||||
context["alternate_languages"].append(
|
||||
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"
|
||||
),
|
||||
_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
|
||||
context['legal_translations'] = legal_translations
|
||||
|
||||
|
||||
def _build_url(_version=None, _lang=None):
|
||||
# print(f"###################################{app.config.is_remote_build}")
|
||||
# print(f"###################################{app.config.project_root}")
|
||||
if app.config.is_remote_build:
|
||||
# Project root like https://www.odoo.com/documentation
|
||||
_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"
|
||||
_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 pagename.startswith('legal/terms/'):
|
||||
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:
|
||||
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)
|
||||
):
|
||||
_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'
|
||||
|
||||
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()
|
||||
|
|
42
config.yaml
|
@ -1,42 +0,0 @@
|
|||
# -d, --dry-run Do not write/remove any files
|
||||
# -R, --replace-files Remove parsed files
|
||||
# -S, --stop-on-fail Stop on first failure
|
||||
# -W, --raise-on-warning Raise exception on parsing warning
|
||||
# -l, --language TEXT Language code for directive names [default:
|
||||
# en]
|
||||
# --sphinx / --no-sphinx Load sphinx. [default: sphinx]
|
||||
# -e, --extensions TEXT A comma-separated list of sphinx extensions
|
||||
# to load.
|
||||
# -dd, --default-domain TEXT Default sphinx domain [default: py]
|
||||
# -dr, --default-role TEXT Default sphinx role [default: convert to
|
||||
# literal]
|
||||
# -cp, --cite-prefix TEXT Prefix to add to citation references
|
||||
# [default: cite]
|
||||
# --consecutive-numbering / --no-consecutive-numbering
|
||||
# Apply consecutive numbering to ordered lists
|
||||
# [default: consecutive-numbering]
|
||||
# --colon-fences / --no-colon-fences
|
||||
# Use colon fences for directives with parsed
|
||||
# content [default: colon-fences]
|
||||
# --dollar-math / --no-dollar-math
|
||||
# Convert math (where possible) to dollar-
|
||||
# delimited math [default: dollar-math]
|
||||
# -c, --conversions PATH YAML file mapping directives -> conversions
|
||||
# --encoding TEXT Encoding for read/write [default: utf8]
|
||||
# --config FILE YAML file to read default configuration from
|
||||
# -h, --help Show this message and exit.
|
||||
language: en
|
||||
sphinx: true
|
||||
default_conversion: parse_all
|
||||
conversions:
|
||||
docutils.parsers.rst.directives.images.image: parse_all
|
||||
sphinx.directives.patches.ListTable: parse_all # For tables if needed
|
||||
extensions:
|
||||
- sphinx.ext.intersphinx
|
||||
- sphinx.ext.todo
|
||||
- sphinx_tabs.tabs
|
||||
- sphinx_design
|
||||
default_domain: py
|
||||
consecutive_numbering: true
|
||||
colon_fences: true
|
||||
dollar_math: true
|
Before ![]() (image error) Size: 2.8 KiB |
Before ![]() (image error) Size: 19 KiB |
Before ![]() (image error) Size: 6.0 KiB |
Before ![]() (image error) Size: 72 KiB |
Before ![]() (image error) Size: 6.1 KiB |
Before ![]() (image error) Size: 13 KiB |
Before ![]() (image error) Size: 8.4 KiB |
Before ![]() (image error) Size: 6.1 KiB |
Before ![]() (image error) Size: 23 KiB |
Before ![]() (image error) Size: 4.7 KiB |
Before ![]() (image error) Size: 66 KiB |
Before ![]() (image error) Size: 33 KiB |
Before ![]() (image error) Size: 12 KiB |
Before ![]() (image error) Size: 40 KiB |
Before ![]() (image error) Size: 27 KiB |
Before ![]() (image error) Size: 6.4 KiB |
Before ![]() (image error) Size: 84 KiB |
Before ![]() (image error) Size: 78 KiB |
Before ![]() (image error) Size: 8.3 KiB |
Before ![]() (image error) Size: 4.9 KiB |
Before ![]() (image error) Size: 5.6 KiB |
Before ![]() (image error) Size: 33 KiB |
Before ![]() (image error) Size: 5.1 KiB |
Before ![]() (image error) Size: 4.4 KiB |
Before ![]() (image error) Size: 6.9 KiB |
Before ![]() (image error) Size: 2.5 KiB |
Before ![]() (image error) Size: 16 KiB |
Before ![]() (image error) Size: 7.4 KiB |
Before ![]() (image error) Size: 7.9 KiB |
Before ![]() (image error) Size: 12 KiB |
Before ![]() (image error) Size: 18 KiB |
Before ![]() (image error) Size: 19 KiB |
Before ![]() (image error) Size: 24 KiB |
Before ![]() (image error) Size: 29 KiB |
Before ![]() (image error) Size: 34 KiB |
Before ![]() (image error) Size: 13 KiB |
Before ![]() (image error) Size: 6.9 KiB |
Before ![]() (image error) Size: 5.2 KiB |
Before ![]() (image error) Size: 18 KiB |
Before ![]() (image error) Size: 3.2 KiB |
Before ![]() (image error) Size: 2.8 KiB |
Before ![]() (image error) Size: 27 KiB |
Before ![]() (image error) Size: 22 KiB |
Before ![]() (image error) Size: 2.0 KiB |
Before ![]() (image error) Size: 10 KiB |
Before ![]() (image error) Size: 4.2 KiB |
Before ![]() (image error) Size: 3.4 KiB |
Before ![]() (image error) Size: 18 KiB |
Before ![]() (image error) Size: 18 KiB |
Before ![]() (image error) Size: 3.7 KiB |
Before ![]() (image error) Size: 11 KiB |
Before ![]() (image error) Size: 11 KiB |
Before ![]() (image error) Size: 2.0 MiB |
Before ![]() (image error) Size: 17 KiB |
Before ![]() (image error) Size: 15 KiB |
Before ![]() (image error) Size: 7.8 KiB |
Before ![]() (image error) Size: 22 KiB |
Before ![]() (image error) Size: 42 KiB |
Before ![]() (image error) Size: 43 KiB |
Before ![]() (image error) Size: 44 KiB |
Before ![]() (image error) Size: 23 KiB |
Before ![]() (image error) Size: 10 KiB |
Before ![]() (image error) Size: 3.9 KiB |
Before ![]() (image error) Size: 4.9 KiB |
Before ![]() (image error) Size: 2.8 KiB |
Before ![]() (image error) Size: 19 KiB |
Before ![]() (image error) Size: 17 KiB |
Before ![]() (image error) Size: 12 KiB |
Before ![]() (image error) Size: 24 KiB |
Before ![]() (image error) Size: 18 KiB |
Before ![]() (image error) Size: 35 KiB |
Before ![]() (image error) Size: 6.3 KiB |
Before ![]() (image error) Size: 6.9 KiB |
Before ![]() (image error) Size: 22 KiB |
Before ![]() (image error) Size: 25 KiB |
Before ![]() (image error) Size: 39 KiB |
Before ![]() (image error) Size: 4.6 KiB |
Before ![]() (image error) Size: 6.9 KiB |
Before ![]() (image error) Size: 18 KiB |
Before ![]() (image error) Size: 2.9 KiB |
Before ![]() (image error) Size: 2.6 KiB |
Before ![]() (image error) Size: 14 KiB |
Before ![]() (image error) Size: 35 KiB |
Before ![]() (image error) Size: 24 KiB |
Before ![]() (image error) Size: 14 KiB |
Before ![]() (image error) Size: 17 KiB |
Before ![]() (image error) Size: 26 KiB |
Before ![]() (image error) Size: 5.6 KiB |
Before ![]() (image error) Size: 18 KiB |
Before ![]() (image error) Size: 30 KiB |
Before ![]() (image error) Size: 24 KiB |
Before ![]() (image error) Size: 21 KiB |
Before ![]() (image error) Size: 21 KiB |
Before ![]() (image error) Size: 32 KiB |