20130715 (Monday, 15 July 2013)

Empfangsverwaltung

Started a new module lino.modlib.reception (“Empfang”). This module is for managing a reception desk and a waiting room: register clients into a waiting queue as they present themself at a reception desk (Empfangsschalter), and unregister them when they have been received by a user (i.e. a social worker, a physician, a clerk…). Users can see a list of the people in the waiting room.

N.B.:

  • Die Aktionen Checkout und Checkin funktionieren unabhängig vom Gast-Zustand (“eingeladen”, “bestätigt”, …)
  • “Neuanträge” und “Empfang” sind verschiedene Dinge.

Klientengespräche und Gäste in Lino-Welfare

(Das Folgende ist noch nicht begonnen, ich plane noch)

Eine erste Konsequenz des neuen Empfangsmoduls auf das Kalendermodul: bisher funktionierte Lino so, dass ein Termin für einen bestimmten Klienten immer “selbstverständlich” diesen Klienten als Gast hatte, ohne dass der Klient explizit in der Liste der Gäste des Termins (welfare.cal.GuestsByEvent) steht.

Das war so, weil die Anwesenheit des Klienten selbstverständlich ist für Termine vom Typ “Klientengespräche”. Ich fand es unnötig kompliziert, dass ansonsten in den meisten Fällen gleich zwei Records pro Termin angelegt würden: einer für den Termin an sich und ein anderer für den (einzigen) Gast.

Ich glaube, dass ich diese Regel raushole. Dadurch wird die Sache zunächst mal scheinbar komplexer, aber schon beim zweiten Blick wird alles logischer. Konsequenzen:

  • Lino trägt für geplante Termine automatisch den Klienten des Termins als einzigen Gast ein, wenn der Termin (1) noch keine Gäste hat, (2) sein Zustand mindestens “Geplant” ist und (3) die Terminart die Option “Klient als Gast einladen” angekreuzt hat.

    Terminzustände kriegen ein Attribut “fill_guests”, das die Anwendung für den Zustand “Geplant” auf True setzt.

  • Wir brauchen dann auch keinen Terminzustand “Abwesend” mehr, sondern das wird pro Gast gesagt.

  • Die Aktionen “Anwesend” und “Abwesend” werden nur noch für Gäste gefragt, deren Termin “Stattgefunden” ist.

  • Neue Tabelle “Stattgefundene Termine” zeigt alle Termine in der Vergangenheit, die noch im zustand “Geplant” oder “Entwurf” stehen. Diese Tabelle kriegt man im Willkommensgruß präsentiert wenn sie nicht leer ist. Hier muss man pro Termin angeben:

    • “Stattgefunden” wodurch alle “eingeladenen” oder “bestätigten” Gäste des Termins als “Anwesend” markiert werden.
    • “Ausgefallen” (wodurch alle alle eingeladenen oder bestätigten Gäste des Termins als “Abwesend” markiert würden.