20130516 (Thursday, 16 May 2013)¶
Tested screenshots¶
This is the fourth day that I’m working on the
makescreenshots
command.
I launch this command usually using
fab mss
.
It still generated a lot of tracebacks like the following:
Exception happened during processing of request from ('127.0.0.1', 52677)
Traceback (most recent call last):
File "/home/luc/pythonenvs/py27/local/lib/python2.7/site-packages/django/test/testcases.py", line 998, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/home/luc/pythonenvs/py27/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 150, in __init__
super(WSGIRequestHandler, self).__init__(*args, **kwargs)
File "/usr/lib/python2.7/SocketServer.py", line 640, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 693, in finish
self.wfile.flush()
File "/usr/lib/python2.7/socket.py", line 304, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
The Django Broken pipe in Debug mode discussion thread explains it. The following workaround (by Igor Katson in above thread) worked for me:
# Monkeypatch python not to print "Broken Pipe" errors to stdout.
import SocketServer
from wsgiref import handlers
SocketServer.BaseServer.handle_error = lambda *args, **kwargs: None
handlers.BaseHandler.log_exception = lambda *args, **kwargs: None
It still fails to correctly detect when all components of a page have finished rendering and all AJAX requests are satisfied. Current workaround is to wait 6 seconds per screenshot…
It still fails to correctly terminate the StoppableWSGIServer which I launch in a subprocess (and which itself obviously launches 2 more child processes). Sometimes I get an “address already in use” error and then I must do ps aux | grep django-admin.py and kill them.
The command currently generates one screenshot per detail window.
This default behaviour is not enough
(for tabbed details it should generate one file per tab),
and i still need to think about how to modify the default
behaviour (overriding lino.core.actors.Actor.get_screenshot_requests()
).
I decided to let this project wait here because there are so many other urgent things to do.
TODO:
syncscreenshots command to compare the latest screenshots (under
gen/screenshots
) with the “approved” ones (those underuserdocs/gen/screenshots
)Make actordoc show the screenshots per actor.
Generate an overview .rst page with all screenshots.
Generate documentation for Tx25¶
Continued to convert the existing handlers so that their
documentation can get automatically generated.
The converted TI handlers are now
listed on lino_welfare.modlib.cbss
.
(The table there is still far from being complete.
The conversion is much work, but it will make future maintenance
easier.
Statistic reports Integration Service¶
The Integration Service gets some more concepts which help to establish certain statistic reports. Detailed description in German only:
Um gewisse Zahlen für “statistische” Berichte (Tätigkeitsbericht DG, Radioscopie CPAS wallons, interne Anfragen) effizient ermitteln zu können, braucht der DSBE noch ein paar kleine Änderungen in Lino.
Prinzipiell sind wir uns einig, dass Lino nicht Excel ersetzen soll, sondern dass die Informationen lediglich als .csv-Dateien aus Lino extrahiert werden und anderweitig verarbeitet und formatiert werden.
Beschreibung der Änderungen in Lino:
Erweiterung der Parameter-Panels und Kolonnen der Tabellen “Art-60-7-Vereinbarungen” und “VSEs”, um Fragen im folgenden Stil zu beantworten: Welche (Wieviele) Verträge
waren aktiv am X
wurden unterzeichnet / abgeschlossen / beendet in der Periode vom X bis Y
pro Kategorie (Sozialwirtschaft, Interne, Externe öffentlich, Externe Privat,…)
pro Beendigungsgrund
pro Partnerorganisation
pro Ausbildungsart
Tabelle “Vertragsbeendigungsgründe” : hier müssen weitere Felder rein:
Checkbox “Art.60-7”
Checkbox “VSE”
Checkbox “Erfolg” –> ob es sich um eine “erfolgreiche” Beendigung im Sinne des Tätigkeitsberichts handelt.
Checkbox “vorzeitig” –> ob Beendigungsdatum ausgefüllt sein muss
Neue Regel : ein abgeschlossener Vertrag muss jetzt immer einen Beendigungsgrund haben (nicht mehr wie bisher nur im Falle einer vorzeitigen Beendigung)
Neues Feld “Ausbildungsart” eines VSE. Pro VSE-Vertragsart eine Checkbox “Ausbildungsart”, die besagt, ob man dieses Feld ausfüllen muss oder nicht.
Hier schlage ich vor, dass das ein ForeignKey zur bestehenden Tabelle “Ausbildungsarten” wird, die schon im Reiter “Ausbildung” der Klienten benutzt wird. Es ist das gleiche Konzept, aber mit unterschiedlichem Verwendungszweck. Falls nötig könnten wir später immer noch eine eigene Tabelle dafür machen.
Neue Tabelle “Begleitungsbeendigungsgründe” mit Einträgen wie z.B. “Übergabe an Kollege”, “Einstellung des Anrechts auf SH”, “Umzug in andere Gemeinde”, “Hat selber Arbeit gefunden”,… Ein Feld: - Dienst (optional) –> wenn ausgefüllt, darf dieser Grund nur für Begleitungen in diesem Dienst angegeben werden)
Neue Tabellen “Befreiungen von der Verfügbarkeit auf dem Arbeitsmarkt” pro Klient : Datum von / Datum bis / Grund, sowie Konfigurationstabelle der Dispensgründe (z.B. “Gesundheitlich”, “Studium/Ausbildung”, “Familiär”, “Sonstige”,….)
welfare.pcsw.CoachingEndings