When a new auditlog rule is added / modified / deleted, all workers
need to be notified of the change. This is done through registry
signaling. The previous code was not using the proper level of signaling
resulting in workers not being aware of the changes and not implementing
the correct auditlog rules, because they had only invalidated their
cache and not reloaded the registry.
We fix this by using the same signaling as implemented in
`base_automation` which sets the the registry_invalidated field of
env.registry to True to cause a full registry reload.
When adding/removing a group in a user (and tracking a user or a partner), odoo sends a 'reified' val 'in_group_{group_id}'. We must convert this value into the real groups_id one.
Having a product.template with taxes from multiple companies assigned, let a
user without all of these companies enabled set the taxes of that product.
Before this change, the taxes related to inaccessible companies will be
inadvertently removed.
Co-authored-by: Raf Ven <raf.ven@dynapps.be>
Odoo allows creating or updating records with values like ``{"many2one_field_id": empty.recordset()}``,
but this crashes when using ``deepcopy``, which fails in recreating the ``api.Environment`` object
attached to the recordset.
This commit should fix the issue by updating the values before passing them to ``deepcopy``.
When a field or a model is unlinked, keep the related audit logs. Denormalize
the field and model info on the logs and log lines so that the information
is still available after the deletion of the related data model.
Also, to improve the performance of the deletion of fields and models,
add indexes on the log's model_id and log line's field_id.
Co-Authored-By: Stefan Rijnhart <stefan@opener.am>
Fixing #1134.
Odoo stores values of computed fields at the end of the transaction
only, as such performing a 'read()' to make a data snapshot on the record
created in the current transaction doesn't return the expected result
regarding these fields.
Also as a side-effect 'read()' alters the environment cache and break the
values on the record inducing issues in the whole user
transaction/workflow.
This fix replaces the use of 'read()' to do the data snapshot directly
from the cache of the record (computed values are already there).
* Update _patch_methods and _revert_methods in auditlog.rule model to properly
track whether a method has already been patched for logging purposes. This
prevents duplicate logs from being produced in various cases (e.g. when a
logging rule is created as part of a module install)
- Update documentation to point to the new auditlog menu locations. These were changed because the 8.0 version was referencing menus that do not exist in 9.0
- Change version from 8.0.X.Y.Z to 9.0.1.0.0
- Make the module installable again
- Remove an unused parameter from pre-migration.py for versioning
- Fix typos and remove commented out blocks of code that were irrelevant