20111021¶
Launch Office application on webdav link using Applet¶
Worked on docs/tickets/45 using a Java Applet. Files /media/applets/davopen_test.html and /java
Insgesamt ist es erschreckend, wie kompliziert diese Lösung wird!
Hier ein Snippet, das java.utils.prefs benutzt um aus der Windows-Registry zu lesen: http://www.kodejava.org/examples/236.html Aber das nützt uns nichts, denn es kann nur unterhalb von HKCUSoftwareJavaSoftPrefs lesen und schreiben.
Dann hier noch ein Projekt, das aus der Windows-Registry lesen kann und keine dll auf den Clients benötigt: | http://sourceforge.net/projects/java-registry/ | http://code.google.com/p/java-registry/
Hier auch ein interessantes Beispiel dazu:
http://www.java-forum.org/codeschnipsel-u-projekte/38144-registry-auslesen.html#post268674
Es zeigt diesen zweifachen Zugriff, den ich auch schon in meiner startfile.js (aber nur mit FF) mache. Das Beispiel ist allerdings zum Setzen der Verknüpfung, ich muss es noch adaptieren zum Lesen.
Die beste Dokumentation zu diesem Package ist (ähnlich wie bei Lino) der Source-Code: http://code.google.com/p/java-registry/source/browse/trunk/src/at/jta/Regor.java
Das könnte klappen… vorher muss ich noch neu lernen, wie ich das installiere und ins Applet einpacke. Denn was der Autor da macht ist zu komplex um einfach rauszukopieren und selber zu warten.
Aber nein! Das wird schon allein scheitern, wenn ein Benutzer keine Administrator-Rechte hat. Vergiss es!
Eine mögliche Lösung scheint, dass wir eine hardkodierte Liste von möglichen Pfaden und Verknüpfungen haben, und dass unser Applet die Festplatte des Clients absucht, ob es ein taugliches Programm findet. Das Resultat der Suche schreibt es sich in die Preferences. Wenn man es dann manuell ändern will, kann ein Verwalter das unter Windows mit regedit. Der Verwalter könnte auch (wenn er will) auf allen Clients schon den bekannten Werte dort einschreiben.
ext. |
Binaries (Windows) |
Binaries (Unix) |
---|---|---|
doc |
windword.exe, soffice.exe |
soffice |
xls |
excel.exe, soffice.exe |
soffice |
rtf |
windword.exe, soffice.exe |
soffice |
odt |
soffice.exe |
soffice |
Um nicht alle Festplatten von oben bis unten zu durchsuchen, können wir eine hardcodierte Liste von Verzeichnissen erstellen:
Windows : “Program Files”
Unix : “/usr/bin”
UnicodeDecodeError at /api/dsbe/LanguageKnowledgesByPerson/279¶
Den Fehler, der diese Fehlermeldung hervorrief, habe ich nicht reproduzieren können, aber während der Suche habe ich zwei andere Bugs behoben:
lino.modlib.countries.fixtures.few_languages
filled only in Englisch. Now it respectsLANGUAGES
.Es war nicht möglich, in Feldern wie spoken oder written in
lino.apps.dsbe.models.LanguageKnowledge
einen einmal gesetzten Wert wieder auf leer zu setzen. Das galt für alle Felder mit einerlino.utils.choicelists.ChoiceList
.
New Option “strict” for resolve_model¶
lino.tools.resolve_model()
has a new option strict.
When strict=True, it raises an exception instead of returning
lino.tools.UnresolvedModel
.
Helped me to understand that INSTALLED_APPS
in
lino.apps.std.settings
needs to include
lino.modlib.users
to avoid problems during autodoc.