The action "Load a Translation" is wrongfully considered as only for
installation of a new language (while it is for update too).
The action "Synchronize Terms" is wrongfully considered as to refresh
translations of installed language (while it is to generate empty translations).
Rename to "Generate Missing Terms"
The res.lang tree view encourage this misconception with a "update terms" that
actually triggers a synchronize terms action.
Change the triggered action to the "Load & Update"
Move the list of languages to always visible in settings.
This list is not very technical and will avoid to go to debug mode for basic
actions like updating the sources of checking what languages are installed.
Going less often to dev mode will hide the misleading "Synchronize Terms" action
for normal users.
Closes#19911
The class PoFile was already using it.
TextIOWrapper closes its underlying buffer causing the "Synchronize Terms" action
to fail (trying to read on a closed buffer).
Fixes#19911
original commit forgot an "s" (in %(street2)s), leading to `\n`
becoming the format character, except that's not a *valid* format'
character, yielding a ValueError "unsupported format character
'?' (0xa)" any time an address is displayed if the current country is
Japan (and the system thus uses the japanese address pattern rather
than a generic one).
Closes#20008
Purpose
=======
In python2 a binary field value is retrieved as a string. Example: company_id.logo = u'xyz'
In python3 a binary field value is retrieved as a binary. Example: company_id.logo = b'xyz'
When trying to render an image on a template, we should pass a stringified version of it.
Specification
=============
Pass the method to_text in the template rendering context and use it.
Purpose:
The psycogreen module is unmaintained. Last source update was in
2015 and last pypi package was in 2012. Odoo only use a small
part of the psycogreen module that could be written directly in
the odoo code. This commit reproduce the small function from
psycogreen used in ODoo and remove all depencies from it.
Also the copyright and license are honored and the documentation
is updated accordingly.
pypi pckage: https://pypi.python.org/pypi/psycogreen
bitbucket repos: https://bitbucket.org/dvarrazzo/psycogreen/
That function is called when computing related fields in onchange mode.
The new implementation makes a direct access to the cache's implementation.
opw-772303
Previous to this rev., sometimes None could be added
to the list of _init_modules in the registry, this would
then be problematic in ir_http since a sorted would be
performed on this list, which works in py2 but in py3
None and string can't be compared implicitly.
Before this fix, you can break a test class by simply adding an
incorrect import like this:
`from gloubiboulga import Casimir`
--> No error message, the test is simply not run
This is due to the fact that we want to ignore ImportError's... only
when there is no `.tests` submodules (actually, we ignored them all!)
This commit fixes the condition and re-enables error logging when tests
actually encounter ImportErrors
- The `--no-database-list` option will now also block access to database
management functions and screens.
Presumably this flag should only be used in production when all
databases have been provisioned, so the admin should like to block
access to the db manager at the same time.
- If no `--database` or `-d` parameter is provided, the system will be
unable to fetch a list of databases at all, so users will be blocked
with an error message.
- Hide the link on the login screen to the DB manager when it is
disabled, to prevent sending users to an error page.
- Weak attempt at updating the documentation
Note: the security check for RPC methods could have been done in the RPC
dispatcher, however that would not have protected service methods when
called directly, e.g. by a controller (e.g. the dump method).
- Add support for hashed master passwords (super-admin password) using a
strong scheme (PBKDF2_SHA512).
- Replace the password with a hash in memory (tools.config map), after
verifying it
- Automatically replace the plaintext master password with a hash when
saving it after a password change
- Preserve support for setting/using plaintext passwords when necessary
(e.g. as a temporary deployment thing)
Purpose: for multiple reasons (bytecode change in python 3.6,
missing files for some packages, py2exe is unmaintained
...) the py2exe solution cannot be used anymore.
Odoo for windows will now use a portable Python that
will be shipped with the Windows installer.
For that purpose, a Winpython 3.6.2 is used.
In order to build the Windows installer, a Winpython dir
with all the Odoo requirements fullfilled, must exists on
the build system (qemu-kvm VM).
* nsis installer:
- Only the python dir is used to avoid packaging too much stuffs
- better compression level
- starts the Odoo service using nssm
- bump to V11
* change the default win10 build vm path
* print a warning when uncomplete addon move
* try to force remove of addon path:
when the addons are moved to Odoo/addons, it happens that the
destination already exists. In that case, the source addon was not
deleted, resulting in a uneeded file duplication.
* fix version string to avoid invalid chars in windows service
* Add requirements adpated for WinPython
* package.py now shows the traceback when a build fails
* verify that a file exists before publishing
* debuild now creates an .xz file instead of .gz
* package: use logging module
* kvm CPU that works with older versions.
* fix a pexpect encoding bug
* fix the version to remove special chars '~' which is not appreciated
by windows services
[REM] win32setup: Remove win32 python service
Purpose:
Before this commit, the win32 service was managed by an executable
builded from those two files with the help of py2xe.
The win32 service is now managed by nssm which starts Odoo and therefore, those
files are not needed anymore.
Fix/imp about the #19777
Replace cron of garbage_collector by a call from autovaccum. Don't try to find
which session is expired or not to avoid to check each one by one, but use a
stupid heuristic to delete all old session older than 5 weeks by default.
(overridable in autovaccum: model.power_on(**dict(wishlist_week=10)) e.g.)
Use 'display: none' instead of class hidden, to avoid flickering at load and
let jquery work with .show / .hide without removeClass('hidden').
Without it, the animation of the first product that you add in your wishlist
will be wrong because Wishlist menu is not visible while you don't refresh.
Remove all old test that check if we was the public user or not and that make
the PR not working ;)
Courtesy of @yajo for dev, and @rdeodoo for quick review/testing
When you was in debug=assets and that a less file was malformed, the
error was not displayed correctly.
Now we load a minimal layout (bootstrap style)
This commit closes#19799
The 'xmlrpc'-based configuration parameters have been a misnomer since
the introduction of the generic HTTP service, years ago.
Hide these options from the server parameters, and replace them with
more appropriate 'http' ones:
--xmlrpc-interface -> --http-interface
--xmlrpc-port -> --http-port
--no-xmlrpc -> --no-http
The config entries for these have been adapted as well.
The old parameter names are still silently supported in both
command-line arguments and config files. However they are
stored with the new names in the `tools.config` dict,
and when saving config files (with the -s option).
Also clarified and cleaned up the descriptions of the HTTP/WEB server
parameters.
And finally, added a short version `-p`, for the `--http-port` option.
Credits to @dreispt for this (via #19518)
Closes#19518Closes#19778
This commit introduces a new way to hide a column in a x2m list view.
The attribute 'tree_invisible' can be add in the field attrs in the x2m
view definition. This attribute can use the 'parent' key to make a reference
to the parent record (e.g. 'parent.id').