The rewrite of Fle3 on top of the Kala framework is progressing to the user interface part. Probably the largest difference to the earlier version is the move from DTML to ZPT in the page templates. Another new feature are human-readable URLs. The old Fle3 encodes its URLs in a very confusing way. The rewrite uses Zope’s folder hierarchy and the human-readable URLs it maps to as much as possible. This mostly works, although Zope expects applications to be structured in a tree hierarchy, and some tricks are needed before the structure of Fle fits into this.
For example in the old Fle, a jamming session in a course has the url http://localhost:8080/FLE/courses/1/jamming/js11? state_url=9,1course_id16,1inline19,12cc_order123, 9,10,2,157,10um_sortfirst_name14,1full_thread1_21, while in the new Fle the URL is http://localhost:8080/NewFle/courses/my_course/ jamming/jamming_instance/jam1, which can still be improved once we manage to convince Zope that the superfluous jamming_instance element can be dropped.
With the new Fle, it is possible to choose which modules you want to install. An installation with only knowledge building, only jamming or neither is possible. This is possible thanks to the Kala framework, which allows choosing the set of modules to install.
In the new modules, we’ve also started using Zope’s Python Script files to connect HTML requests to the Fle Python product, instead of parsing requests directly in the product API. This new convention makes the product API easier to understand and can help making lightweight customizations to installed Fle instances.