Wednesday, April 5, 2017

Inserting TinyMCE text templates

I tried to reproduce #1630 : Uns ist aufgefallen dass die Vorlagen nicht überall funktionieren: das bedeutet, dass die Vorlagenliste nicht erscheint und man schon erstellte Vorlagen nicht auswählen kann. Z.B. Wenn ich einen neuen VSE Vertrag mit einer Partnerorganisation erstelle und Aufgaben für diese Partnerorganisation mit Vorlagen erstellen will, kann ich nichts auswählen.

I had to rediscover how the lino.modlib.tinymce plugin works. Every text editor instance, when initialized, sends a request like this:

http://127.0.0.1:8000/tinymce/templates/notes/MyNotes/21/body

And Lino answers something like this:

var tinyMCETemplateList = [
    [ "hello",
      "/tinymce/templates/notes/MyNotes/21/body/1",
      "Inserts 'Hello, world!'" ],
    [ "mfg",
       "/tinymce/templates/notes/MyNotes/21/body/2",
      "None" ]
  ];

I also created #1674 (Find a better JS text editor) because we probably won’t port tinymce to ExtJS6.

Who is online?

I did research for #1673 and did some optimizations in lino.modlib.ipdict:

  • ipdict.models.Connections now shows one row per ip:username instead of one row per ip and then all the usernames for that ip. Also the whole blacklisting is done per ip:username.

  • when an IP was blacklisted, got unlocked after max_blacklist_time and then received a successful login, then all sins of anonymous are erased

  • ipdict now also works when using http authentication

Above changes are probably already a satisfying answer for #1673.

Note that ipdict unlike normal plugins should not be acticated by adding it to your get_installed_app() but by setting the lino.core.site.Site.use_ipdict attribute.

Just out of curiosity I also started a new plugin lino.modlib.blacklist which (when finished) would do the same as ipdict except that it uses the Django session to store these data. Advantage would be that we don’t need to worry what happens when a site has so many http connections that storing an IPRecord for each of them will cause a memory overflow.

Avanti weiter

Hangout mit Johanna, Thomas und Janina.

TODO:

  • Klientenstatus “Neuantrag” kann wirklich raus.

  • Explorer : cf_level_de : “A2”, nicht “Elementare Sprachverwendung”

  • Klienten filtern können nach “Kursbedarf” : wer mindestens eine Anfrage in einem Kurs dieser Serie hat. Feld needed_course kann wahrscheinlich dann raus.

  • StudiesByPerson und ExperiencesByPerson : Beginndatum und Enddatum unsichtbar. Bemerkungen sichtbar. Neues Feld “Dauer”.

  • Klienten column_names + “*” Zeigen, wie Johanna die Felder aktivieren kann und Liste ausdrucken kann.

  • Doppelklick auf Johanna –> [Wed Apr 05 14:30:21.939103 2017] [wsgi:error] [pid 18600:tid 140141732259584] UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc3 in position 25: or

  • Kartennummer kann weg

  • (à confirmer) Partnernummer wieder in die Excel-Daten rein, damit man keine Verknüpfung zwischen Klienten und Einschreibungen machen kann. Stattdessen darf Janina im Kurs nur die Namen ohne Nummer sehen.

TALK:

  • Kinderbetreuung : wieviele Kinder? Arten. Pro Haushaltsmitglied könnte man noch die Betreuungsart eingeben. Hier eventuell noch unterscheiden zwischen (1) Ist-Situation und (2) Bedarf. Betreuungsarten wären z.B. Keine, Betreutes Kind, Pfegebedürftiger Angehöriger, Behindert, Kleinkind, Kindergarten, Schulkind, … Aber wahrscheinlich ist das alles zu detailiert und nicht pflegbar.

    Eher vielleicht eine allgemeinere Tabelle mit “Hindernisgründen” (mangelnde Kinderbetreuung, Krankheit, pflegebedürftige Angehörige, …). Zu beobachten.

  • Fiktive Demo-Klienten : die verfälschen ja die Statistiken.