and ensure gnc:html-build-acct-table is redefined to the former
gnc:first-html-build-acct-table, and gnc:first-html-build-acct-table
redirects to gnc:html-build-acct-table.
It would seem gnc:second-html-build-acct-table has never been used.
This is caused by the omission of selected accounts' descendant
accounts during generation of accounts-balances-alist.
The subsequent function account->balance-list was querying the
accounts-balances-alist for subaccounts' (of any account-type)
balances but these were missing.
This commit ensures all selected accounts (whose types depended on the
chart-type), and all their descendant accounts (of any account-type)
were scanned to generate the account-balances-list.
The function accepts the name of a deprecated module and optionally a
replacement module.
With that info it will generate a stub guile module that
- will be installed in the gnucash guile load path
- emits a deprecation warning when the old module is used
- if a replacement module is given, will automatically load that module instead
This allows us to gently deprecate complete guile modules without
the burden of manually maintaining their module files.
For this gnc-plugin-stylesheets has gotten a wider scope to become
gnc-plugin-report-system. The new plugin does all the report system
initialization bits wrt to the gui.
This is in preparation of the final guile restructuring step:
install gnucash scm files directly in guile's default site module directory.
Internalizing json is done to prevent an install clash with a potentially
system installed guile-json module.
These files were installed fairly ad-hoc into the share/gnucash/scm directory making
it hard to get an idea of where each file comes from.
The files are now structured as follows:
- any scm file authored by gnucash should go in share/gnucash/scm/gnucash or below
- most scm modules will be directly in that directory
- each module that comes with support files will get a subdirectory named after the
module's base name. For example next to engine.scm there will be directory
named engine for all support files of the engine module
- scm files that are not modules, but are loaded by modules go into
<module-dir>. For example gnc-utils.scm loads gnc-menu-extensions.scm
so that file will be installed in gnc-utils/gnc-menu-extensions.scm
- the report system is our largest module and only part of the restructuring
is done at this point. It will be refined further in future commits.
The same restructuring is also done for the compiled files.
This moves a lot of files and all scm modules that get moved need to have their definition updated.
Aside of that, it also tweaks the install location of the report scm files that are not modules
(but instead included in report.scm).
Lastly, report-system.scm has been renamed to report.scm to match the gnc-module name.
This required a rename of the original report.scm (which is not a module). I chose to rename
that to report-core.scm as it's implementing the guts of the report system.
Still missing in this commit: some compatibility code to give users a warning when they try to
use the old scm module names.
specifying #:custom-source-accounts will override the (opt-val
"Accounts" "Accounts") option to specify source accounts
This is useful for custom-reports which may need multiple source
accounts. eg. VAT/GST report (still in development).