20140203 (Monday, 03 February 2014)

Lino and bicycle races in East-Belgium

During the week-end I updated the events calendar at http://www.vor-cycling.be and was positively surprised how painless this worked. This calendar of bicycle races in East-Belgium is part of Lino rather by accident because one of the responsibles is a friend, and because it is so fun to see how Lino can be used for managing “generated web content”: lino.modlib.events.fixtures.vor.

Technically this is just a fixture, and –I got aware of this only now– in order to fully document how it works I’d need to also include the project’s userdocs directory. As a workaround here’s the source code of http://www.vor-cycling.be/events.html, in fact the only special page of that site:

===========================
Veranstaltungskalender 2014
===========================

.. django2rst::

  from atelier.rstgen import header
  for obj in events.Type.objects.order_by('id'):
      print(header(2,unicode(obj)))
      print()
      print(obj.EventsByType().to_rst())

Updated Lino Welfare userdocs

I also worked on the userdocs of Lino Welfare after discovering that they had a css stylesheet missing.

Die Adressen der Klienten

Manche ÖSHZ-Kunden sind nicht besonders sesshaft, sie ziehen häufig um, manchmal gewollt und manchmal nicht, manchmal offiziell und manchmal nicht. Manche haben gar keine richtige Adresse, sondern einen “Referenzadresse”. Andere haben einen offiziellen Wohnsitz, aber jeder weiß, dass sie in Wirklichkeit ganz woanders wohnen.

Um dieses Chaos unter Kontrolle zu kriegen, haben wir uns folgendes System ausgedacht:

  • Jeder Klient ist ein Partner und hat somit eine “Hauptadresse”. Das ist die, die in der Tabelle selber gespeichert ist.
  • Jetzt kommt eine neue Tabelle “Adressen” hinzu, in der man pro Klient eine Liste aller “möglichen” Adressen pflegen kann.
  • Es kommt auch eine neue Tabelle “Adressart” mit unter anderem den Einträgen “Offizieller Wohnsitz”, “Tatsächlicher Wohnsitz”, “Referenzadresse”, “Sonstige”.
  • Die Hauptadresse des Klienten kann nicht mehr direkt verändert werden. Stattdessen ändert man in der Adressenliste.
  • Lino muss also irgendwie wissen, welche Adresse man zur Hauptadresse ernannt hat. Diese Wahl kann pro Klient ändern. Deshalb gibt es pro Klientenadresse ein Ankreuzfeld “primär” bzw. “Hauptadresse”. Ähnlich wie bei den Coachings kann immer nur eine Adresse pro Klient primär sein.
  • Weil die Adresse nicht mehr direkt änderbar ist, braucht sie nicht mehr in der platzaufwändigen Formularanischt im Detail zu stehen.
  • Lohnt es sich, das System wiederverwertbar zu machen? Eher nicht. Abgesehen von den Funktionen, die sowieso schon wiederverwertbar sind, scheint mir die hier beschriebene Logik sehr spezifisch zu sein. Zumindest die Liefer- und Fakturationsadressen im privatwirtschaftlichen Verkaufsmodul haben damit nichts zu tun, da legt man eher getrennte Partner an.

Changes:

  • New model pcsw.ClientAddress (lino_welfare.modlib.pcsw.client_address.ClientAddress)
  • moved some code from lino_welfare.modlib.pcsw to a new module lino_welfare.modlib.pcsw.coaching
  • Moved parts from contacts.Partner to a contacts.AddressLocation mixin.

TODO:

  • adapt test suites
  • ui integration