Compare commits

...

12 Commits

Author SHA1 Message Date
emmi-odoo
989341c34e Test 2025-09-30 17:04:38 +02:00
yaso
ebeb1c2248 [IMP] point_of_sale: Add Epson Server Direct Print
This PR adds the documentation for the Epson Server Direct Print feature in Point of Sale.

Related PR: https://github.com/odoo/odoo/pull/224481
task-4860236
2025-09-30 16:57:34 +02:00
Florian(flg)
a65796370f [FIX] coding_guidelines: Change camelcase for Pascal case
The coding guidelines establish that we have to write class
declaration for both Python and JavaScript in camel case but
it's actually in Pascal case. It also establishing that model
variable (ex: `Partner = self.env['res.partner]'`) has to be
in camel case but it's actually following the Pascal case.

Pascal case has to start all variables with a capital letter
where camel case is starting with a lower case letter.

Source: https://builtin.com/articles/pascal-case-vs-camel-case

no task id

closes odoo/documentation#14711

X-original-commit: 9fa2ffdeae
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
2025-09-30 06:58:23 +00:00
jero-odoo
a87acb2f3e [ADD] MRP: Delayed production filter
closes odoo/documentation#14698

X-original-commit: 7742f7fadb
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-09-29 23:53:22 +00:00
Sven Fuehr
0aafbe8cd2 [ADD] accounting/l10n_be: documentation for new codaclean module
In enterprise PR odoo/enterprise/pull/93909 we add a new module
to automatically import bank statements from Codaclean.
Codaclean is an external provider that allows its users to access
their bank statements in form of CODA files.

This PR adds the information on how to configure / use the new module.

task-4844423

closes odoo/documentation#14699

X-original-commit: 1cc2adfc7d
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Sven Führ (svfu) <svfu@odoo.com>
2025-09-29 18:22:38 +00:00
Ricardo Gomes Rodrigues
9bc594f96d [IMP] sms_marketing: add warnings for Twilio
Since some questions have appeared a couple of times,
let's add a warning in the documentation.

task-none

closes odoo/documentation#14687

X-original-commit: 141819104b
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <rigr@odoo.com>
2025-09-26 13:10:52 +00:00
Antoine Vandevenne (anv)
1fc0adf527 [FIX] tutorials/discover_js_framework: fix example link for reactive
closes odoo/documentation#14667

X-original-commit: 84dc025f1b
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-09-25 16:58:34 +00:00
Fabrice Henrion
06a435744f [IMP] voip: fix DIDWW typos
closes odoo/documentation#14660

closes odoo/documentation#14674

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2025-09-24 22:09:03 +00:00
Fabrice Henrion
a9933b1c71 [IMP] typos
closes odoo/documentation#14659

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2025-09-23 22:06:04 +00:00
Antoine Vandevenne (anv)
1c4932e252 [IMP] contributing/git_guidelines: document [CLN] and [LINT] commit tags
closes odoo/documentation#14657

X-original-commit: f1c74c3ed5
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-09-23 16:10:46 +00:00
Antoine Vandevenne (anv)
81418fa957 [FIX] howtos/translations: fix typo in "wainting"
closes odoo/documentation#14648

X-original-commit: a1a8ca93f3
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-09-23 10:30:55 +00:00
ASPhilemon
68b0777e42 [IMP] tutorials/module_data: improve phrasing
closes odoo/documentation#14647

Forward-port-of: odoo/documentation#14593
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-09-23 10:30:53 +00:00
16 changed files with 242 additions and 21 deletions

View File

@@ -428,6 +428,76 @@ Potential issues
:guilabel:`CodaBox` section, click on :guilabel:`Manage Connection`, then click on
:guilabel:`Revoke`.
.. _belgium/codaclean:
Codaclean
---------
**Codaclean** is a service that allows Belgian companies and accounting firms to access bank
information and statements. Odoo provides a way to import such statements and their transactions
automatically.
.. _belgium/codaclean-configuration:
Configuration
~~~~~~~~~~~~~
.. note::
Make sure to :ref:`install <general/install>` the :guilabel:`Codaclean` (`l10n_be_codaclean`)
module.
.. _belgium/codaclean-configuration-connection:
Connection with Odoo
********************
To connect Odoo with Codaclean, follow these steps:
#. Open the Settings app, navigate to the :ref:`Companies <general/companies/company>` section, and
click :icon:`oi-arrow-right` :guilabel:`Manage Companies` to make sure the company's
:guilabel:`Country` is set to :guilabel:`Belgium`.
#. Go to :menuselection:`Accounting --> Configuration --> Settings` and scroll to the
:guilabel:`Codaclean` section.
#. Click :guilabel:`Manage Connection` to open the connection wizard, enter the Codaclean
:guilabel:`Username` and :guilabel:`Password` and click :guilabel:`Connect`.
The :guilabel:`Status` is updated to :guilabel:`Connected`.
.. tip::
Once the connection is established, the :guilabel:`Manage Connection` wizard provides two options:
- Update Codaclean credentials: Enter the new :guilabel:`Username` and :guilabel:`Password`, then
click :guilabel:`Change Credentials`.
- Remove Codaclean connection: Click :guilabel:`Disconnect`; no :guilabel:`Username` or
:guilabel:`Password` is required.
.. _belgium/codaclean-configuration-journal:
Journal creation
****************
A specific bank journal must be created for Codaclean synchronization. To do so, :doc:`create a new
bank journal <../accounting/bank>`, make sure to enter the correct IBAN in the :guilabel:`Bank
Account Number` field, and select :guilabel:`Codaclean Syncronization` in the :guilabel:`Bank Feeds`
field.
.. tip::
For bank transactions in different currencies, it is recommended to create a separate journal for
each currency, using the same bank account.
.. _belgium/codaclean-synchronization:
Synchronization
~~~~~~~~~~~~~~~
Once the connection is established, Odoo is synchronized with Codaclean, and new CODA files received
via Codaclean are checked every twelve hours.
.. tip::
To manually check for new CODA files, go to the Accounting Dashboard and click :guilabel:`Fetch
from Codaclean` on the relevant :ref:`journal <belgium/codaclean-configuration-journal>` .
Electronic invoicing
====================

View File

@@ -5,6 +5,7 @@ Reporting
.. toctree::
:titlesonly:
reporting/delayed
reporting/allocation
reporting/oee
reporting/production_analysis

View File

@@ -0,0 +1,65 @@
======
Delays
======
.. |SO| replace:: :abbr:`SO (sales order)`
.. |SOs| replace:: :abbr:`SOs (sales orders)`
.. |MO| replace:: :abbr:`MO (manufacturing order)`
.. |MOs| replace:: :abbr:`MOs (manufacturing orders)`
.. |RfQ| replace:: :abbr:`RfQ (request for quotation)`
Odoo's *Manufacturing* app displays *delays* in manufacturing orders through the :guilabel:`Delayed
Productions` filter. If the |MO|'s end date exceeds its deadline, the deadline is highlighted in red
to draw attention to the delay.
.. image:: delayed/delayed-filter.png
:alt: The delayed production filter in Odoo.
Deadline calculation
====================
The |MO| deadline depends on how the |MO| was created, and is calculated as follows:
- **Make To Order**: the |MO| deadline is the *Sales Order Delivery Date*.
- **Replenishment**: the |MO| deadline is *today + Manufacturing Lead Time*.
- **Manually created MO**: the deadline field remains empty.
.. important::
The |MO| *deadline* is not the same as the |MO| *end date*.
The end date is computed as:
.. math::
\text{End date} =
\text{Scheduled start date}
+\text{Total duration of all operations}
Filters
=======
Several additional filters are available to help track delays:
- :guilabel:`Delayed Productions`: the |MO|'s *scheduled start date* is later than the deadline.
- :guilabel:`Late`: the |MO|'s *scheduled end date* exceeds the deadline, highlighted in red.
- :guilabel:`Late Availability`: one or more required components are not available before the
deadline. For example, a confirmed purchase order or manufacturing order for components is
scheduled to end *after* the |MO| deadline.
- :guilabel:`Components Available`: all components are available to begin production.
Use case
========
Consider an |MO| with a deadline of **September 17th**:
- If production on the |MO| starts after September 17th, it appears in the :guilabel:`Delayed
Productions` filter.
- If required components are scheduled to arrive after September 17th, the |MO| appears in the
:guilabel:`Late Availability` filter.
- If the |MO| has a scheduled end date after September 17th, it appears in the :guilabel:`Late`
filter.
.. image:: delayed/deadline.png
:alt: An MO with the deadline emphasized.
By combining these indicators, planners can quickly identify where production is at risk of missing
delivery commitments.

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -43,9 +43,14 @@ be able to send SMS messages. These cost credits that are to be bought on Twilio
#. Go back to bottom of the :guilabel:`Dashboard` page
#. Copy the :guilabel:`Account SID` and :guilabel:`Auth Token`
Beware that sending SMS to some countries (such as the US or Canada) might require a registration.
This can only be done by you, and not by Odoo. Please check out `Twilio's Help Center
<https://help.twilio.com>`_
.. important::
In case of a testing account, you will only be able to send SMS to phones that you have verified
within `Twilio's console <https://console.twilio.com>`_.
.. note::
Sending SMS to some countries (such as the US or Canada) might require a registration. This can
only be done by you, and not by Odoo. Please check out `Twilio's Help Center
<https://help.twilio.com>`_.
Setup Odoo to use Twilio

