20120703 ======== Zu den gestern entdeckten offenen Problemen: - Wenn man über "Meine Tx25-Anfragen" eine neue Anfrage erstellt, füllt Lino die NR-Nr. nicht ein, nachdem man den Klienten ausgewählt hat. --> Das ist nicht nur nicht einfach, sondern auch nicht sinnvoll. Der komplette KBSS-Baum aus dem "Mein Menü" kommt raus, fertig. - Kann Fenster mit ungültigen Angaben nicht schließen, weil `auto_save` fälschlicherweise auch beim close button zuschlägt und den Record dann jedesmal zu speichern versucht (was jedesmal fehlschlägt). --> New attribute :attr:`lino.core.actions.Action.auto_save`. Customization functions ----------------------- Another little problem occured which is worth some principal thoughts. In :mod:`lino.apps.pcsw`, since :class:`models.Note ` has become a :class:`ProjectRelated `, the internal name of the ForeignKey to the Person has changed from `person` to `project`. And the field `company` became an application-specific field, injected in :mod:`lino.apps.pcsw.models`. We wanted it like this because it makes the :mod:`lino.modlib.notes` module available for usage in other applications. But then we discovered that the appy template for printing a CV no longer works. Of course: it contains references to the `person` field. Solution is easy: make an application-specific property `person`:: def get_person(self): return self.project Note.person = property(get_person) This code sits in :mod:`lino.apps.pcsw.models`, more precisely in the :func:`customize_notes ` function of that module. Formulated the new concept of "customization functions", and :mod:`lino.apps.pcsw.models` defines six of them: - :func:`customize_siteconfig ` - :func:`customize_notes ` - :func:`customize_contacts ` - :func:`customize_sqlite ` - :func:`customize_user_groups ` - :func:`customize_user_profiles ` Miscellaneous ------------- Some free changes (not asked by any user): - The :class:`CreatePostings `, :class:`CreateMail ` and :class:`SendMail `, actions were (wrongly) callable from an insert window. - Wow! :func:`lino.apps.pcsw.models.site_setup` now adds an `insert_template` for `notes.Note`. Creating a Note is now much more intuitive. - Creating an E-Mail on a Note whose NoteType specifies "Mail as attachment" is now disabled as long as the Note hasn't been printed. - `outbox.Mail` objects are now readonly after they have been sent. - The `outbox.Mail.user` field is now labelled "Sender" instead of "User". Fixed a bug reported by Gerd: - "Wenn ich eine Notiz eines Kollegen per E-Mail verschicke, steht als Sender der Kollege." This was because :class:`UserAuthored ` had the following method:: def update_owned_instance(self,other): other.user = self.user super(UserAuthored,self).update_owned_instance(other) Removed that method because we cannot generally say that this is a wanted behaviour. Don't even remember where it is useful. (If it was, then these cases will pop up as bug reports... sorry). Solved another bug reported by Gerd: - "Empfängerart wird erst sichtbar, wenn man auch einen Empfänger eingegeben hat." This is not truly fixed, but I moved the Recipient.type column to the right so that the user first selects the Partner. IMHO that's enough. - Übersetzung Label für "Create": "Erstellen" InsertLayout cannot inherit from a DetailLayout ----------------------------------------------- Also added a separate `insert_template` for `cal.Events`. But there I understood a subtle design problem: having InsertLayout and DetailLayout two different classes made it impossible to define an insert_layout that inherits from a detail_layout. The detail_layout of cal.Events defines two panels `start` and `end`, and we were not able to reuse them for the insert_layout. Internal changes to make this possible: reduced InsertLayout and DetailLayout to a single class :class:`FormLayout `. Miscellaneous ------------- - Oops, the :lino:`/tutorials/lets` was really very obsolete. Now it works again. - Started a `French User Guide `_ for :mod:`lino.apps.pcsw`: