--- trunk/ChangeLog 2007/08/14 20:32:51 42 +++ trunk/ChangeLog 2007/09/04 08:58:45 134 @@ -1,3 +1,721 @@ +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, + tools/formed/formed/model/data.py, + tools/formed/formed/plugins/web/plugin.py, + tools/formed/formed/plugins/web/renderer.py, + tools/formed/formed/io/document.py, + tools/formed/formed/main.py: Removed support for switch nodes. + BEWARE: This breaks compatibility with older documents! + +2007-08-22 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py: Uses the + getSelectedMode() from main now. + + * tools/formed/formed/main.py: selected mode is now hold + in main. + + * tools/formed/formed/config.py: removed selected mode from + env configuration. + +2007-08-22 Sascha L. Teichmann + + * tools/formed/formed/ui/controls.py: Attributes in GUI attribute + table are now alphabetically sorted. + +2007-08-22 Sascha L. Teichmann + + * tools/formed/formed/model/nodecomponents.py: Added code to + establish the new 'modes' recursively. + + * tools/formed/formed/plugins/plugin.py: Pass main instead + of cfg on plug-in start-up. + + * tools/formed/formed/plugins/web/plugin.py: Use the new + 'modes' attribute for rendering. + + * tools/formed/formed/plugins/web/renderer.py: Use decorators + to check the new modes. + + * tools/formed/formed/main.py: Adjusted to new infrastructure. + +2007-08-22 Sascha L. Teichmann + + * tools/formed/formed/model/nodecomponents.py: Added an + attribute 'modes' to NodeComponents. + +2007-08-22 Sascha L. Teichmann + + * tools/formed/formed/model/data.py: Small cosmetic cleanups + +2007-08-21 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/renderer.py: Another fix + for the hidden field. Argh! + +2007-08-21 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/renderer.py: Fixed double + generation of hidden page field. + +2007-08-21 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/semantic.py: Added semantic + checks for radio groups. + +2007-08-21 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/semantic.py: Added semantic + checks for choices. + +2007-08-21 Frank Koormann + + * contrib/convert-formedtree2html.xsl: Display switch nodes as + alternatives. + +2007-08-21 Frank Koormann + + * contrib/convert-formedtree2html.xsl: + Replace technical types with readable descriptions + +2007-08-21 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py: Fix a few smaller + issues. 'action' looks for all widgets on a page now, goes + through all passed parameters, tries to match them with the + widgets of the page and put them into the semantic box. + Afterwards a list of untouched page parameters are left + which will be deleted from the semantic box. + + * tools/formed/formed/plugins/web/semantic.py: Simplified. + The NodeComponent is passed as an argument now. + + * tools/formed/formed/plugins/web/renderer.py: Generate a + hidden field to store the name of the page. + +2007-08-21 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py: Fixed an encoding + issue with incoming UTF-8 data. + +2007-08-21 Sascha L. Teichmann + + * tools/formed/test-data/simple.xml: Improve test for widgets + in switches. + + * tools/formed/formed/model/data.py: Added a method to find all + widgets in a given page. Fixed a bug when walking in switch + with a given mode. + + * tools/formed/formed/plugins/web/plugin.py: Simple test for + listing all widgets in page. + +2007-08-21 Torsten Irlaender + + * tools/formed/formed/plugins/names/filter.py: Fixed file-encoding to + latin-1 + +2007-08-21 Sascha L. Teichmann + + * tools/formed/formed/model/data.py: Added mode parameter to + walk. + + * tools/formed/formed/model/nodecomponents.py: SwitchNode overwrites + walk() with usage of the new mode parameter. Added a method to + give children in a given mode. + + * tools/formed/formed/plugins/web/renderer.py: Simplified to use + new Switch.childrenInMode() method. + +2007-08-21 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/semantic.py: Add checks for + texts and text areas. + + * tools/formed/formed/plugins/web/renderer.py: Set accept-charset + to UTF-8 in generated form. + +2007-08-20 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/semantic.py: Added semantic + tests for dates. + +2007-08-20 Sascha L. Teichmann + + * tools/formed/test-data/simple.xml: Tweak a bit for integer + range test. + + * tools/formed/formed/model/nodecomponents.py: Added a method + to find a tree item for a given name. + + * tools/formed/formed/plugins/web/semantic.py: New: Box for + semantic checking. Has check for integers. + + * tools/formed/formed/plugins/web/plugin.py: Use semantic + check. + +2007-08-20 Torsten Irlaender + + * tools/formed/formed/plugins/web/renderer.py: Fixed Syntax in + selection-field generation (Removed quote) + +2007-08-18 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py, + tools/formed/formed/plugins/web/renderer.py: Added a + simple cookie based session management to the HTML + renderer. This submit parameters are stored in the + session now. This will ease testing the constraint + tests which need to be written soon. + + BEWARE: The session management is _not_ made for production! + Denial of service attacks are too easy, and the + cryptographical strength of the session id is doubtful. + +2007-08-18 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/renderer.py: Escaping text + coming from the document tree now when inserting it into the + HTML output. + +2007-08-18 Sascha L. Teichmann + + * tools/formed/formed/plugins/plugin.py: Added a new kind + of plug-in: Filter. They have a short and a long description + and can be hooked automatically into the new 'Filters' + sub menu under 'Extra'. They got called when the user + selects their respective menu item. + + * tools/formed/formed/config.py: Contains the list of + installed filters. + + * tools/formed/formed/main.py: Builds the Extra->Filters + sub menu during gui initialization. The hard wired code + for make unique and formular name/description -> name + is removed because they are implemented as filters now. + + * tools/formed/formed/model/nodecomponents.py, + tools/formed/formed/model/data.py: Removed the make + unique and formular name/description -> name code. + + * tools/formed/formed/plugins/names, + tools/formed/formed/plugins/names/__init__.py, + tools/formed/formed/plugins/names/filter.py: Added. Contains + the make unique and formular name/description -> name code + in form of filters. + + * tools/formed/test-data/simple.xml: Modified to be a better + test for the formular name/description -> name filter. + +2007-08-18 Sascha L. Teichmann + + * tools/formed/formed.py, tools/formed/formed/main.py: First + command line argument is interpreted as filename of document + to be loaded at program startup. + +2007-08-17 Frank Koormann + + * contrib/convert-formedtree2html.xsl: + Heading level depending on depth of group node. + In case of radio/choice/check only list of options. + +2007-08-17 Torsten Irlaender + + * contrib/convert-formedtree2html.xsl: Output is now generated with + HTML doc-string and charset information in the meta-header. + +2007-08-17 Torsten Irlaender + + * contrib/convert-formedtree2html.xsl: Added small script for + exporting the formed tree to html + +2007-08-17 Torsten Irlaender + + * tools/formed/model/nodecomponents.py: Added function to rename + the set the name of the node to the formularname. The formularname + gets shorten to <=64 by removing vowels and is stored lowercase. + If the name is not unique and additional id value is appended. + + * tools/formed/formed/model/data.py: Overwritten renaming-function for + bool-leafs + + * tools/formed/formed/main.py: Added menuitem for renaming the names + of the element + +2007-08-16 Sascha L. Teichmann + + * tools/formed/formed/main.py: Swaped order of + 'Make names unique' and 'Selected mode...' in Extra + menu and put a separator between them. + +2007-08-15 Sascha L. Teichmann + + * tools/formed/formed/model/data.py: SwitchNodes can add + their modes to a given set now. + + * tools/formed/formed/plugins/plugin.py: Simplified + the plug-in interface. Only the reference to the + global configuration is passed at setup time. + + * tools/formed/formed/plugins/web/plugin.py: Adjusted + to new plug-in setup. The traveral mode is now taken + from the global configuration each time a rendering + is triggered. The FORMED parameter is now named + 'doc.mode' instead of 'web.mode'. The parameter + is not needed any more because it can be configured + at runtime. + + * tools/formed/formed/main.py: Adjusted to new plugin + setup. Added a new menu item Extra->Select Mode... + to select the traversal mode. It is stored in the + global config. + + * tools/formed/formed/config.py: Simplified. Only uses + one env dictionary to store global configuration parameters. + + * tools/formed/formed/ui/controls.py: Add a control to + select one item from a list of given strings. + +2007-08-15 Sascha L. Teichmann + + * tools/formed/formed/plugins/web/plugin.py, + tools/formed/formed/plugins/web/renderer.py: Added parameter + print out in web plugin. + +2007-08-15 Torsten Irlaender + + * contrib/convert-formedtree2csv.xsl: Added small script for + exporting the formed tree to csv + 2007-08-14 Sascha L. Teichmann * tools/formed/formed/model/data.py,