20110906
========

Minor bugfixes
--------------

#.  Fixed the bug "Switching off an 
    `mti.EnableChild` deletes related objects"
    (discovered :lino:`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".

#.  :meth:`disabled_fields` of :class:`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 :mod:`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 
:attr:`lino.Lino.user_model` to `None`.

One problem renains while 
installing fixture :mod:`lino.apps.dsbe.fixtures.demo`,
"Failed to save independent CourseContent #1 (u'Deutsch'). Abandoned."

Checkin 20110906b.


New module :mod:`lino.modlib.isip`
----------------------------------

Es gibt jetzt zwei Arten von Verträgen: VSE-Verträge 
(:class:`lino.modelib.isip.models.Contract`) 
und Arbeitsverträge 
(:class:`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 
(:class:`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 :mod:`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.