Sunday, January 8, 2023

Start using subscriptions on Jane

Regarding #4784: Yes, subscriptions will be referrable. Our subscriptions are long-term agreements and we refer to them in our daily work using a nickname. There is usually one subscription per customer, but some customers have multiple subscriptions. On the other hand they are vouchers in a journal and have a number because they are certifiable and legally valid documents, but they don’t create any ledger movements. Our customers don’t pay for signing an agreement with us (they pay every year for the invoice that gets generated by the agreement). For the (few) customers who want a service report, the service reports will now be automatically generated as monthly “invoices”.

I updated TicketOrderChecker so that I can run it after the next release to Jane. I will have to delete the current subscriptions before running it (e.g. by commenting out the execfile subscriptions_subscription line in the restore.py file).

Spontaneous optimization en passant: the plugins subscriptions and tickets unite now with the working plugin into the “Working time” menu group.

In lino_xl.lib.tickets, ActiveTickets and all other data tables on Ticket no longer show the overview field but the detail_link of every ticket.

The simple text representation of Ticket no longer includes the button_text of the ticket’s state.

Welcome to our team, Fahmida

From 10:30 to 11:30 Sharif and I had a first Jitsi meeting with Fahmida.

Fahmida lives in Bangladesh, like Sharif. She has learned theory about software development at university during 4 years. Now she wants to meet reality. She plans to get started as a volunteer contributor.

We decided that we will have a stand-up meeting every day at 9:00 UTC (which is 10:00 in Belgium and 15:00 in Bangladesh).

The meetings will be in our virtual office room on Jitsi:

Quiz of the day

I’d like the test runner to give me a list of the failing test cases. Something like the following:

docs/apps/cms/db.rst
docs/commands/dump2py.rst
docs/dev/action_parameters.rst
docs/dev/actors.rst
docs/dev/admin_main.rst
docs/plugins/subscriptions.rst
docs/specs/delayed_values.rst
docs/specs/cosi5/index.rst
docs/specs/noi/db.rst
docs/specs/noi/users.rst

Hint: doctests run using atelier.test.DocTestCase.

Availability and presences planning

I created ticket #4786.

Each worker should be able to (optionally) register into Jane their “presences” or “availability” already in advance. When I go online and am “available” (for talk or for chat or email), I would click the play button, similar to what we do when working on a ticket. These sessions are kind of a “higher” level: they remain active for the whole working session.

We will probably also use this in Lino Presto.

Lino daemon and async processes

The lino.modlib.linod.consumers.LinodConsumer had a method send_push(), which looked suspect and seems unused. I renamed it to unused_send_push() to see whether something breaks.

I found a more or less satisfying answer to yesterday’s expert quiz: The demo2 fixture of lino.modlib.comments was setting use_multiprocessing to False in order to disable notifications. But this site attribute is no longer used, we now want to set use_linod to False.

MarkupResemblesLocatorWarning

I got a MarkupResemblesLocatorWarning and finally found out why it came and how to get rid of it.

The warning:

.../python3.10/site-packages/bs4/__init__.py:436: MarkupResemblesLocatorWarning: The input looks more like a filename than markup. You may want to open this file and pass the filehandle into Beautiful Soup.
warnings.warn(

Why it comes: when you ask BeautifulSoup to parse a text like “See [url http://www.example.com].”, they estimate that your markup “resembles a filename closely enough to justify a warning”.

How to get rid of it:

from bs4 import MarkupResemblesLocatorWarning
import warnings
warnings.filterwarnings("ignore", category=MarkupResemblesLocatorWarning)