20120923…26

Finished the first implementation of the new https://www.lino-framework.org/topics/changes.html feature.

Discovered and fixed a series of bugs that occured only for non-admin users.

  1. One of them caused panels of a TabPanel to be visible also for users who don’t have permission to see them. Every VisibleComponent is now a Permittable.

  2. A second bug caused some panels to not be rendered for non-admin user profiles. Der kam, weil ich in der setup_handle von lino_welfare.modlib.cbss.models.CBSSRequestDetail irgendwann mal folgendes geschrieben hatte:

    def setup_handle(self,lh):
        ...
        lh.technical.required.update(user_level='admin')
    

    Aber required ist ein Klassenattribut, definiert in lino.core.perms.Permittable. Solange das nicht neu definiert wurde, ist es für alle Elemente das gleiche. Also ab dem Moment wo setup_handle ausgeführt worden war, hatten plötzlich alle Elemente dieses requirement. Die Ausführungsreihenfolge dieser setup_handle war außerdem unbestimmt, d.h. konnte sich von compile zu compile ändern. Also da hatte ich was zu tun!

  3. Dann hatten wir noch einen Fehler “Uncaught ReferenceError: cbss_summary_htmlbox1239 is not defined” beim Öffnen des ClientDetail.

    Das virtuelle Feld cbss_summary ist eine einfache HtmlBox ohne requirements. Aber sie ist enthalten im cbss-Reiter, also nur sichtbar für KBSS-Benutzer.