20110414¶
Doppelklicks¶
Nach einigen Tagen mit Fieber im Bett geht es jetzt weiter mit folgendem Punkt:
In einer Grid, die auch ein Detail hat, wird durch Doppelklick auf einer CheckColumn gleichzeitig auch das Detail-Fenster geöffnet. Das muss behoben werden, bevor ich mit den “allgemeinen Uploads” anfangen kann.
Die processEvent der Ext.grid.GridView feuert in folgender Reihenfolge:
- grid.fireEvent('dblclick')
- grid.fireEvent('celldblclick')
(die dann onCellDblClick meiner Lino.GridPanel ruft)
- column.processEvent
(die im Fall einer Lino.CheckColumn den Wert umschaltet)
- grid.fireEvent('rowdblclick')
Wie kriege ich die beiden miteinander kombiniert? Oder zuerst mal: was will ich eigentlich genau? Soll ein Doppelklick auf der Zelle einer CheckColumn (in einer Grid mit Detail) (1) den Wert umschalten und nicht das Detail-Fenster öffnen? oder (2) den Wert nicht umschalten und stattdessen das Detail öffnen? oder (3) will ich das pro Report konfigurierbar machen?
Spontan würde ich für Lösung (1) tendieren, aber Lösung (2) ist ganz leicht zu implementieren, und deshalb habe ich das jetzt mal so gemacht. Also in der Grid eines Reports, der ein Detail hat, können CheckColumns nicht per Doppelklick umgeschaltet werden. Doppelklick heißt in solchen Grids immer “Detail öffnen”. Mir gefällt das so.
Dumping CourseProviders and Companies¶
Der folgende Punkt ist jetzt auch fertig:
dpy.Serializer schreibt momentan in den dump eines CourseProvider alle Felder der Company nochmal rein. Er muss aber statt dieser Felder nur company_ptr setzen.
War im Grunde ganz einfach, ich musste nur _meta.local_fields statt _meta.fields nehmen.
Ich habe auch eigens einen Testcase
lino.projects.dsbe.tests.dsbe_tests.test01()
geschrieben, der allerdings nicht wirklich testet
sondern mir beim Überlegen behilflich war.
Ärgerlich auch wieder mal, dass ich den besagten Testcase nicht in autodoc rein kriege, wegen der DJANGO_SETTINGS_MODULE. Aber bon, das ist weniger dringend. Sorry, wenn in diesem Blog viele Links noch immer nicht funktionieren.
Abends mach ich die Probe aufs Exempel:
Dump mit der alten Version
Check-in, Upgrade und Dump mit der neuen Version
Dateivergleich, ob auch wirklich nur die CourseProvider sich verändert haben. Alles klar.
(Nachtrag: hier habe ich dann gar nicht daran gedacht zu testen, diesen neuen Dump dann auch einzulesen. Sh. https://www.lino-framework.org0415.html)
Date formatting¶
Wenn man als Datum
13/12/2010
eingibt, macht er daraus12.01.2011
. Weil er das als ein amerikanisches Format ansieht.
Der Fehler war nicht wie anfangs vermutet auf der Serverseite, sondern der
Client schickte schon 12.01.2011
.
Das lag lediglich am Konfigurationsparameter altFormats
des http://www.sencha.com/deploy/dev/docs/?class=Ext.form.DateField.
Um kompakteren Code zu generieren, habe ich jetzt außerdem
eine Klasse Lino.DateField in der :xfile`linolib.js`.
Den Parameter Report.date_format habe ich vorläufig mal rausgeholt.
Und statt
lino.DATE_FORMAT_STRFTIME
,
lino.DATE_FORMAT_EXTJS
und
lino.PARSE_DATE()
heißt es jetzt
settings.LINO.date_format_strftime
usw.
Denn das Datumsformat konnte man bisher überhaupt nicht konfigurieren,
jetzt kann man das bis auf weiteres immerhin global pro Site.
Check-in und Upgrade in Eupen.