[IMP] Add queue_job.keep_context ir.config_parameter#613
[IMP] Add queue_job.keep_context ir.config_parameter#613
Conversation
|
Hi @guewen, |
|
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
9d8d098
Compare
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 OCA#406.
9d8d098 to
ca8efe4
Compare
|
@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. |
|
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.