--- trunk/ChangeLog 2007/08/22 18:21:01 78 +++ trunk/ChangeLog 2007/09/09 20:47:38 152 @@ -1,3 +1,601 @@ +2007-09-05 Sascha L. Teichmann + + * tools/formed/formed/model/memory.py, + tools/formed/formed/model/persistent.py: Add a getValue() method + to dataset abstraction. This is a bit of a workaround to bring + global access across pages for rule checking to work. + + * tools/formed/formed/model/data.py: Fixed: When setting a new expression + the compiled version was not stored in the RuleLeaf. + + * tools/formed/formed/model/expr.py: shlex lexer does not like unicode. + convert the expression string to ascii for compilation. + + * tools/formed/formed/plugins/web/semantic.py: Remove the 'box' because + valid data is stored to the dataset immediately now. Fixed a bug + with integer handler. + + * tools/formed/formed/plugins/web/controllers.py: Removed the semantic 'box' + stuff. When a submit is done extract the rules from the tree document + that are effected by the modified variables and check them. + + * tools/formed/formed/plugins/web/renderer.py: Fixed exception handling + when dealing with templates. + +2007-09-07 Torsten Irlaender + * tools/formed/formed/plugins/web/controllers.py, + tools/formed/formed/plugins/web/renderer.py: Moved more render + functions into renderer.py. New render classes are: + DataSetDigestRenderer, DataSetNavigationRenderer, + DataSetFormularRenderer, ConfirmationDialogRenderer + + Note: The new methods are only called from selected handlers. Other + handlers call the renderes in the old way. + +2007-09-07 Torsten Irlaender + * tools/formed/formed/plugins/web/form_renderer.py: Renamed + renderer.py to form_renderer.py. This file will contain formular + specfic render methods in the future. + * tools/formed/formed/plugins/web/renderer.py: Added new renderer.py + which will contain general render methods. + * tools/formed/formed/plugins/web/controllers.py: Began to move all + rendering into renderer.py or form_renderer.py. This file will only + contain teh handlers in the future. + +2007-09-07 Torsten Irlaender + * tools/formed/formed/plugins/web/renderer.py, + tools/formed/formed/plugins/web/controller.py: + Renderes now get an instance of the formdata object to provide + access the data needed to render various infoboxes etc. Handler + instanciate the formdata. + +2007-09-06 Torsten Irlaender + * tools/formed/formed/plugins/web/renderer.py: Mainly tried to get the + getFormData interface to work. Added two small semantic fixes, but + did not manage to get it up. Need to exime this a little bit more + * tools/formed/formed/plugins/web/controllers.py: Put
tags + around the menus on the right side to be able to assign different + styles. Added dataset actions while editing a dataset. + +2007-09-05 Torsten Irlaender + * tools/formed/formed/model/memory.py: Fixed deleting datasets by + removing unwanted del method + * tools/formed/formed/plugins/web/controllers.py: Implemented + confiration dialogs for create, delete, and select aof datasets. Started to use + templates as well for larger information units like the dataset summary. + +2007-09-05 Sascha L. Teichmann + + * tools/formed/formed/model/nodecomponents.py: Added a + method to document to find index of page. + + * tools/formed/formed/plugins/web/semantic.py: Added getValue() + to fetch data from semantic box. + + * tools/formed/formed/plugins/web/controllers.py: Added new + FormData implementation to support DB and semantic box. + +2007-09-05 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/renderer.py: escaped + error message. + + * tools/formed/formed/plugins/web/controllers.py: Don't fetch + dataset from backend each time a page is up to edit. + +2007-09-05 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/renderer.py: SimplePageRenderer + returns "Page not found" if given page is None. + + * tools/formed/formed/plugins/web/controllers.py: Added checks + to avoid crashing when ask for a non-existent page. + +2007-09-05 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/controllers.py: Some clean-ups. + +2007-09-05 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py: Remove request handlers + and renderers. + + * tools/formed/formed/plugins/web/controllers.py: New. Contains handlers + and renderers now. TODO: Move renderers to renderer.py + +2007-09-05 Torsten Irlaender + + * tools/formed/formed/plugins/web/www/main.tmpl: Adopted web template + and bound in the the new added functions to create, edit, delete and + show formdata. + +2007-09-05 Sascha L. Teichmann + + * tools/formed/formed/model/memory.py: Removed bisect and use a + simple linear scan for dataset lookup now. + + * tools/formed/formed/plugins/web/plugin.py: Fixed various issues + of different sizes. + +2007-09-05 Torsten Irlaender + + * tools/formed/formed/plugins/web/memory.py: Fixed getDataSetById + fuction + + * tools/formed/formed/plugins/web/persistent.py: Added store() method + to the DataSet interface + + * tools/formed/formed/plugins/web/renderer.py: Added handlers and + renderes for create, update, delete and show actions on formular data. + +2007-09-04 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/server.py: The mapping + to methods is now driven by regualar expressions and + a dictionary. Response objects are now able to send + error codes. + + * tools/formed/formed/plugins/web/renderer.py: Fixed an issue + when help in Formdata is None. Moved text for help into + a top level '''...''' variable. + + * tools/formed/test-data/simple.xml: Added test for help. + + * tools/formed/formed/plugins/web/help.py: extra None check. + + * tools/formed/formed/plugins/web/plugin.py: Uses the new + table driven mapping of reguest handling. TODO: split the + WebPlugIn.pageHandler() method further to smaller handlers. + Smaller clean ups and better exception handling. + + * tools/formed/formed/plugins/web/cache.py: Report OSErrors + and do not catch them. + +2007-09-04 Torsten Irlaender + + * tools/formed/formed/plugins/web/renderer.py, + * tools/formed/formed/plugins/web/plugin.py: Added Interface to + the HelpProvider and inserted help icons to the html output. + Added decorator for Formelemnts, so textfields, choices etc. are now + within a
tag. + Modified the error messages. + +2007-09-04 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/cache.py: New. Implements + the server-side caching more clean. Fixes a bug with + serving static content. + + * tools/formed/formed/plugins/web/plugin.py: Use the new cache. + +2007-09-04 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py: Set MIME type + to "application/xhtml+xml" when serving help texts. + +2007-09-03 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/diff.py: New. Exports + pairwise differences between all modes. + + * tools/formed/formed/config.py: Use new export filter. + +2007-09-03 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/help.py: New. Parses an + XHTML document for id'ed divs and builds a help lookup. + + * tools/formed/formed/plugins/web/www/help.tmpl: Template for + the help content frame. + + * tools/formed/formed/plugins/web/www/help.xhtml: Some simple + help text index. + + * tools/formed/formed/plugins/web/plugin.py: Serves the help + texts now. + +2007-09-03 Torsten Irlaender + + * tools/formed/formed/plugins/web/plugin.py: Only visible group + elements will be rendered in the formular navigation. + Formular pages in the navigation now have their own css-style + attributes. + +2007-09-03 Torsten Irlaender + + * tools/formed/formed/plugins/web/www/main.tmpl: Added div area for page + errors in template + * tools/formed/formed/plugins/web/plugin.py: Fixed undefined + pageerrors variable + +2007-09-03 Frank Koormann + + * tools/formed/formed/plugins/export/html.py + (RecursiveExporter): Added annotation to export + (fillRow()): Renamed old fillNine to this more generic name. + + +2007-09-03 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/renderer.py: Using the decorator + from model.misc now. + +2007-09-03 Sascha L. Teichmann + + * tools/formed/formed/model/nodecomponents.py: Added an + 'annotation' attribute to node components. This is to + enable FormEd document authors to add comments to groups + and fields. + +2007-09-03 Frank Koormann + + * tools/formed/formed/model/nodecomponents.py + (NodeComponent.getParent): New method to get node components parent. + + * tools/formed/formed/plugins/export/html.py: Export Choice option + as simple list instead of collection of bools. + +2007-09-02 Sascha L. Teichmann + + * tools/formed/formed/model/persistent.py: Interfaces to abstract + from persistent storage details. + + * tools/formed/formed/model/memory.py: In core implementation + of the persistent interfaces. + + * tools/formed/formed/main.py: Holds a memory data store now. + +2007-09-02 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/sql.py, + tools/formed/formed/plugins/export/html.py: Fixed constructor chains + for FileDialogFilter sub classes. + +2007-09-02 Sascha L. Teichmann + + * tools/formed/formed/model/misc.py: Checking the mode in recursive + tree traversals is a common task. To ease this a decorator function + checkMode in union with sub classing ModeChecker can be used. + To make it work simply subclass from ModeChecker and add the decorator + to the methods that need mode tracking. Before you start the recursion + call self.prepareDescent(). + + * tools/formed/formed/plugins/export/html.py: Uses the new decorator scheme + now which replace the old. TODO: Make the web renderer use the new scheme + too. + +2007-09-02 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/sql.py: Removed needless import. + + * tools/formed/formed/plugins/export/html.py: HTML table exporter + uses new FileDialogFilter base class too. + +2007-09-02 Sascha L. Teichmann + + * tools/formed/formed/plugins/ui/*: New. All file exporters + need a file dialog. Till now each of them pulled up its + own. This was silly code replication. Now there is an abstract + base class 'FileDialogFilter' which implements the common + behavior. The file exporters should subclass it. + + * tools/formed/formed/plugins/export/sql.py: Subclass the SQL + exporters from the new base class. TODO: Subclass the HTML + exporter too. + +2007-08-31 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/html.py: Make mode check + work (again). + +2007-08-31 Torsten Irlaender + + * tools/formed/formed/plugins/export/html.py: Rendering of the HTML + exprt works now in a recursive way. This change was needed because + the structure of the formedtree has changed to be able to render + full hirachically document stuctures. (nested lists) + TODO: Fix modechecking + +2007-08-31 Torsten Irlaender + + * tools/formed/formed/plugins/web/plugin.py: Navigation rendering works + now in recursive way. This change was needed because the structure + of the formedtree has changed to be able to render full hirachically + document stuctures. (nested lists) + +2007-08-31 Sascha L. Teichmann + + * tools/formed/formed/model/nodecomponents.py: use discard() + instead of remove on sets. + + * tools/formed/formed/plugins/export/sql.py: Added an + exporter for table views. + + * tools/formed/formed/config.py: Added the new exporter + to the list of export filters. + +2007-08-30 Sascha L. Teichmann + + * tools/formed/formed/model/data.py: Fixed a bug in + Page.allWidgets() + + * tools/formed/formed/plugins/export/sql.py: Added an exporter + for stored procudeures. + + * tools/formed/formed/config.py: Add the new SP exporter. + +2007-08-29 Torsten Irlaender + + * tools/formed/formed/plugins/web/plugin.py, + tools/formed/formed/plugins/web/error_renderer.py: Added interface + to get the errors for a whole page in te formular. These errors can + now be displayed on the top of the formular. + +2007-08-29 Torsten Irlaender + + * tools/formed/formed/plugins/web/renderer.py: Finished implementation + of the getFromData interface and prepared the rederer for generating + nice error messages + +2007-08-28 Frank Koormann + + * tools/formed/formed/plugins/export/sql.py + (SchemaCreator.createSchema, SchemaCreator._createGroup): + Fixed typo in created DDS (PRIMRAY -> PRIMARY) + +2007-08-28 Torsten Irlaender + + * tools/formed/formed/plugins/export/sql.py: Added small helper + function to generated valid quotes within the sql statements + +2007-08-29 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/sql.py: Added foreign keys + for repeat tables. + +2007-08-29 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/sql.py: When generating + an extra table check in a table of same content exists. In + this case reference the existing table. + +2007-08-29 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/sql.py: Rewritten to produce + _real_ SQL and respect repeat groups. + + * tools/formed/formed/model/data.py: Fixed bug with Group.isRepeat() + + * tools/formed/formed/plugins/web/renderer.py: Use "".join([]) + instead of expensive += string concat in some places. + +2007-08-29 Sascha L. Teichmann + + * tools/formed/formed/model/data.py: Renamed GroupNode.getRepeat() + to .isRepeat and return a bool. Fixed a bug in Page.allWidgets(). + +2007-08-28 Torsten Irlaender + + * tools/formed/plugins/web/renderer.py: Added Formdata interface. + * tools/formed/model/data.py: Implements Formadata interface to + textfields. Fieldset generated depends now on the "invisible" + attribute of the groupnode. Field-label generation slightly changed. + Added error indication to textfields + +2007-08-28 Sascha L. Teichmann + + * tools/formed/formed/model/data.py, + tools/formed/formed/io/document.py: Removed support + of logical groups. + +2007-08-28 Sascha L. Teichmann + + * tools/formed/formed/io/document.py: Avoid saving empty + attributes. + + * tools/formed/test-data/simple.xml: Applied. + +2007-08-28 Sascha L. Teichmann + + * tools/formed/formed/model/data.py: Added 'repeat' and + 'invisible' attributes to group. TODO: remove logical group. + +2007-08-27 Torsten Irlaender + + * tools/formed/plugins/web/plugin.py, + tools/formed/plugins/web/renderer.py: Started to include stylesheet + depending tags in the html generation. + +2007-08-27 Sascha L. Teichmann + + * tools/formed/formed/model/data.py, + tools/formed/formed/io/document.py: Added a logical group. + It has an attribute 'repeat' to indicate that it might + be worthy an external table in DB schema. + +2007-08-27 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py: Support + serving of static content. + + * tools/formed/formed/plugins/web/server.py: Removed + old send code. + +2007-08-27 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py: Use new + Response object. Fix typo. + + * tools/formed/formed/plugins/web/server.py: support + response object to serve different MIME types. + +2007-08-27 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py: Add web.path + to FORMED environment variable to specify the + root of the static content. + +2007-08-26 Sascha L. Teichmann + + * tools/formed/formed/model/data.py, + tools/formed/formed/model/nodecomponents.py: Fixed mode issues. + + * tools/formed/formed/plugins/web/www, + tools/formed/formed/plugins/web/www/main.tmpl: New. Contains + a template for the HTML output. + + * tools/formed/formed/plugins/web/plugin.py: Fixes several smaller + mode issues. Introduces CSS support. Simplified the action + handling. + + * tools/formed/formed/plugins/web/renderer.py: Removed the + nagivation code. + + * tools/formed/formed/plugins/web/server.py: Added missing import. + +2007-08-26 Sascha L. Teichmann + + * tools/formed/formed/model/data.py: Added missing broadcast + parameter to setAttribute() of RuleLeaf. + + * tools/formed/formed/plugins/web/plugin.py: Factorize + HTTP server code out to separate module. + + * tools/formed/formed/plugins/web/renderer.py: Removed + needless -1 from pop() + + * tools/formed/formed/plugins/web/server.py: New. Contains + the HTTP server code now. + +2007-08-26 Sascha L. Teichmann + + * tools/formed/test-data/simple.xml: Modified to contain a rule. + + * tools/formed/formed/model/expr.py: Added. A simple RPN + expression evaluator. To avoid the problem of eval()ing + arbitrary python expressions I've decided to use a very + basic and limited stack machine to support rule checking. + + * tools/formed/formed/model/data.py: Added a RuleLeaf. + + * tools/formed/formed/io/document.py: Added factories for rules. + + * tools/formed/formed/model/nodecomponents.py: Add a method + to find all items of a given type in document for a given + mode. Usefull to find all rules in the tree. + + * tools/formed/formed/ui/controls.py: Added a listener mechanism + to attribute table to report exceptions when setting a value + from GUI. Useful to report compilation errors when setting + expr of rule leafs. + + * tools/formed/formed/main.py: Added a method to track exceptions + from the attribute table and pop up dialogs if they occur. + Added a counter of rule modifications in tree. Useful if you + want build cached data structures like rule sets and you want + to know if they are still valid. + +2007-08-24 Torsten Irlaender + + * tools/formed/formed/plugins/export/sql.py: Fixed CHECK-constraint + for checkbox values. (Syntax error). + + * tools/formed/formed/plugins/names/filter.py: Fixes in formularname + generation + +2007-08-24 Torsten Irlaender + + * tools/formed/formed/plugins/names/filter.py: Separated Class for + making the formularnames more database friendly. Added some more + checks. + * tools/formed/formed/plugins/export/sql.py: Make use of the fresh + separated class, and some fixes in sql generation. + +2007-08-24 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/html.py: Print lengths + of external choice list. + +2007-08-24 Sascha L. Teichmann + + * tools/formed/formed/main.py: Little workaround for + mode selection if someone adds an removes a mode. + +2007-08-24 Sascha L. Teichmann + + * tools/formed/test-data/simple.xml: Better test case for + mode depended leaf items. + + * tools/formed/formed/model/nodecomponents.py: Added a method + to calculate the effective mode of an item. + + * tools/formed/formed/plugins/export/html.py: Use effective + mode. TODO: the 'all' modus return false results sometimes. + Cause: The modes are only cumulated over time. Removal is + not done. + +2007-08-24 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/html.py: Dump the items + of radio groups and choices too. + +2007-08-24 Torsten Irlaender + + * tools/formed/formed/plugins/names/filter.py: Modified the renaming + by formular names to make the naming more database friendly. + Now only alphanumeric and underscore chars is allowed. + +2007-08-24 Sascha L. Teichmann + + * tools/formed/formed/plugins/export/html.py: Tweaked + HTML table exporter a bit to be on par with the XSLT + script. TODO: Dump items in radio and choice groups. + +2007-08-23 Sascha L. Teichmann + + * tools/formed/formed/plugins/names/filter.py: Removed + HTML and SQL exporters. + + * tools/formed/formed/plugins/export, + tools/formed/formed/plugins/export/__init__.py, + tools/formed/formed/plugins/export/sql.py, + tools/formed/formed/plugins/export/html.py: New: Contain + the HTML and the SQL exporters now. + + * tools/formed/formed/config.py: Use exporters from different + package now. + +2007-08-23 Torsten Irlaender + + * tools/formed/formed/plugins/names/filter.py: Added an + pseudo SQL export filters. TODO: Move HTML and SQL filter + in a new file (formed/plugins/export/htmlexport.py and + sqlexport.py?) + + * tools/formed/formed/config.py: Install the new SQL filter. + +2007-08-23 Sascha L. Teichmann + + * tools/formed/formed/model/nodecomponents.py: Added a depth() + method to determine the depth of particular tree item. + + * tools/formed/formed/plugins/names/filter.py: Added an + HTML export filters. TODO: needs more work. + + * tools/formed/formed/config.py: Install the new HTML filter. + +2007-08-23 Torsten Irlaender + + * contrib/extract-xfa-fields_and_options.xsl: Added small xsl script + to extract fields and options in the XFA Data in teh PDF. This + script might me handy to indicate changes between the different + formular versions. + +2007-08-23 Sascha L. Teichmann + + * tools/formed/formed/main.py: Add an 'all' mode to + select all modes. ;-) + 2007-08-22 Sascha L. Teichmann * tools/formed/test-data/simple.xml,