20120622¶
IntegrityError beim Erstellen eines Budgets
Übersetzungen
IPR.fill_from_person()
Tx25 nächstes Fallbeispiel.
disable_edit ignorierte es, wenn eine custom get_row_permission Veto anmeldete
Nach Duplizieren im Detail sprang er nicht korrekt auf den neuen Datensatz.
Workflow on Tx25. Status “new” kommt raus (ersetzt durch “leer”). Die Aktionen Drucken und Ausführen sind jetzt abhängig vom Status.
Button [Letzten zeigen] funktionierte nicht. Behoben. Gab den phantom record vom zuvor erstellen [Neu] als data_record mit.
lino.ui.extjs3.ext_ui.HtmlRenderer.quick_add_buttons()
.N.B.: was ist besser:
required = dict(user_level=UserLevels.manager)
required = dict(user_level='manager')
Ich wähle (b), weil es kürzer ist, weil man dann UserLevel nicht zu importieren braucht, weil ein eventueller Tippfehler spätestens beim Serverstart gemeldet wird, weil es klar ist, dass es sich hier um UserLevels handelt.
Reiter “Budgets” war noch sichtbar für alle.
Neues Modul
lino.modlib.postings
Randbemerkung. Schade, dass man in Python folgendes nicht machen kann:
bases = [Component,Ended,mixins.TypedPrintable,outbox.Mailable] if postings: bases.append(postings.Postable) class Event(*bases): ...
Bisher bekamen alle
Components
einen permission handler verpasst. Das war nicht nötig, nur GridPanel und Panel brauchten den.Das Hauptmenü sitzt jetzt in einer Variablen Lino.main_menu in der
lino*.js
, wird also nicht mehr bei jedem Request neu generiert, sondern ist ein Teil des Site-Cache. (was einen Bug 2012-06-26 zur Folge hatte)Wenn zwei Module für
lino.utils.menus.Menu.add_menu()
den gleichen (internen) Namen nehmen, dann werden die beiden Menüs jetzt zusammengefasst. outbox und postings nutzen das aus.