Uh oh!
There was an error while loading. Please reload this page.
[IMP] Add queue_job.keep_context ir.config_parameter - #613
Conversation
OCA-git-bot
commented
Dec 21, 2023
Hi @guewen, |
amh-mw
commented
Dec 21, 2023
Just for general amusement, abridged from code that I wrote to import over a decade of users and data from a legacy system: self.with_context({
'bus_no_notify': True, # custom'calendar_event_create_no_constrain': True, # custom'mail_auto_subscribe_no_notify': True, # odoo'mail_create_nolog': True, # odoo'mail_create_nosubscribe': True, # odoo'mail_notrack': True, # odoo'no_geo_complete': True, # custom'no_mail_to_attendees': True, # odoo'no_reset_password': True, # odoo'quickbooks_no_prepare': True, # custom'tracking_disable': True# odoo
}).with_delay(...)._cron_migrate()It is really important that context is preserved or all kinds of side effects are triggered. |
69e66b4 to
9d8d098CompareWhen this parameter is set, queue_job always preserves the entire context. This honors the principle of least surprise, in that a developer can easily convert a record.method() call to record.with_delay().method() with the expectation that it will actually execute the same, simply at a later time. FixesOCA#406.
amh-mw
commented
Dec 21, 2023
@acsonefho@florian-dacosta Any interest in reviewing this |
@amh-mw If my memory is correct, you should rather port https://github.com/OCA/queue/tree/14.0/queue_job_context from 14 to 15. In 16 it is not necessary anymore as it is the default. |
amh-mw
commented
Dec 22, 2023
It looks like queue_job_context uses a hardcoded list of context keys that I would have to inherit the class and override? queue/queue_job_context/models/base.py Line 12 in 089eb3e I don't prefer that. I just want to flip a switch and get all the context. |
There hasn't been any activity on this pull request in the past 4 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 30 days. |
When this parameter is set, queue_job always preserves the entire context. This honors the principle of least surprise, in that a developer can easily convert a record.method() call to record.with_delay().method() with the expectation that it will actually execute the same, simply at a later time.
Fixes#406.