`report_journal_ledger` is auto-vacuumed as any transient model, but has some
ondelete="cascade" constraints that auto-remove subtables when a record is removed,
doing this operation very slow when selecting these sub-records.
Letting default ondelete="set null" would result in same performance bottleneck,
as the select on sub-table is performed the same for setting "null" value on them.
As a solution, and for avoiding a costly index operation, we delete by SQL sub-tables
rows in advance.
A bit of extra logic has been added for avoiding to remove that records if it's not
the turn of vacuum the parent table.
* Move back to CSS and FIX
NameError: variable @odoo-view-background-color is undefined in - on line 99, column 23:
98 .o_account_financial_reports_page {
99 background-color: @odoo-view-background-color;
100 color: @odoo-main-text-color;
* Porting: parent_left does not exist anymore. Using parent_path + account code to sort report lines
* FIX js error with date object not converted to string while clicking on initial balance amount
See https://user-images.githubusercontent.com/1033131/58337566-5d525c80-7e46-11e9-913a-3c3e0115fb3e.gif
* IMP style and metadata
* FIX tests about new date format and partner_id computed field of account.move
* FIX errors like
2019-06-03 16:11:51,406 17857 ERROR dev_12_account_financial_report odoo.sql_db: bad query: b"\nDELETE FROM 'report_vat_report_tax'\nWHERE COALESCE(\n write_date, create_date, (now() at time zone 'UTC'))::timestamp\n < ((now() at time zone 'UTC') - interval '3600.0 seconds')\n"
ERROR: syntax error at or near "'report_vat_report_tax'"
LINE 2: DELETE FROM 'report_vat_report_tax'
^
* IMP translation template and IMP Italian translation
* Remove useless comments
* Use AsIs to avoid SQL injection
* Use fields.Date methods
* Remove useless data from tests
* Improve comments
* Fix wizard.multi.charts.accounts
* Move _get_partner_ids_domain to abstract wizard
* Refactor default partners in wizard to use recordsets
* Improve js style
- _description in account_financial_report_abstract
- _description in vat.report.wizard
- Two fields using same label 'Accounts' in account.group
- Two fields using same label 'Account' in report_journal_ledger_move_line
- Two fields using same label 'Partner' in report_journal_ledger_move_line
- Two fields using same label 'Accounts' in report_trial_balance_account
- Two fields using same label 'Tax' in report_vat_report_taxtag
- Two fields using same label 'Tax' in report_vat_report_tax
- Two fields using same label 'Filter accounts' in general.ledger.report.wizard
When there are a lot of account.move.line (several millions) and print any of
the Qweb reports, that will generate also a lot of transient objects.
As these objects are created with an "insert" query, the cleaning normally
triggered by the count of the records in transient tables is not done, so only
the cleaning based on the age of the records is processed (by default, records
older than 1 hours are deleted), but the cron task is only ran one time per
day. For large setups this can lead to memory errors at that point. This change
prevents the memory error by executing the transient record cleanup for the
report models in this module in SQL.