20120904

  • New method lino.Lino.get_application_info().

  • Fixed a bug that caused the list of models in lino.About to not open in a separate window. lino.core.actors.Actor.disabled_actions() returns now an empty dict, but is overridden by lino.core.dbtables.Table.disabled_actions() which tests for get_row_permission.

  • Added an argument ar to lino.core.model.Model.disable_delete() and lino.utils.mti.delete_child(), because watch_tim needs special permission to modify imported partners. It got a “Cannot delete companies and persons imported from TIM” veto when trying to convert a Person to a Company or vice-versa.

    Application code before:

    def disable_delete(self):
        if settings.LINO.is_imported_partner(self):
            return _("Cannot delete companies and persons imported from TIM")
        return super(CpasPartner,self).disable_delete()
    

    … and after:

    def disable_delete(self,ar):
        if ar is not None and settings.LINO.is_imported_partner(self):
            return _("Cannot delete companies and persons imported from TIM")
        return super(CpasPartner,self).disable_delete(ar)
    

Lino-Welfare

The legacy database (TIM) contains duplicate clients having the same national_id. But we want to keep the unique=True requirement on Client.national_id. How to solve this: legacy Clients marked is_deprecated ` now automaticaly get a suffix “ (A)” appended to their `national_id. (both watch_tim and migrate)

Field prefix of imported Companies wasn’t read-only.

Bug “Imbiss Firat”: watch_tim konnte seit 20120728 nicht mehr von Person nach Firma konvertieren. Also z.B. wenn man die MWSt-Nr eines Partners in TIM löschte. Dann kam die Fehlermeldung “Aus TIM importierte Partner dxfcrfen nicht gelöscht werden.”