20110506

Aufzählungen drucken

Ich habe mal eine Dokumentvorlage für notes.Note gemacht und mit dem systematischen Testen der Formatierungsmöglichkeiten begonnen. Aufzählungen funktionieren noch nicht.

Einen der Fehler habe ich als expatreader exception during xhtml gemeldet. Um den zu umgehen, kann man folgenden pod command benutzen:

do text
from xhtml(restify(self.body).encode('utf-8'))

Einfacher ist es aber ab dem nächsten Release, denn dann müssten diese Stellen sowieso alle konvertiert werden nach:

do text
from restify(self.body)

(Um das hinzukriegen, musste ich mir was einfallen lassen, siehe lino.utils.restify.install_restify())

Und das Problem von gestern (dass er Aufzählungen verschluckt, Bug #777890) ist hoffentlich auch bald gelöst. Hier warte ich jetzt auf Antwort auf meine Frage im Forum von Docutils.

Gridkonfiguration speichern

In Eupen funktionierte das Speichern einer Gridkonfigation nicht.

Auslöser war, dass das lokale config-Verzeichnis nicht durch www-data geschrieben werden durfte. chmod g+w config löste das Problem.

Dann machte Lino den Fehler, dass er das Problem dem Benutzer nicht meldete (außer dass die übliche Bestätigung “GridConfig has been saved to …/config/notes.NotesByCompany.gc” fehlte, was ja niemand merkt). Auf dem Server schrieb mod_wsgi dann zwar den Traceback in die error.log rein…

Traceback (most recent call last):
  File "/var/snapshots/django/django/core/handlers/wsgi.py", line 273, in __call__
    response = self.get_response(request)
  File "/var/snapshots/django/django/core/handlers/base.py", line 169, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/var/snapshots/django/django/core/handlers/base.py", line 111, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/var/snapshots/lino/lino/ui/extjs/ext_ui.py", line 866, in grid_config_view
    msg = rpt.save_grid_config(name,gc)
  File "/var/snapshots/lino/lino/reports.py", line 1195, in save_grid_config
    return gc.save_config()
  File "/var/snapshots/lino/lino/utils/config.py", line 160, in save_config
    f = codecs.open(fn,'w',encoding='utf-8')
  File "/usr/lib/python2.6/codecs.py", line 881, in open
    file = __builtin__.open(filename, mode, buffering)
IOError: [Errno 13] Permission denied: '/usr/local/django/myproject/config/notes.NotesByPerson.gc'

… aber der Client bekam dadurch keine Antwort auf seinen AJAX-Call. Oder genauer gesagt bekam er Djangos freundliche 505-Fehlermeldung statt einer Antwort. Jetzt meldet der Server einen Fehler während Config.save_config korrekt, und der Client musste noch gesagt bekommen, dass er die Fehlermeldung dann nicht einfach ignoriert, sondern eine message box anzeigt.

Also drei Bugs auf einen Streich!

Noch appy.pod und restify

22 Uhr. Auf meine Frage im Forum von Docutils. hat noch niemand geantwortet, aber ich mach’s jetzt einfach auf die brutale Art und Weise:

html = html_body(s,output_encoding='utf-8')
assert html.startswith('<div class="document">\n')
assert html.endswith('</div>\n')
html = html[23:-7]

Das ist zwar nicht gerade nett, aber es funktioniert.

Jetzt habe ich noch ein Problem, das ich eigentlich nur für meinen test brauche: ich würde dort gerne zunächst den rohen RST-Quelltext ins Dokument rendern, gefolgt vom Resultat. Das Resultat ist korrekt, aber den Quelltext kriege ich nicht reingeholt. Eigentlich müsste das doch mit folgendem Befehl gehen:

do text
from text(RST)

Eine Stunde gesucht, bis es Tilt machte: in meinem RST-Text war noch ein “<” drin, und das verträgt die text() nicht. Meldung ans Forum von appy.pod: https://bugs.launchpad.net/appy/+bug/778728 Aber weil ich das lediglich für meinen test case benutze, kann ich die Sache in Eupen releasen.

Test-Dokument:

Titel

Titel entstehen, indem man eine Textzeile mit einer Reihe von ``=``, ``-`` oder ``~`` unterstreicht.
Aber das funktioniert leider noch nicht.

Ein neuer Absatz entsteht, indem man **2x** ENTER drückt. Also eine Leerzeile muss da sein.

Aufzählungen

- Externe `Links <http://lino.saffre-rumma.net>`_ sind anklickbar
- Zeichenformatierungen: **fett**, *kursiv*, ``Tippmaschine``