Friday, September 15, 2017

Getting Welfare to pass on Travis

This failure on Travis was because inv cov also tried to open the file generated by the html report. After fixing this, Welfare passes for the first time (under Python 2) on Travis!

Another failure (now already under Python 3, 308.2) was because 05 is an invalid numeric literal in Python 3:

the_demo_date =, 05, 22)

It’s easier for me to fix these failures one at a time and commit them and let Travis do the whole build once more. During that time I continue to review the Developer’s Guide for Doti, or I talk with Tonis or Lydia…

This one was because we the following string literal as a help text:

Used in SSDN requests as text of the `AuthorizedUser\UserID` element.

(and \U obviously means something in Python 3)

team6 and lydia6

Tonis advances well with ExtJS6. He now needs a second demo project for testing. He will rename the currently only demo project mysite (in lino_extjs6.projects) to team6 and create a new project lydia6.

Tonis, I added a full_clean() method to lino_xl.lib.sales.ProductDocItem which says “You must specify a product if there is an amount” when SiteConfig.sales_account is empty. because we want a simple situation for testing a validation error cause by a phantom row. Note that you must set yourself SiteConfig.sales_account to empty in order to get that error message.

Verkaufsrechnungen ohne Tarifangabe

Momentan ist es bei Lydia so, dass Verkaufsrechnungen ohne Tarifangabe erlaubt sind. Lino bucht dann einfach in das Standard-Basiskonto (das unter Site-Parameter festgelegt wird). Das ist ein bisschen gefährlich, denn wenn man diesen Parameter ändert und dann eine VKR neu registriert, kriegt diese Rechnung hastewaskannste eine andere Buchung. Andererseits finde ich das dennoch eine elegante Lösung. Man muss es nur eben wissen.

Clearing payment orders

Lydia and I realized that she needs #2070 (Zahlungsaufträge vorschlagen im Kontoauszug).

I added a new field lino_xl.lib.ledger.Journal.partner. This is currently used only for payment orders. Wow, all this is so subtile! But it fits all together. I really like Lino’s way of managing accounting stuff and believe that it has a future.

With Tonis

  • It seems that the ExtJS6 grid has a probem when a request to views.ApiList.get() returns more rows than requested.

  • lino.core.fields.CustomField.create_layout_elem() had a design flaw: it returned a widget based on the extjs3 version of CharFieldElement even when running under ExtJS6.

A security alert for Python

The National Security Authority of Slovakia announced a security alert for Python: skcsirt-sa-20170909-pypi. How to check whether an environment is infected:

$ pip list --format=legacy | egrep '^(acqusition|apidev-coop|bzip|crypt|django-server|pwd|setup-tools|telnet|urlib3|urllib) '

I verified on our servers. No problem.