View File

@@ -11,11 +11,11 @@ regions are supported by DIDWW's services.
DIDWW setup
===========
After verifying country coverage and avaiabilty, create an account with `DIDWW
After verifying country coverage and availability, create an account with `DIDWW
<https://www.didww.com/>`_. Then navigate to the `DIDWW Dashboard
<https://my.didww.com/#/dashboard>`_.
To transfer existing numbers from an existing telephone network servicer provider, follow the steps
To transfer existing numbers from an existing telephone network service provider, follow the steps
outlined on the `DIDWW website <https://doc.didww.com/phone-numbers/number-porting/index.html>`_.
Purchase new numbers
@@ -51,7 +51,7 @@ Configure or add the following parameters:
- :guilabel:`Allowed Codecs`: `OPUS`, `PCMU`, `PCMA`, `telephone-event`, `g722`, `g729`.
- :guilabel:`Allowed media types`: `SRTP-DTLS`
- :guilabel:`Default media type`: `STRP-DTLS`
- :guilabel:`Default media type`: `SRTP-DTLS`
- :guilabel:`Transport protocol`: `UDP`, `TCP`, `WSS`, `TLS`
.. image:: didww/sip-device-route.png
@@ -59,8 +59,8 @@ Configure or add the following parameters:
.. tip::
If no phone number available from drop-down selection in *Inbound and Outbound DID/Caller ID*
selection, the :guilabel:`Inbounch voice trunk` needs to be modified. Navigate to the dashboard,
then click :guilabel:`My Numbers`. Scroll to :guilabel:`Configuration`.In the :guilabel:`Inbound
selection, the :guilabel:`Inbound voice trunk` needs to be modified. Navigate to the dashboard,
then click :guilabel:`My Numbers`. Scroll to :guilabel:`Configuration`. In the :guilabel:`Inbound
voice trunk` field, select :guilabel:`phone.systems`.
Odoo setup
@@ -75,10 +75,10 @@ Under :guilabel:`PBX Server IP`, enter `sip.phone.systems`.
.. image:: didww/new-provider.png
:alt: The VoIP providers page in Odoo.
To configure a user's VoIP provider, click the user avatar in the top-right of the database, then
click :guilabel:`My Profile`. Click into the :guilabel:`VoIP` tab, then under the :guilabel:`Voip
Provider` field, select :guilabel:`DIDWW`. Finally, enter the :guilabel:`Voip Username` and
:guilabel:`Voip Secret`, then save.
To configure a user's VoIP provider, click the user avatar icon in the top-right corner of the
database, and then choose :guilabel:`My Preferences` from the sub-menu. Then click into the
:guilabel:`VoIP` tab, and under the :guilabel:`Voip Provider` field, select :guilabel:`DIDWW`.
Finally, enter the :guilabel:`Voip Username` and :guilabel:`Voip Secret`, then save.
.. image:: didww/odoo-credentials.png
:alt: DIDWW provider, username, and secret credentials entered.

View File

@@ -92,5 +92,6 @@ settings <configuration/settings>` and choose the specific categories to display
configuration/pos_iot
configuration/epos_printers
configuration/epson_server_direct_print
configuration/https
configuration/epos_ssc

View File

