20110530¶
Miscellaneous¶
Some files in /bash had CRLF EOL markers. Fixed.
lino.modlib.countries.models.Countries now is sorted by name and isocode` instead of isocode.
The texts “Rückblick” (past reminders) and “Ausblick” (upcoming reminders) in
lino.mixins.reminders.reminders_summary()
are now translatable.Grids now have stripeRows:true as default. Looks nice.
Using a stable Django version¶
Tiens, in Django revision 16283 läuft die Testsuite nicht:
luc@mops:/var/snapshots/django_src/tests$ python runtests.py --settings=dsbe_demo.settings
Traceback (most recent call last):
File "runtests.py", line 326, in <module>
failures = django_tests(int(options.verbosity), options.interactive, options.failfast, args)
File "runtests.py", line 165, in django_tests
state = setup(verbosity, test_labels)
File "runtests.py", line 150, in setup
mod = load_app(module_label)
File "/var/snapshots/django_src/django/db/models/loading.py", line 87, in load_app
app_module = import_module(app_name)
File "/var/snapshots/django_src/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/lib/python2.6/dist-packages/uno.py", line 258, in _uno_import
return _g_delegatee( name, *optargs, **kwargs )
ImportError: No module named csrf
Erstmal ein svn update
: updated to revision 16292. Dann funktionieren sie.
Da fällt mir ein, dass ich testen wollte,
ob Lino mit einer stabilen Django-Version funktioniert.
Lenny kommt mit Version 1.2.3.
Mal probieren. In der /usr/local/lib/python2.6/dist-packages/local.pth hole ich
die Zeile /var/snapshots/django_src
raus und dann:
$ sudo aptitude install python-django
The following NEW packages will be installed:
python-django
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4179 kB of archives. After unpacking 20.3 MB will be used.
...
Fetched 4179 kB in 35s (118 kB/s)
Selecting previously deselected package python-django.
(Reading database ... 125307 files and directories currently installed.)
Unpacking python-django (from .../python-django_1.2.3-3+squeeze1_all.deb) ...
Processing triggers for man-db ...
Setting up python-django (1.2.3-3+squeeze1) ...
Processing triggers for python-support ...
Aber die Version 1.2.3 von Django scheint zu alt zu sein.
Damit funktioniert schon ein python manage.py validate
nicht:
...
File "/usr/lib/pymodules/python2.6/django/db/models/loading.py", line 64, in _populate
self.load_app(app_name)
File "/usr/lib/pymodules/python2.6/django/db/models/loading.py", line 78, in load_app
models = import_module('.models', app_name)
File "/usr/lib/pymodules/python2.6/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/lib/python2.6/dist-packages/uno.py", line 258, in _uno_import
return _g_delegatee( name, *optargs, **kwargs )
File "/var/snapshots/lino/lino/apps/dsbe/models.py", line 56, in <module>
from lino.utils import mti
File "/usr/lib/python2.6/dist-packages/uno.py", line 296, in _uno_import
raise ImportError( "type "+ name + "." +x + " is unknown" )
ImportError: type lino.utils.mti is unknown
also wieder raus damit. Alternativ käme dann noch die zuletzt releaste Version 1.3 in Frage. Probieren wir es damit:
cd /var/snapshots
wget http://media.djangoproject.com/releases/1.3/Django-1.3.tar.gz
tar xzvf Django-1.3.tar.gz
mv django django-svn
mv Django-1.3 django
Cool, das funktioniert! Abgesehen von ein paar Details):
die Tests für django.contrib.contenttypes hängen noch immer von django.contrib.auth ab
und auch ein Test in der Lino-Suite funktioniert offenbar nur, wenn man de als Hauptsprache hat:
FAIL: test_them_all (lino.apps.dsbe.tests.dsbe_demo_tests.DemoTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/var/snapshots/lino/lino/utils/test.py", line 87, in test_them_all v(self) File "/var/snapshots/lino/lino/apps/dsbe/tests/dsbe_demo_tests.py", line 71, in test02 self.assertEqual(row[0],"Gehorsam") AssertionError: u'Ob\xe9issant' != 'Gehorsam'
Weil das nicht dramatisch ist, und weil es gut ist, wenn Lino-Bentuzer in Zukunft mit einer stabilen Django-Version arbeiten, ändere ich die https://www.lino-framework.org/admin/install.html ab.
N.B.: das sudo python setup.py install
von Djangos Installationsanleitung
mache (und empfehle) ich lieber nicht, weil ich nicht weiß, was das bringt.
Und weil ich nicht weiß, ob und wie man ein dermaßen installiertes Paket dann wieder
deaktiviert.
Weiter mit TinyMCE¶
Zur Zeit arbeite ich an folgender Einbindung: im Detail-Fenster wird nicht der Editor angezeigt, sondern nur eine HtmlBox, die den formatierten Text anzeigt. Die HtmlBox hat einen Button “Bearbeiten” und erst wenn man den klickt, öffnet sich ein (modales) Fenster mit dem Editor. Sogar der Save-Button funktioniert. Alles ist aber noch wackelig programmiert, und bevor man es Otto Normalverbraucher zumuten kann, sind noch einige Probleme zu beheben:
Der Benutzer sieht keine Bestätigung, wenn er gespeichert hat.
Die Scrollbars der HtmlBox sind nicht ganz richtig dimensioniert: auch bei einem leeren Text werden sie angezeigt. Die horizontale Scrollbar ist da, obschon sie gar nicht nötig wäre.
Nach dem Schließen des Editor-Fensters muss die HtmlBox aktualisiert werden.
Wenn man das Fenster ohne zu Speichern schließt, sollte er vorher fragen, ob man nicht doch lieber speichern will.
Speichern kann man mit Ctrl-S, das ist schön. Aber man sollte das Fenster auch schließen können, ohne die Maus zu belästigen…
Wenn die Notiz ausgedruckt wurde, ist die HtmlBox disabled (weil body in disabled_fields mit dabei ist, was bei inline editing auch nötig ist). Aber das disabled einer HtmlBox sollte die Anzeige nicht grau werden lassen, auch die Scrollbars nicht deaktivieren, sondern lediglich den Button “Bearbeiten”
Muss der Benutzer dynamisch umschalten können zwischen den beiden Modi (inline / windowed)?
Ich checke das jetzt ein, denn für heute ist Feierabend.