:date: 2018-08-29 ========================== Wednesday, August 29, 2018 ========================== New plugin :ref:`xl.specs.sheets` ================================= I published more than four days of work for :ticket:`2510`. The following is a summary of the changes. **Fiscal years** are now stored in the database instead of being a choicelist. :class:`lino_xl.lib.ledger.FiscalYear` is now a model. New plugin :mod:`lino_xl.lib.sheets` documented in :ref:`xl.specs.sheets`. Changes in :ref:`xl.specs.ledger`. I discovered a cool and well-hidden bug. The virtual fields :attr:`debit ` and :attr:`credit ` said the opposite of what they should say. A movement with :attr:`dc ` having `True` was shown in the "Credit" column and vice versa. As a result, the :attr:`lino_xl.lib.ledger.Journal.dc` in demo data were wrong because I configured their value based on the debit and credit in generated movements. And consequently all `dc` fields theoretically need to get inverted. In a later commit I changed the values of :data:`DEBIT ` and :data:`CREDIT `. Otherwise I would have had to write a script for :ref:`tera` which inverts the :attr:`dc` of all existing movements and vouchers and journals in existing production sites. TODO: - Add a summary table with one row per AccountingPeriod and Account? IOW do with AccountingPeriod the same as with FiscalYear. - Add a feature to explicitly specify the app_label of a `DetailLayout`. This would make it possible that `sheets` redefines the default `accounts.AccountDetail`. Side effects ============ Later I also merged :mod:`lino_xl.lib.accounts` into :mod:`lino_xl.specs.ledger` (:ticket:`2514`).