20121016

Endspurt

  • Wie/wo soll die “Begründung” (RefuseClient, EndCoaching, AssignCoach) gespeichert werden?

Antwort: Dafür soll eine Notiz erstellt werden und nichts anderes. Aber Notizen sind jetzt auch Controllable (kriegen ein neues Feld controller), und wir kriegen eine neue Notion von “note broadcasting”. Change.summary kann wieder raus. Außerdem ein neuer Parameter SiteConfig.notifying_notetype. Gemeinsame Basisklasse ist dd.NotifyingAction.

lino.Lino.get_system_note_recipients()

  • Der Button für AssignCoach erscheint jetzt nur noch auf Kunden mit gültiger NISS. (get_row_permission und get_bound_action_permission kriegen jetzt nicht mehr nur den user, sondern den ar.

  • Neue Warnung “Duplicate element definition only_primary = ‘only_primary’ in ParamsLayout on pcsw.IntegClients”. Ich hatte nämlich mindestens eine halbe Stunde lang danach gesucht.

    In CompanyDetail war auch ein doppeltes Element activity:

    intro_box = """
    prefix name id language
    vat_id:12 activity:20 type:20 #hourly_rate
    activity bank_account1 bank_account2 is_deprecated
    """
    
  • Wenn Root als Melanie arbeitet, dann konnte er in CoachingsByClient dennoch nicht ein Coaching beenden. Weil Lino.GridStore nicht Lino.insert_subst_user() machte.

  • Button [Hilfetexte bearbeiten] funktionierte nicht.

  • Gerd hatte eine gute Idee:

    Eine andere Sache, die vielleicht etwas “unergonomisch” ist: Ich war z.B. auf dem Budget eines Klienten und wollte dort ein neues anlegen. Instinktiv habe ich da auf den New-Button gedrückt und dann gesehen, dass das ja - logischerweise - einen neuen Klienten erstellt.

    Ist nur ein Schnellschuss, aber was hältst du davon, dass man die Buttons immer im Kopf (Titelzeile) des jeweiligen Fensters unterbringt? Dann könnte man sogar Knöpfe machen, wenn Fenster verschachtelt sind und trotzdem wäre klar, welche Aktion zu welchem Fenster gehört. Doof?

    Die buttom toolbar ist jetzt leer, bis auf den eventuellen Button [Hilfetexte bearbeiten]. Bin noch am überlegen, wo ich den hintun soll. Wahrscheinlich am ehesten einen neuen Tool-Button.

Checkin und Upgrade zwecks Besichtigung.

Nachwehe

Ein mysteriöser Fehler, den ich noch nicht verstanden habe:

Exception
20121016 ActionParamsLayout on Begleitungsstadium : Begleitung beenden has no store

TRACEBACK:
  File "/var/snapshots/django/django/core/handlers/base.py", line 111, in get_response
    response = callback(request, *callback_args, **callback_kwargs)

  File "/var/snapshots/django/django/views/generic/base.py", line 47, in view
    return self.dispatch(request, *args, **kwargs)

  File "/var/snapshots/django/django/views/generic/base.py", line 68, in dispatch
    return handler(request, *args, **kwargs)

  File "/usr/local/django/test_dsbe/using/lino/lino/ui/extjs3/views.py", line 867, in get
    rows = [ rh.store.row2list(ar,row) for row in ar.sliced_data_iterator]

  File "/usr/local/django/test_dsbe/using/lino/lino/ui/extjs3/ext_store.py", line 1222, in row2list
    v = fld.full_value_from_object(row,request)

  File "/usr/local/django/test_dsbe/using/lino/lino/ui/extjs3/ext_store.py", line 376, in full_value_from_object
    return self.vf.value_from_object(obj,ar)

  File "/usr/local/django/test_dsbe/using/lino/lino/core/fields.py", line 310, in value_from_object
    return m(obj,ar)

  File "/usr/local/django/test_dsbe/using/lino/lino/core/model.py", line 301, in workflow_buttons
    l.append(ar.renderer.action_button(obj,ar,a))

  File "/usr/local/django/test_dsbe/using/lino/lino/ui/extjs3/ext_ui.py", line 378, in action_button
    st = ar.get_action_status(a,obj)

  File "/usr/local/django/test_dsbe/using/lino/lino/core/actions.py", line 1156, in get_action_status
    raise Exception("20121016 %s has no store" % ba.action.params_layout)

Der kam daher, dass action.params_layout.params_store einmalig beim Erzeugen einer LayoutHandle gemacht wird, und dass die wiederum nur beim Generieren der lino*.js gebraucht wird. Und unter mod_wsgi werden zwei parallele Threads gestartet, von denen nur der erste (wenn überhaupt) eine lino*.js erzeugt. Alle Requests, die vom anderen Thread bedient werden (und diese Verteilung ist zufällig) kriegen potentiell diesen Fehler.

Besichtigung 1

Als Resultat der ersten Besichtigung außer der Nachwehe auch eine Erkenntnis:

Das Menü “ÖSHZ” war verwirrend. Weg damit. ÖSHZ ‣ Klienten kommt nach Kontakte ‣ Klienten. “Meine Begleitungen” und “Begleitungsvorschläge” raus, stattdessen kommen neu zugewieene Coachings jetzt immer direkt in den Status coached. Auch “Begleitungsvorschläge” wird bis auf weiteres nicht benutzt. Auch die CoachingStates ‘suggested’ and ‘refused’ werden rauskommentiert.

Workflow Kalender und Konfigurierung der “Systemnotizen”. Wenn man eine Einladung ablehnt, kommt nun ebenfalls ein Dialogfenster, wo man dem Autor des Termins den Grund mitteilen kann. Falls der Termin einem Kunden zugewiesen ist, wird die Absage dann auch als Systemnotiz vermerkt. So oder so wird eine E-Mail verschickt (wenn denn alle Betroffenen ihre Adresse eingetragen haben)