Closed amh-mw closed 3 months ago
Hi @guewen, some modules you are maintaining are being modified, check this out!
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.
@acsonefho @florian-dacosta Any interest in reviewing this queue_job.keep_context
pull request?
@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?
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. If you want this PR to never become stale, please ask a PSC member to apply the "no stale" label.
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.