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. :meth:`lino.ui.extjs3.ext_ui.HtmlRenderer.quick_add_buttons` . - N.B.: was ist besser: (a) ``required = dict(user_level=UserLevels.manager)`` (b) ``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 :mod:`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* :class:`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 :xfile:`lino*.js`, wird also nicht mehr bei jedem Request neu generiert, sondern ist ein Teil des Site-Cache. (was einen Bug :blogref:`20120626` zur Folge hatte) - Wenn zwei Module für :meth:`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.