/docs/blog/2010/0803.rst

https://code.google.com/p/lino/ · ReStructuredText · 30 lines · 17 code · 13 blank · 0 comment · 0 complexity · 8861263e06a6386d146e4e16b2176050 MD5 · raw file

  1. 20100803
  2. ========
  3. 5.30 Uhr
  4. --------
  5. Done:
  6. - Bei prev/next im Detail wurden die Slavegrids nicht aktualisiert.
  7. Das war mal wieder ein Problem wegen ``this``.
  8. Für mich als Javascript-Anfänger und langjähriger Python-Liebhaber ist das ``this`` sehr gewöhnungsbedürftig...
  9. Weiter mit:
  10. - `disabled_fields` auch in der Grid sperren
  11. Das beforeedit-Event wird zwar jetzt korrekt aufgerufen, aber die Records der Grid haben noch kein Attribut `disabled_fields`.
  12. Also muss ich in `ViewReportRequest.row2dict()` ein Level mehr produzieren (``dict(data=das_was_bisher_war,disabled_fields=[])``) und dann aber auch den :extjs:`Ext.data.JsonStore` entsprechend anpasse. Hm, das sieht nicht leicht aus...
  13. Jedenfalls muss `disabled_fields` *pro Record* und *vom Server* ermittelt werden.
  14. 24 Uhr
  15. ------
  16. 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 :class:`lino.ui.extjsw.ext_store.DisabledFieldsStoreField`, die eine ganz neue Art von :class:`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.
  17. Nebenbei: :mod:`lino.ui.extjsu` kann jetzt weg. Und :mod:`lino.ui.extjsw` heißt jetzt wieder :mod:`lino.ui.extjs`.