20100803

5.30 Uhr

Done:

  • Bei prev/next im Detail wurden die Slavegrids nicht aktualisiert.

Das war mal wieder ein Problem wegen this. Für mich als Javascript-Anfänger und langjähriger Python-Liebhaber ist das this sehr gewöhnungsbedürftig…

Weiter mit:

  • disabled_fields auch in der Grid sperren

Das beforeedit-Event wird zwar jetzt korrekt aufgerufen, aber die Records der Grid haben noch kein Attribut disabled_fields.

Also muss ich in ViewReportRequest.row2dict() ein Level mehr produzieren (dict(data=das_was_bisher_war,disabled_fields=[])) und dann aber auch den Ext.data.JsonStore entsprechend anpasse. Hm, das sieht nicht leicht aus…

Jedenfalls muss disabled_fields pro Record und vom Server ermittelt werden.

24 Uhr

Ha! Die Erleuchtung (nach einem Tag des Grübelns): nicht wie ich mir das heute morgen dachte, sondern einfach im Store ein Pseudo-Datenfeld ‘disabled_fields’ definieren. Dazu brauchen wir eine eigene Klasse lino.ui.extjsw.ext_store.DisabledFieldsStoreField, die eine ganz neue Art von lino.ui.extjsw.ext_store.StoreField ist, weil sie keinem existierenden django.db.models.Field entspricht. Deshalb darf man bis auf weiteres in keinem Model ein echtes Datenbankfeld mit dem Namen ‘disabled_fields’ definieren. Falls das mal stören sollte, muss ich den verwendeten Namen z.B. nach ‘_disabled_fields’ ändern.

Nebenbei: lino.ui.extjsu kann jetzt weg. Und lino.ui.extjsw heißt jetzt wieder lino.ui.extjs.