20110115¶
Drei Bugs weniger¶
Noch drei Bugs weniger:
Ich habe gerade versucht, ein neues Land einzugeben: AZ - Aserbaidschan Dabei kommt folgender Fehler: {‘isocode’: ValidationError({‘isocode’: u”Existierender ID-Wert ‘’ darf nicht verändert werden.”})}
Wenn ein neuer PXS erstellt wird, schreibt TIM (logischerweise) ein POST in die Changelog. watch_tim machte daraufhin ohne zu überlegen einen neuen Record. Bei POST und PUT verlässt watch_tim sich jetzt prinzipiell nie auf die Aussage von TIM, sondern einzig auf die primary key. Also er schaut immer nach, ob so ein Record in der Lino-Datenbank existiert oder nicht und macht dann je nach Bedarf ein POST oder ein PUT. Im dblogger (wenn dessen Level DEBUG ist) erscheint dann eine Meldung “POST becomes PUT”.
Außerdem speicherte watch_tim einen “softly invalid record” (full_clean wirft ValidationError, aber die Datenbank hat nichts auszusetzen) in manchen Fällen dennoch ab.
Check-in “20110115” und Release in Eupen.
Neues Modul “Kurse”¶
Beim letzten Workshop hatten wir folgende Änderung beschlossen: In der Tabelle Sprachkenntnisse (Sprache, Wort, Schrift) kommt eine neue Kolonne “braucht Kurs” mit einfachem Ja/Nein-Feld, und im Reiter “Hindernisse” muss das Feld “Analphabet” manuell bearbeitbar sein (momentan ist es ein virtuelles Feld, dieses Feature verschwindet ganz). Aus diesen Angaben kann Lino dann z.B. eine Liste von Kandidaten für Sprachkurse liefern.
Ich bin aber noch nicht zufrieden mit dieser Lösung…
Erinnerungen & Meine Leute¶
Die Liste “von mir begleitete Personen” berücksichtigt jetzt den Begleitungszeitraum (zeigt nur Personen an, die dort mindestens ein Datum ausgefüllt haben).
Erinnerungen müssten jetzt ungefähr so funktionieren, wie wir uns das gedacht haben.
Siehe Dokumentation in https://www.lino-framework.org/dsbe/intro.html.
dpy-Deserializer now handles dependencies¶
Vor dem Einlesen eines dpy-Dumps bruache ich jetzt nicht mehr manuell die Abhängigkeiten aufzulösen (Contacts können erst erstellt werden, wenn die Person existiert ist, Personen mit job_agent_contact aber erst nachdem dieser Contact existiert. Vom Prinzip her habe ich die einfachere aber langsamere Strategie gewählt: was nicht gespeichert werden kann, wird in einer nächsten Runde nochmal probiert. Und notfalls nochmal und nochmal, und erst wenn sich nichts mehr verändert (was z.B. bei circulare references passieren könnte) gibt er auf.
Check-in 20110115b und Test auf den Daten in Eupen. Funktioniert. Sehr viel länger als vorher scheint es nicht zu dauern.