= [20100223 ←] [20100225 25.02.2010] [20100226 →] =¶
Kommen wir zum Speichern von Properties. Außerdem sehe ich, dass er momentan nur die gesetzten Eigenschaften anzeigt, aber ich will ja immer alle sehen. Auch macht er momentan selbst dann für jeden Record einen Request, wenn der Ei-Editor gar nicht geöffnet ist. Ich muss also das Laden der Eigenschaften nicht nur als row_listener der main_grid machen, sondern auch beim Öffnen des Fensters.
Und es wird wohl auch noch einen Report ChoicesByProperty geben müssen, mit dem man die Auswahlmöglichkeiten einer Eigenschaften sehen und bearbeiten kann.
Das Speichern im Ei-Editor kann noch nicht funktionieren, weil mt und mk nicht übergeben werden. Die werden doch in Lino.load_master() gesetzt. Aber der ist an den Store gebunden, und einen Store hat ein Report ohne use_layouts ja nicht. Einen Store braucht die PropertyGrid ja auch nicht, weil die für jeden Record einen neuen Request macht.
Das Laden ist also jetzt ausgelagert in die globale Funktion Lino.load_properties(caller,url,record). Die unterlässt den Request jetzt, wenn das Fenster hidden ist. Und wird deshalb nun auch im show-Event des properties_window aufgerufen.
Eine Ext.PropertyGrid hat keinen normalen Store, deshalb kann ich Lino.grid_afteredit() nicht für den Ei-Editor benutzen. Also eine neue globale Funktion Lino.submit_property(caller,e).
Dann noch der submit_property_view(self,request). Der ist für alle property-Fenster die gleiche URL und braucht nur vier Parameter owner_type, owner_id, name, und value. Soll ich hier wirklich einen ReportRequest instanzieren, nur um mk und mt in die master_instance zu konvertieren? Zumal BaseViewReportRequest dann noch verändert werden müsste, damit er auch mit einem POST-Request funktioniert. Ich könnte stattdessen auch die Logik aus BaseViewReportRequest.parse_kw() auslagern und die ganze Idee mit den Reports ohne Layout wieder verwerfen. Dann käme PropValuesByOwner und use_layouts wieder raus.
Hm… jetzt zuerst mal Mittagspause…
Also Ausklinken oder nicht? Ist PropValuesByOwner nützlich oder nicht?
Ich könnte in parse_kw() natürlich request.REQUEST abfragen statt GET oder POST, aber die [https://docs.djangoproject.com/en/5.0/ref/request-response Django-Doku] sagt “It’s strongly suggested that you use GET and POST instead of REQUEST, because the former are more explicit.”
Die Frage ist nicht definitiv beantwortet, aber die einfachste bzw. zukunftsweisendste Implementierung scheint mir ohne Ausklinken. parse_kw() fragt nun entgegen des Rates der Django-Doku request.REQUEST ab (tant pis).
Noch Tests und einige Kleinigkeiten, und schon ist wieder Feierabend :-(
Morgen muss ich noch die Fenstergröße des Ei-Editor speichern (und wahrscheinlich dann auch in einem die Kolonnenbreiten usw).