20121108

eID-Karten einlesen

Tilt! Nee, die erste Implementierung (ohne Actor) war nix. Viel schöner ist, wenn ich sie als lino_welfare.modlib.pcsw.models.BeIdReadCardAction definiere!

eid-javascript-lib übergab das Geburtsdatum anfangs als birthDate:1968-06-01T00:00:00. Sollte aber laut lino.Lino.date_format_extjs sein. Und was ist mit unkompletten Geburtsdaten?

Unbekannte NR-Nummern

Neue Regel: die NR-Nr. eines Klienten darf ab jetzt wohl leer sein. Die Konvention, dass bei Klienten mit unbekannter oder ungültiger NR-Nr stattdessen die Partnernummer im Feld NR-Nr stehen muss, ist also nicht mehr nötig. Wenn die NR-Nr ausgefüllt ist, muss sie weiterhin einzig sein. Bei Dubletten kann man z.B. a, b dahinter setzen. Dadurch wird die Nummer (als NR-Nummer) freilich ungültig, was aber okay ist solange der Klient nicht “Begleitet” ist.

Ich dachte bisher, dass das technisch nicht möglich ist, but after reading the thread Unique fields that allow nulls in Django on stackoverflow I decided to use this for the national_id field of a Client.

Diese Neuerung ist zwar lästig (Buggefahr), aber prinzipiell gut. Auslöser war vor allem folgendes: Wenn eine eId-Karte eingelesen wird, für deren NR-Nr wir keinen Klienten haben, dann sollte Lino nicht schon sogleich vorschlagen, den neuen Klienten anzulegen, sondern erstmal schauen, ob es diese Person nicht schon ohne NR-Nr gibt. Mit unserer Konvention, dass anstelle von ungültigen NR-Nummern die Partnernummer im Feld NR-Nr stehen soll, wird das ein suboptimales Query.

Printing a table from command line

New table lino.modlib.users.models.UsersOverview and new shortcut lino.core.actors.Actor.to_rst(). Example usage:

$ python manage.py shell
>>> from lino.modlib.users.models import UsersOverview as T; print T.to_rst()
INFO Starting Lino...
INFO Analyzing models...
INFO Lino Site 'DSBE@armand' started. Languages: de, fr, en. 296 actors.
INFO Using Lino/Welfare 1.0.1, Lino 1.5.1, Django 1.5.dev17942, python-dateutil 1.5, Cheetah 2.4.4, OdfPy ODFPY/0.9.4, docutils 0.9.1, suds 0.4.1, PyYaml 3.08, Appy 0.8.0 (2011/12/15 22:41), Python 2.7.1.
============ ===================================== =======
Benutzername Benutzerprofil                        Sprache
============ ===================================== =======
alicia       Integration Agent                     de
caroline     Berater Neuanträge                    de
charles      CBSS only                             de
elmar        Anonymous                             de
gerd         Verwalter                             de
hubert       Integration Agent                     de
kerstin      Schuldenberater                       de
luc          Verwalter                             de
melanie      Integrations-Assistent (Dienstleiter) fr
root         Verwalter                             de
============ ===================================== =======

>>> from lino.utils import babel
>>> babel.set_language('en')
>>> print T.to_rst()
======== ========================== ========
Username User Profile               Language
======== ========================== ========
alicia   Integration Agent          de
caroline Newcomers consultant       de
charles  CBSS only                  de
elmar    Anonymous                  de
gerd     Administrator              de
hubert   Integration Agent          de
kerstin  Debts consultant           de
luc      Administrator              de
melanie  Integration Agent (Senior) fr
root     Administrator              de
======== ========================== ========