20121025¶
TODO:
Nicht “Status” und nicht “Aktenzustand”, sondern “Bearbeitungszustand”.
“Komplette Akte” ersetzen durch “primäre Begleitung”
In “Neue Klienten” steht noch “Altfälle”
warum wurde kein Chronik-Eintrag erstellt bei aliber (23132)?
DONE:
workflow Klienten: Ehemalig -> Neuantrag
Im Insert-Fenster gibt es ja jetzt zwei Buttons “Erstellen” und “Erstellen und Bearbeiten”. Sehr unklar. Zumindest bessere Bezeichnungen:
“Erstellen und Speichern” / “Erstellen und Bearbeiten”
“Im Schnellsuche-Feld braucht man jetzt nicht mehr TAB zu drücken, um die Suche zu starten.” Von wegen “Arbeitsaufwand 30 Minuten”: Es war doch recht störend, dass das Feld dann auch den Tastaturfokus verlor. Zwei weitere halbe Stunden.
Auch [Parameters] hat jetzt ein Icon und einen tooltip
Reihenfolge Aktionen: Insert kommt jetzt an erster Stelle (
sort_index
10), noch vor Detail, weil die ja fast noch eher eine Listenaktion als eine RowAction ist.Icon für outbox.Mail.send, postings.Posting.print
lino_welfare.modlib.newcomers.models.AvailableCoachesByClient
: Feld “Quote” ersetzt durch “Belastung” (“Workload”). Und die Liste ist jetzt nach diesem Wert sortiert: der am wenigsten belastete verfügbare Begleiter steht zuerst.Neues Attribut
lino.core.actors.Actor.hide_sums
wird benutzt in AvailableCoachesByClient, die jetzt auchlino.core.actors.Actor.slave_grid_format
auf html hat.
Ein cooler Bug¶
Weil AvailableCoachesByClient jetzt mit
slave_grid_format
html
angezeigt wird, kam ein weiterer subtiler Bug zum Vorschein.
Symptom war: :menuselection`Kontakte –> Klienten` und
dann Doppelklick oder Enter. Dann kam auf dem Server:
Exception
Expected a list of 2 values, but got [u'', u'', u'', u'false', u'', u'', u'', u'false', u'']
TRACEBACK:
File "l:\snapshots\django\django\core\handlers\base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "l:\snapshots\django\django\views\generic\base.py", line 58, in view
return self.dispatch(request, *args, **kwargs)
File "l:\snapshots\django\django\views\generic\base.py", line 79, in dispatch
return handler(request, *args, **kwargs)
File "t:\hgwork\lino\lino\ui\extjs3\views.py", line 723, in get
datarec = elem2rec_detailed(ar,elem)
File "t:\hgwork\lino\lino\ui\extjs3\views.py", line 170, in elem2rec_detailed
rec = elem2rec1(ar,rh,elem,**rec)
File "t:\hgwork\lino\lino\ui\extjs3\views.py", line 122, in elem2rec1
rec.update(data=rh.store.row2dict(ar,elem))
File "t:\hgwork\lino\lino\ui\extjs3\ext_store.py", line 1248, in row2dict
v = fld.full_value_from_object(row,ar)
File "t:\hgwork\lino\lino\ui\extjs3\ext_store.py", line 783, in full_value_from_object
return unbound_meth(obj,request)
File "t:\hgwork\lino\lino\core\tables.py", line 892, in meth
master_instance=master)
File "t:\hgwork\lino\lino\core\dbtables.py", line 473, in request
return TableRequest(ui,self,request,action,**kw)
File "t:\hgwork\lino\lino\core\tables.py", line 169, in __init__
actions.ActionRequest.__init__(self,ui,actor,request,action,**kw)
File "t:\hgwork\lino\lino\core\actions.py", line 962, in __init__
pv.update(self.actor.params_layout.params_store.parse_params(request))
File "t:\hgwork\lino\lino\ui\extjs3\ext_store.py", line 997, in parse_params
raise Exception("Expected a list of %d values, but got %s" % (len(self.param_fields),pv))
Erklärung: weil die AvailableCoachesByClient außerdem
parameters
hat, versuchte sie in diesem Fall, die Parameterwerte
aus dem ActionRequest rauszuholen.
Die Master Tabelle hat deren auch. Aber die sind ja für
den Master und nicht für den Slave gedacht.
Wenn eine parametrierte Slave-Tabelle im Detail eines Masters angezeigt wird,
muss sie dies mit den Default-Serte ihrer Parameter tun.
Implementierung:
slave_as_html_meth
gibt jetzt immer einen expliziten param_values={} mit,
und ActionRequest
meckert jetzt nicht mehr falls die Tabelle
keine Parameter hat (“Cannot request param_values on “) und
parst den request für Parameterwerte jetzt nur noch, wenn dieses
param_values None ist.
Noch was Neues:
Slave-Tabellen im
slave_grid_format
html
zeigen jetzt den no_data_text korrekt an.
Danach habe ich das
slave_grid_format
html
der Tabelle “Verfügbare Benutzer” allerdings doch wieder abgeschaltet,
weil es da noch ein anderes Problem gibt: die Aktionen (Zuweisen) werden im plain
html-Modus dann nicht korrekt gerendert.
Und noch ein Bug:
Nach erfolgreicher Zuweisung eines Klienten springt er ohne viele Worte auf den nächsten Klienten. Stattdessen alert_msg. Oder in die Grid zurück?
Die Aktion war korrekt programmiert (dass sie eine abschließende Meldung in
einer alert-Box anzeigen soll), aber das Problem war, dass die Box nicht kam.
Das war ein trivialer Bug in lino.ui.base.UI.success_response()
.
Checkin wegen Feierabend.
Nachtsitzung¶
Ich war schon im Bett und wollte einschlafen, da kam Lino mit der Idee, wie ich die eventuellen Fehlermeldungen “No handler soundo” abfangen kann, die beim Ausdruck von manchen Tx25 möglicherweise kommen und von den Benutzern dann nicht unbedingt gemeldet werden.
Also Optimierung des Fehlerreporting-Systems in solchen Fällen. Was zu drei neuen Beispielen in meiner privaten Fehlersammlung führte (privat, weil ich natürlich keine echten Resultate einer Tx25 ins Lino-Repository stellen darf):
Tx25 # 74 : NameType instance has no attribute ‘FirstName’
Tx25 # 20 : No handler for Pseudonyms (Pseudonyms)
Tx25 # 4 : No handler for Aliases (Aliases)