Minor bugfixes

  1. Fixed the bug “Switching off an mti.EnableChild deletes related objects” (discovered 0831). If you now switch off the ´is_courseprovider´ field of a Company, and if that Company (as a CourseProvider) has Courses defined, then you’ll get a ValidationError “Cannot delete <name of CourseProvider> because it has at least one course”.
  2. disabled_fields() of lino.modlib.jobs.models.Job: Stelle bearbeiten können wenn noch kein ausgedruckter Vertrag vorliegt.

Checkin 20110906.

General Lino test suite

The general Lino test suite (make test in root of Lino’s source tree) was broken. Now almost ready again.

The biggest problem was that lino.test_apps.mti used users but not contacts. And users now depends on contacts. New feature: It is now possible to define a userless site by setting lino.Lino.user_model to None.

One problem renains while installing fixture lino.apps.dsbe.fixtures.demo, “Failed to save independent CourseContent #1 (u’Deutsch’). Abandoned.”

Checkin 20110906b.

New module lino.modlib.isip

Es gibt jetzt zwei Arten von Verträgen: VSE-Verträge (lino.modelib.isip.models.Contract) und Arbeitsverträge (lino.modelib.jobs.models.Contract). Dass die bisher in einer einzigen Tabelle waren, war offenbar ein Analysefehler. Beide Modelle haben zwar eine Serie von gemeinsamen Feldern (lino.modelib.isip.models.ContractBase), aber eine gemeinsame Historik ist nicht nötig (sondern die Benutzer wollen die beiden lieber klar getrennt haben in zwei Tabellen im Reiter “Verträge” einer Person)

Technisches: lino.modlib.jobs basiert auf lino.modlib.isip und nicht umgekehrt. Deshalb sind die Modelle ExamPolicy und ContractEnding jetzt in isip, nicht mehr in jobs. Ein Modell ContractType gibt es in beiden Modulen.

Checkin 20110906c.

Data migration

The changes in lino.modlib.isip were again a beautiful challenge of data migration. And Lino passed it bravely!

I discovered a new bug in dpy: content types were not correctly handled. Serializer wrote just the id of the ContentType to the dump file. That possibly failed because the contentypes table is populated according to the new database structure and thus the pk’s of the models may have changed. This bug had already affected some data: there are 8 Task records whose owner_type was “examination policy” instead of isip.Contract

Checkin 20110906d.