@@ -0,0 +1,78 @@
===========================
Epson Server Direct Printer
===========================
The Epson Server Direct setting allows for receipt printing from Point of Sale systems. Once
enabled, the POS register sends tickets directly to the Epson Server Direct printer.
.. note::
No SSL certificate configuration is needed.
.. _epson-direct/pos-configuration:
Point of Sale configuration
===========================
To configure an Epson Server Direct printer in Point of Sale, follow these steps:
#. :ref:`Access the POS settings <configuration/settings>`.
#. Enable the :guilabel:`Epson Server Direct Printer` setting.
#. Optionally, select :guilabel:`Cashdrawer` if using a cash drawer connected to the printer.
#. Click the :icon:`fa-clipboard` :guilabel:`Copy URL` and :icon:`fa-clipboard` :guilabel:`Copy ID`
clipboard buttons to copy the URL and ID for the :ref:`printer configuration
<epson-direct/printer-configuration>`.
.. image:: epson_server_direct_print/pos_config.png
:alt: setting to enable the Server Direct Print feature
.. note::
When the printer connects to a network, it automatically prints a receipt with an IP address.
.. _epson-direct/printer-configuration:
Printer configuration
=====================
To configure an Epson Server Direct printer, follow the next steps:
#. Connect the printer to the Internet and find the IP address on the automatically-printed receipt.
#. Open an Internet browser, enter the printer's IP address in the search bar, and press `Enter`.
#. On the printer homepage, click :guilabel:`Advanced Settings`, then :guilabel:`Administrator
Login`.
#. Enter the printer's password.
#. Go to :menuselection:`TM-i Settings --> Services --> Server Direct Print`.
#. Set the :guilabel:`Server Direct Print` field to :guilabel:`Enable`.
#. In the :guilabel:`URL` field, paste the printer setup URL from the :ref:`POS configuration
<epson-direct/pos-configuration>`.
#. In the :guilabel:`Interval` section, set the value to :guilabel:`5`.
#. In the :guilabel:`ID` field, paste the printer setup ID from the :ref:`POS configuration
<epson-direct/pos-configuration>`.
#. Click :guilabel:`Apply & Restart`.
.. image:: epson_server_direct_print/printer_configuration.png
:alt: configuration in the printer settings
.. note::
- The same printer can be used for multiple POS configurations.
- Setting the :guilabel:`Interval` field to :guilabel:`5` ensures a balance between printing
speed and server load; the printer processes all queued receipts at each interval.
- Ensure the printer `Device ID` is set to `local_printer` in the `Device Admin` section.
.. tip::
Find the printer's password on the back of the device next to the :icon:`fa-lock`
(:guilabel:`lock`) icon.
.. _epson-direct/printers:
Supported Epson printers
========================
TM-Intelligent printers, like :guilabel:`Epson TM-M30 iii`, are :doc:`compatible
</applications/general/iot/devices/printer>` with Odoo without connecting to an :doc:`IoT system
</applications/general/iot/connect>`.
.. tip::
Update the printer firmware before enabling the print confirmations .
.. seealso::
:doc:`epos_printers`

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@@ -877,7 +877,7 @@ Symbols and Conventions
- When defining *report* model (SQL views e.i.) : use
``<related_base_model>.report.<action>``, based on the Transient convention.
- Odoo Python Class : use camelcase (Object-oriented style).
- Odoo Python Class : use Pascal case (Object-oriented style).
.. code-block:: python
@@ -886,7 +886,7 @@ Symbols and Conventions
...
- Variable name :
- use camelcase for model variable
- use Pascal case for model variable
- use underscore lowercase notation for common variable.
- suffix your variable name with *_id* or *_ids* if it contains a record id or list of id. Don't use ``partner_id`` to contain a record of res.partner
@@ -1017,7 +1017,7 @@ Javascript coding guidelines
- ``use strict;`` is recommended for all javascript files
- Use a linter (jshint, ...)
- Never add minified Javascript Libraries
- Use camelcase for class declaration
- Use Pascal case for class declaration
More precise JS guidelines are detailed in the `github wiki <https://github.com/odoo/odoo/wiki/Javascript-coding-guidelines>`_.
You may also have a look at existing API in Javascript by looking Javascript

View File

@@ -66,6 +66,8 @@ Tags are used to prefix your commit. They should be one of the following
- **[CLA]** for signing the Odoo Individual Contributor License;
- **[I18N]** for changes in translation files;
- **[PERF]** for performance patches;
- **[CLN]** for code cleanup;
- **[LINT]** for linting passes;
After tag comes the modified module name. Use the technical name as functional
name may change with time. If several modules are modified, list them or use

View File

@@ -176,8 +176,8 @@ Blocks
**Do** keep in one block, giving the full context to translators::
# good, allow to change position of the number in the translation
_("You have %s invoices wainting") % len(invoices)
_.str.sprintf(_t("You have %s invoices wainting"), invoices.length);
_("You have %s invoices waiting") % len(invoices)
_.str.sprintf(_t("You have %s invoices waiting"), invoices.length);
# good, full sentence is understandable
_("Reference of the document that generated " + \

View File

@@ -31,8 +31,7 @@ more...
Demo Data
---------
In additional to master data, which are requirements for a module to work properly, we also like
having data for demonstration purposes:
In addition to master data, which is required for a module to work properly, we can also provide data for demonstration purposes:
* Help the sales representatives make their demos quickly.
* Have a set of working data for developers to test new features and see how these new features look

View File

@@ -312,8 +312,8 @@ changes.
.. seealso::
- `Documentation on reactivity <{OWL_PATH}/doc/reference/reactivity.md>`_
- `Example: Use of reactive in a service
<https://github.com/odoo/odoo/blob/1f4e583ba20a01f4c44b0a4ada42c4d3bb074273/
addons/web/static/src/core/debug/profiling/profiling_service.js#L30>`_
<https://github.com/odoo/odoo/blob/bb1b5aed9b6d96ae1b0d044341812b51ed72a05d/
addons/mail/static/src/discuss/call/common/rtc_service.js#L124>`_
8. Lazy loading the dashboard
=============================