Changes 2019 in Lino XL

2019-03-19

Released Lino XL 19.3.2 to PyPI.

2019-03-18

  • New config setting lino_xl.lib.vat.Plugin.declaration_plugins.

2019-03-17

  • Added a new plugin lino_xl.lib.eevat. This is a quickly adapted copy of bevat where we just removed the regimes that make no sense in Estonia. The declaration itself will need more work.

2019-03-16

2019-03-15

2019-03-11 (v 19.3.1)

Moved read_card_data_from_file() out of load_card_data(). This is just an internal change used for writing test cases.

Released XL 19.3.1 to PyPI.

2019-03-07 (v 19.3.0)

Released XL 19.3.0 to PyPI.

2019-03-04

Add new action lino_xl.lib.ledger.Voucher.changing_state() to the lino_xl.lib.ledger.Voucher. This action changes the invoice between the two Registered and Draft states. This action can be trigger using the Ctrl+X keyboard shortcut. It is defined in the lino_xl.lib.ledger.ui.Vouchers.get_actions_hotkeys() .

2019-02-27

Courses with a Course.max_date before today are now longer available as choices when creating a new enrolment. As it was already before for Course.enrolments_until

2019-02-25

Fixed #2811 (UnicodeError when re-reading a beid card where the diff contained non-ascii chars).

2019-02-20

It is now possible to easily redefine the detail layout for lino_xl.lib.cal.Rooms by overriding lino_xl.lib.cal.RoomDetail

2019-02-13

lino_xl.lib.ledger.Voucher.get_wanted_movements() now has a default implementation which returns no movements.

2019-02-12

More changes in the lino_xl.lib.orders plugin which is still work in progress for Lino Presto.

2019-02-09

Released Lino XL 19.2.0 to PyPI.

2019-02-08

Changes in lino_xl.lib.vat and lino_xl.lib.ledger to use the new “volumes” feature (library uploads). For #2826.

Concretely:

  • The detail of a lino_xl.lib.vat.VatAccountInvoice now shows the UploadsByController slave table.

    But what if an application wants to use lino_xl.lib.vat without lino.modlib.uploads? e.g. Lino Tera. Quick fix : add plugins also to these applications.

    And lino_xl.lib.vat.VatAccountInvoice should implement this method by asking the journal. New field lino_xl.lib.ledger.Journal.uploads_volume.

  • Every voucher is now potentially an upload controller: ledger.Voucher inherits from UploadController.

    Added a new field lino_xl.lib.ledger.Journal.uploads_volume, and the UploadController.get_uploads_volume() for a voucher returns this.

2019-02-03

In lino_xl.lib.beid we moved some functionality from BeIdCardHolder into a separate new mixin SSIN which can be used also when the plugin is not installed. Existing applications don’t need to adapt. Converted docstrings to prosa docs.

More changes in the lino_xl.lib.orders plugin which is still work in progress.

2019-01-31

In lino_xl.lib.products we now have a new model PriceRule and a new choicelist PriceFactors (taken from lino_tera.lib.courses). For Lino Tera this means a minor data migration: change “courses.PriceRule” to “products.PriceRule” in the restore.py field.

We have a new plugin lino_xl.lib.orders that is being developed for Lino Presto. Not yet stable.

2019-01-24

The field lino_xl.lib.contacts.Role.type had a verbose name “Role” which was useless and irritating because “Function” is clear enough and the same word as in Configure ‣ Contacts ‣ Functions.

Optimized the detail layout of lino_xl.lib.ledger.Journal and the library base class for partner details (lino_xl.lib.contacts.PartnerDetail).

Fixed #2813 (the summary of lino_xl.lib.blogs.LatestEntries inserted an additional line break when rendering links to database objects using a memo command. Also the German translation did not correctly show date and author of a blog entry in this summary.

2019-01-22

Fixed a little bug in lino_xl.lib.vat : when you created an invoice in a journal with edit_totals and leave the total field empty, Lino said “TypeError: unsupported operand type(s) for -: ‘NoneType’ and ‘Decimal’”

Added intersphinx_urls, srcref_url and doc_trees settings to the main module so that other doctrees can link to the docs.

Released version 19.1.1

2019-01-21

The change notes for Lino XL docs are now separated from those of Lino core docs.

New plugin attribute lino_xl.lib.tim2lino.Plugin.timloader_kwargs to be used e.g. as follows:

def setup_plugins(self):
    self.plugins.tim2lino.configure(
        languages='de fr',
        timloader_kwargs=dict(etat_registered="C"))
    super(Site, self).setup_plugins()

This new feature is not tested because the reason was just a missing “u” prefix.

2019-01-18

The categories (lino_xl.lib.products.ProductCat) now have a field product_type (i.e. all applications that depend on it need to migrate). This is because I realized that categories are not useless. The difference between the “category” and the “type” of a product is that end-users can edit the former while the latter are to be provided by the application developer.

I fixed a subtle bug in the lino_xl.lib.ledger.Plugin.setup_main_menu() method: the Accounting menu came before the Sales menu because a menu for “ledger” was being created before looping over the journal groups. I removed an unused plugin attribute intrusive_menu (whether a journal group is “intrusive” or not now depends on its menu_group).

2019-01-17

The ref_max_length for lino_xl.lib.ledger.Journal is now 5 instead of the default 40.

Printing invoices was broken (since we changed the default build method from appy to weasy). It said “No template found for sales/VatProductInvoice/default.weasy.html, excerpts/default.weasy.html”. We created a new template sales/VatProductInvoice/default.weasy.html (in the config directory of lino_xl.lib.sales).

2019-01-04

We released XL 19.1.0

The fields addr2 and prefix are now mostly hidden in forms. We consider them obsolete. lino_xl.lib.contacts.