2011-04-29 Björn Ricks Add ReferenceNode to be able to create references * formed/formed/model/data.py: Add ReferenceNode class derived from NodeComponent * formed/formed/io/document.py: Add creator for parsing ReferenceNodes (_toXml): Handle ReferenceNodes like Leafs for saving to an xml structure 2011-03-15 Roland Geider * formed/formed/plugins/export/xls.py: Generate correct XLS if there are conditionals in Choices. 2011-03-14 Roland Geider * formed/formed/plugins/export/xsd.py, formed/formed/config.py: Generate correct XSD if there are conditionals in Choices. Also deactivate the webserver nobody is using. 2011-03-08 Roland Geider * formed/formed/plugins/export/xsd.py: Updated XSD 2011-02-23 Bernhard Herzog Port new RepeatNode attributes "orderby" and "reverse" from libformed * formed/formed/model/data.py (RepeatNode.__init__): Add attributes "orderby" and "reverse" so that they can be edited with formed. 2011-02-22 Roland Geider * formed/formed/plugins/export/xsd.py: Added support for element 2011-01-19 Torsten Irlaender * formed/formed/plugins/export/new_sql.py (SchemaCreator._createChoice): Fix traversing choicelists wich conditional nodes. 2011-01-11 Torsten Irlaender * formed/formed/model/exprtree.py: Added List-Node and Contains function. 2010-12-27 Torsten Irlaender * formed/formed/model/data.py (WidgetCollector.visitor): Removed clause to ignore Repeatgroups. 2010-12-13 Torsten Irlaender * formed/formed/model/data.py (GroupNode.isRepeat): Issue1565: Fixed isRepeat function. Check typ instead of repeat attribute. Removed setRepeat function (not used anywhere) 2010-11-24 Bernhard Herzog * formed/formed/plugins/export/rules_sh.py (generate_tagging): Remove unused variable "inserts" and corresponding commented out code. 2010-11-24 Bernhard Herzog * formed/formed/plugins/export/rules_sh.py: Remove some commented out code. 2010-11-24 Bernhard Herzog * formed/formed/plugins/export/rules_sh.py: expand star-import. 2010-11-24 Bernhard Herzog * formed/formed/plugins/export/rules_sh.py (sql_OperatorUnary): Put parentheses around the comparison for the KNOWN operator in the generated SQL to ensure correct evaluation order. 2010-11-24 Bernhard Herzog * formed/formed/plugins/export/rules_sh.py (binary_operator_map): New. Map binary formed expr operators to their SQL counterparts. (sql_OperatorBinary): Use binary_operator_map instead of a cascade of if-statements with lots of code duplication. Also, put parentheses around the resulting SQL expression to make sure the expression is correctly. This fixes a problem with WASKO tagging rules, where the a FormEd expression of the form like "2 1 1980 date 1 1 1980 date - 93 *" would be incorrectly converted to the SQL expression "93 * '1980-01-02'::date - '1980-01-01'::date" 2010-11-24 Bernhard Herzog * formed/formed/plugins/export/rules_sh.py: Fix formatting. 2010-11-15 Torsten Irlaender * formed/formed/model/data.py: Do not set attribute "repeat" for Repeat-Groups. 2010-11-10 Torsten Irlaender * formed/formed/plugins/modify/rules.py: Fixed date sequence rule checks for date in future. 2010-11-08 Roland Geider * formed/formed/plugins/export/xsd.py: validate formedtree.xml 2010-11-08 Roland Geider * formed/formed/model/data.py, formed/formed/plugins/export/xsd.py, formed/formed/config.py: issue1131: generate XSD for case exports 2010-10-21 Torsten Irlaender * formed/formed/plugins/export/rules_sh.py: Added new LE-Operator * formed/formed/plugins/modify/rules.py: Add error rule to force phase relevant datefields not to be "unknown". 2010-10-12 Roland Geider * formed/formed/plugins/export/rules_sh.py: Ignore rules if any fields in the rule are in a repeat group 2010-10-11 Roland Geider * formed/plugins/export/rules_sh.py: Added support to more opperators to be able to export the WASKO case 2010-10-06 Torsten Irlaender * formed/formed/plugins/export/rules_sh.py (generate_tagging): Fixed gerating SQL for Rules * formed/formed/plugins/export/rules_sh.py (sql_date): Fixed sql_date function. 2010-10-05 Torsten Irländer * formed/formed/model/data.py: Fixed error when setting tag attribute. * formed/formed/plugins/export/rules_sh.py: Added generating exporting tagging-xml * formed/formed/plugins/modify/rules.py: Do not generate automatic tagids for rules. 2010-10-04 Torsten Irländer * formed/formed/model/data.py (RuleLeaf.__init__): Added new attribute "tag" for rule-leafs * formed/formed/config.py: Added export rules as XML to Menu * formed/formed/plugins/modify/rules.py (GenerateRequiredRules.generateDateSequenceRules): Generate automatic tag ids for date-sequence rules 2010-09-30 Torsten Irländer * formed/formed/plugins/export/rules_sh.py (ExportRulesAsSH.doExport): Filter out duplicted rules. 2010-09-20 Frank Koormann * formed/formed/plugins/export/latex.py (RecursiveExporter): Add "required"-field information to output and include choice list contents. 2010-09-16 Bernhard Herzog Avoid database deadlocks that can happen when database clients try to work with the same case using two separate database connections. See mpuls/issue1145 for details. * formed/formed/plugins/export/rg_sql.py (SQL_TEMPLATE): Split the computation of the new json structure description into the new database function compute_case_structure (TRIGGER_TMPL): Change the trigger functions to immediately update the cached json structure description instead of just setting the modified flag. This avoids the lazy recomputation that makes what seems like a read-only access (calling get_case_structure) into a writing access (updates of the cache). The writes lock the row in the case_structure table which prevent other connections from accessing the same case. As part of this, the delete triggers are now AFTER triggers because the repeat groups instance must have been removed when the structure is recomputed. (SUBSELECT_TMPL): Since the delete trigger is now an after trigger, we need to change the way the master id is computed. We cannot join with the repeatgroup table in question because the row has already been deleted. However, we can use the master_id column of the OLD row to select the row of the parent table. (create_triggers): Avoid the inner joins with the current repeat group for the above mentioned reasons. In the very common case of repeat groups which are direct children of the master_tbl, we can compare the master_tbl.id directly with the row's master_id. 2010-09-14 Roland Geider * formed/formed/plugins/export/xsd.py: issue1131: update XSD for new formedtree structure 2010-09-01 Roland Geider * formed/formed/plugins/modify/rules.py: issue1050: mandatory fields appearing double. The problem was that the way the formEditor handled fields with manually created rules changed. Instead of ignoring fields (very early behaviour) or always generating them (early behaviour), now the formED will only ignore fields with rules which name starts with 'required-rule-manual'. This is helpful when the rules for mandatory fields are more complex (e.g. mother's name is only required if mother is known). 2010-08-10 Torsten Irländer * contrib/diff_formed.py: New helperscript to diff to given formedtrees 2010-08-09 Roland Geider * formed/model/exprtree.py: fixed typo 2010-08-04 Bernhard Herzog * formed/po/de_DE.po: Update translations 2010-08-04 Bernhard Herzog * formed/po/formed.pot: Regenerated. * formed/po/de_DE.po: Update. 2010-08-04 Bernhard Herzog * formed/po/Makefile: Use correct filename of the pot-file in the usage message 2010-08-04 Bernhard Herzog * formed/po/Makefile (LIST_POTFILES): Sort the file names to make the order of entries in the .pot-file more predictable. 2010-08-04 Bernhard Herzog * formed/formed/model/nodecomponents.py (RootNode.__init__) (RootNode.getVersion, RootNode.setVersion): Add attribute "version" and accessor methods. * formed/formed/main.py (MainFrame.OnSetDocumentVersion): New. Let the user set the document version. (MainFrame._createMenuBar): Add menu item for OnSetDocumentVersion 2010-08-02 Bernhard Herzog * formed/formed.py, formed/formed/io/document.py, formed/formed/io/factories.py, formed/formed/io/parser.py, formed/formed/model/data.py, formed/formed/model/event.py, formed/formed/model/expr.py, formed/formed/model/exprtree.py, formed/formed/model/memory.py, formed/formed/model/misc.py, formed/formed/model/nodecomponents.py, formed/formed/model/persistent.py: Fix coding declaration to be acceptable to both python and Emacs. 2010-07-29 Torsten Irländer * formed/formed/model/data.py: Added "invisible" attribute to BoolLeafs. This can be used to hide options in choicelists. so the user can not select the value in the user interface. But the db will have this option so is ist still present in the db an can be used * formed/formed/model/exprtree.py: Added "days" function. 2010-07-26 Roland Geider * formed/formed/model/nodecomponents.py, formed/formed/plugins/modify/rules.py: generated date rules take into consideration repeat groups 2010-07-21 Torsten Irländer Issue870 * formed/formed/plugins/modify/rules.py (descriptions): Do not collect all headers to the referenced fields. Only list labels of the error fields, which should be distinct enough. Issue851 * formed/formed/model/data.py formed/formed/plugins/export/new_sql.py formed/formed/plugins/web/view_renderer.py formed/formed/io/document.py formed/formed/config.py: Added Float-Field to Formed 2010-06-11 Bernhard Herzog * formed/formed/plugins/export/rg_sql.py (CREATE_DELETE_MASTER_TMPL): In create_master_tbl, call create_master_ds to create the master tbl entry. This way we can add SQL code that's specific to an MPuls instance to create_master_ds and still have create_master_tbl use that new code. This is useful for e.g. the JMD-Struktur part. 2010-06-02 Roland Geider * formed/formed/plugins/modify/rules.py: make the names of generated date-sequence-rules unique 2010-06-02 Roland Geider * formed/plugins/export/xls.py: updated regular expression 2010-05-17 Frank Koormann * formed/formed/plugins/export/latex.py: Improved section labeling. * formed/formed/plugins/export/xls.py: Export references (ie where are the lists used). 2010-04-30 Torsten Irländer * formed/formed/plugins/modify/rules.py (VariableType.substitute): Do not generate "%"-rules for required fields in repeat-groups. 2010-04-28 Roland Geider * formed/plugins/export/xls.py: Radiogroups are exported * formed/plugins/export/xsd.py: WASKA formedtree.xml validates XSD JMD formedtree.xml validates XSD 2010-04-08 Torsten Irländer * formed/formed/plugins/modify/rules.py (GenerateRequiredRules.generateDateSequenceRules): Add error mark to rules. Generete each rule twice to be able to render errors at both datefields. 2010-04-07 Torsten Irländer * formed/formed/plugins/export/rg_sql.py: Added "Revision"-Tag. 2010-04-06 Torsten Irländer * formed/formed/io/document.py (_toXML): Added comment with "$Revision"-tag. This tag will/can then be substituted by the VCS. * formed/formed/plugins/export/new_sql.py (ExportAsSQLFilter.doExport): Added comment with "$Revision"-tag. This tag will/can then be substituted by the VCS. * formed/formed/model/exprtree.py: Added years operator. 2010-03-30 Roland Geider * formed/formed/plugins/export/latex.py: Added filter 2010-03-25 Roland Geider * formed/formed/plugins/export/xsd.py: Generate valid XML 2010-02-11 Frank Koormann * formed/formed/plugins/export/xls.py: Allow groups in choices. 2009-12-02 Torsten Irländer * formed/formed/plugins/export/typemap.py: do not ignore conditional nodes on traversal. 2009-11-17 Sascha L. Teichmann * formed/formed/model/exprtree.py: Recognize '%' vars in compilation. Does not eval it! * formed/formed/plugins/modify/rules.py: Generate '%' vars for variables in repeat groups. 2009-11-13 Sascha L. Teichmann * formed/formed/plugins/export/typemap.py: Fixed to work with new repeat group nodes. 2009-10-28 Sascha L. Teichmann * formed/formed/plugins/export/xsd.py, formed/formed/plugins/export/sql.py, formed/formed/plugins/export/new_sql.py: Allow groups in choices. 2009-10-07 Frank Koormann * formed/formed/plugins/export/latex.py: Adjusted textprocessing to escape tex-active characters. 2009-10-07 Sascha L. Teichmann * formed/formed/plugins/export/html.py, formed/formed/plugins/export/latex.py, formed/formed/plugins/export/html2.py: Adjusted to cope with "semi-complete" implementation of logbook tree structure. 2009-06-18 Torsten Irländer * formed/formed/plugins/export/new_sql.py, formed/formed/plugins/export/rg_sql.py: Fixed some sql errors, and added permissions. 2009-06-18 Torsten Irländer * formed/formed/plugins/export/new_sql.py: Commented out generation of page_views, as they do not work with rgroups. 2009-06-17 Torsten Irländer * formed/formed/plugins/export/new_sql.py: Fixed anonymize function and rolenames. 2009-06-17 Sascha L. Teichmann * formed/formed/plugins/export/new_sql.py: s/-/_/ in relation names. 2009-05-26 Sascha L. Teichmann * formed/formed/plugins/names/filter.py: small optimization. 2009-05-26 Sascha L. Teichmann * formed/formed/plugins/names/filter.py: Repaired unique filter for nodecomponent names. 2009-05-06 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: Only create depending repeat groups if no uuid is given. If a uuid is given then the creation is triggered by an xml import. 2009-04-28 Sascha L. Teichmann * formed/formed/plugins/export/new_sql.py: New SQL schema generator to replace the old one. The new one faciliates the new RepeatNode instead of the Group.isRepeat() method to tell if something is to be repeated. * formed/formed/config.py: Use new SQL schema generator plug-in by default. The old one is deactivated. * formed/formed/plugins/export/rg_sql.py: Fix 'rg_' naming of repeat groups. 2009-04-28 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: Added delete functions. TODO: Adjust execution rights. 2009-04-27 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: Fixed $$$$ -> $$ template problems. Add functions to create dataset. 2009-04-24 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: new plug-in to generate tree structure functions in database. * formed/formed/config.py: load plug-in. 2009-04-16 Sascha L. Teichmann * formed/formed/model/data.py: Added 'digest' attribute to RepeatNode. Removed needless methods 2009-04-16 Sascha L. Teichmann * formed/formed/model/exprtree.py: make 'equal' and 'not equal' more readable with '=' and '<>'. 2009-04-02 Sascha L. Teichmann * formed/formed/plugins/export/sql.py: call anonymization of uuid on anonymization of case. 2009-03-31 Sascha L. Teichmann * formed/formed/plugins/export/sql.py: Set uuid_id to NULL in case_anonymize(). 2009-03-31 Sascha L. Teichmann * formed/formed/model/exprtree.py: Add some code to pretty print the trees infix. * formed/formed/plugins/export/rules.py: New. Exporter for human readable rules. * formed/formed/plugins/export/html.py: Fixed HTML generation. * formed/formed/config.py: Added new new Rule export plug-in. 2009-03-31 Sascha L. Teichmann * formed/formed/model/exprtree.py: Fixes from server. Raise exceptions if there is less or more than one element on stack after compilation of expression. 2009-03-20 Sascha L. Teichmann * formed/formed/model/data.py: Removed debug output * formed/formed/plugins/modify/rules.py: Fixed error message. Generate past and future rules. 2009-03-16 Sascha L. Teichmann * formed/formed/model/exprtree.py: Forget to call today with context. 2009-03-16 Sascha L. Teichmann * formed/formed/io/document.py: Fixed syntax typo. 2009-03-16 Sascha L. Teichmann * formed/formed/model/data.py: ConditionalNode inherits from Node directly. 2009-03-16 Sascha L. Teichmann * formed/formed/model/data.py: Added ConditionalNode * formed/formed/io/document.py: Make ConditionalNode loadable. 2009-03-13 Sascha L. Teichmann * formed/formed/plugins/modify/rules.py: Make the error descriptions in date sequence rules more precise. 2009-03-13 Sascha L. Teichmann * formed/formed/plugins/modify/rules.py: generate date sequence rules. 2009-03-13 Sascha L. Teichmann * formed/formed/model/exprtree.py: New tree based expression engine. * formed/formed/model/__init__.py, formed/formed/model/data.py: Adjusted imports. 2009-03-12 Torsten Irländer 2009-06-17 Sascha L. Teichmann * formed/formed/plugins/export/new_sql.py: s/-/_/ in relation names. 2009-05-26 Sascha L. Teichmann * formed/formed/plugins/names/filter.py: small optimization. 2009-05-26 Sascha L. Teichmann * formed/formed/plugins/names/filter.py: Repaired unique filter for nodecomponent names. 2009-05-06 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: Only create depending repeat groups if no uuid is given. If a uuid is given then the creation is triggered by an xml import. 2009-04-28 Sascha L. Teichmann * formed/formed/plugins/export/new_sql.py: New SQL schema generator to replace the old one. The new one faciliates the new RepeatNode instead of the Group.isRepeat() method to tell if something is to be repeated. * formed/formed/config.py: Use new SQL schema generator plug-in by default. The old one is deactivated. * formed/formed/plugins/export/rg_sql.py: Fix 'rg_' naming of repeat groups. 2009-04-28 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: Added delete functions. TODO: Adjust execution rights. 2009-04-27 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: Fixed $$$$ -> $$ template problems. Add functions to create dataset. 2009-04-24 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: new plug-in to generate tree structure functions in database. * formed/formed/config.py: load plug-in. 2009-04-16 Sascha L. Teichmann * formed/formed/model/data.py: Added 'digest' attribute to RepeatNode. Removed needless methods 2009-04-16 Sascha L. Teichmann * formed/formed/model/exprtree.py: make 'equal' and 'not equal' more readable with '=' and '<>'. 2009-04-02 Sascha L. Teichmann * formed/formed/plugins/export/sql.py: call anonymization of uuid on anonymization of case. 2009-03-31 Sascha L. Teichmann * formed/formed/plugins/export/sql.py: Set uuid_id to NULL in case_anonymize(). 2009-03-31 Sascha L. Teichmann * formed/formed/model/exprtree.py: Add some code to pretty print the trees infix. * formed/formed/plugins/export/rules.py: New. Exporter for human readable rules. * formed/formed/plugins/export/html.py: Fixed HTML generation. * formed/formed/config.py: Added new new Rule export plug-in. 2009-03-31 Sascha L. Teichmann * formed/formed/model/exprtree.py: Fixes from server. Raise exceptions if there is less or more than one element on stack after compilation of expression. 2009-03-20 Sascha L. Teichmann * formed/formed/model/data.py: Removed debug output * formed/formed/plugins/modify/rules.py: Fixed error message. Generate past and future rules. 2009-03-16 Sascha L. Teichmann * formed/formed/model/exprtree.py: Forget to call today with context. 2009-03-16 Sascha L. Teichmann * formed/formed/io/document.py: Fixed syntax typo. 2009-03-16 Sascha L. Teichmann * formed/formed/model/data.py: ConditionalNode inherits from Node directly. 2009-03-16 Sascha L. Teichmann * formed/formed/model/data.py: Added ConditionalNode * formed/formed/io/document.py: Make ConditionalNode loadable. 2009-03-13 Sascha L. Teichmann * formed/formed/plugins/modify/rules.py: Make the error descriptions in date sequence rules more precise. 2009-03-13 Sascha L. Teichmann * formed/formed/plugins/modify/rules.py: generate date sequence rules. 2009-03-13 Sascha L. Teichmann * formed/formed/model/exprtree.py: New tree based expression engine. * formed/formed/model/__init__.py, formed/formed/model/data.py: Adjusted imports. 2009-03-12 Torsten Irländer 2009-06-17 Sascha L. Teichmann * formed/formed/plugins/export/new_sql.py: s/-/_/ in relation names. 2009-05-26 Sascha L. Teichmann * formed/formed/plugins/names/filter.py: small optimization. 2009-05-26 Sascha L. Teichmann * formed/formed/plugins/names/filter.py: Repaired unique filter for nodecomponent names. 2009-05-06 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: Only create depending repeat groups if no uuid is given. If a uuid is given then the creation is triggered by an xml import. 2009-04-28 Sascha L. Teichmann * formed/formed/plugins/export/new_sql.py: New SQL schema generator to replace the old one. The new one faciliates the new RepeatNode instead of the Group.isRepeat() method to tell if something is to be repeated. * formed/formed/config.py: Use new SQL schema generator plug-in by default. The old one is deactivated. * formed/formed/plugins/export/rg_sql.py: Fix 'rg_' naming of repeat groups. 2009-04-28 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: Added delete functions. TODO: Adjust execution rights. 2009-04-27 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: Fixed $$$$ -> $$ template problems. Add functions to create dataset. 2009-04-24 Sascha L. Teichmann * formed/formed/plugins/export/rg_sql.py: new plug-in to generate tree structure functions in database. * formed/formed/config.py: load plug-in. 2009-04-16 Sascha L. Teichmann * formed/formed/model/data.py: Added 'digest' attribute to RepeatNode. Removed needless methods 2009-04-16 Sascha L. Teichmann * formed/formed/model/exprtree.py: make 'equal' and 'not equal' more readable with '=' and '<>'. 2009-04-02 Sascha L. Teichmann * formed/formed/plugins/export/sql.py: call anonymization of uuid on anonymization of case. 2009-03-31 Sascha L. Teichmann * formed/formed/plugins/export/sql.py: Set uuid_id to NULL in case_anonymize(). 2009-03-31 Sascha L. Teichmann * formed/formed/model/exprtree.py: Add some code to pretty print the trees infix. * formed/formed/plugins/export/rules.py: New. Exporter for human readable rules. * formed/formed/plugins/export/html.py: Fixed HTML generation. * formed/formed/config.py: Added new new Rule export plug-in. 2009-03-31 Sascha L. Teichmann * formed/formed/model/exprtree.py: Fixes from server. Raise exceptions if there is less or more than one element on stack after compilation of expression. 2009-03-20 Sascha L. Teichmann * formed/formed/model/data.py: Removed debug output * formed/formed/plugins/modify/rules.py: Fixed error message. Generate past and future rules. 2009-03-16 Sascha L. Teichmann * formed/formed/model/exprtree.py: Forget to call today with context. 2009-03-16 Sascha L. Teichmann * formed/formed/io/document.py: Fixed syntax typo. 2009-03-16 Sascha L. Teichmann * formed/formed/model/data.py: ConditionalNode inherits from Node directly. 2009-03-16 Sascha L. Teichmann * formed/formed/model/data.py: Added ConditionalNode * formed/formed/io/document.py: Make ConditionalNode loadable. 2009-03-13 Sascha L. Teichmann * formed/formed/plugins/modify/rules.py: Make the error descriptions in date sequence rules more precise. 2009-03-13 Sascha L. Teichmann * formed/formed/plugins/modify/rules.py: generate date sequence rules. 2009-03-13 Sascha L. Teichmann * formed/formed/model/exprtree.py: New tree based expression engine. * formed/formed/model/__init__.py, formed/formed/model/data.py: Adjusted imports. 2009-03-12 Torsten Irländer Introduced new order attribute for date fields * formed/formed/model/data.py: Order fields can be used to define to ordering of datefields withing the document. Needed for automatic generation of consistency rules. 2009-02-09 Sascha L. Teichmann * formed/formed/model/data.py: Allow pages to be 'invisible'. 2009-02-09 Sascha L. Teichmann * formed/formed/plugins/export/sql.py: Fixed problem with description reference tables of radio groups. 2009-02-09 Sascha L. Teichmann * formed/formed/plugins/export/sql.py: replace '-' in names by '_'. 2009-02-09 Sascha L. Teichmann * formed/formed/plugins/export/sql.py: to figure ou which tables are equal the insert statememnts are lower cased and sorted before they are compared. This reduces the number of generated referfence tables. 2009-02-09 Sascha L. Teichmann Repair SQL schema creation for radio groups. * formed/formed/plugins/export/sql.py: radio groups are handled like choices now. 2009-02-09 Sascha L. Teichmann Make it startable again. * formed/formed/plugins/export/xls.py: Import pyExcelerator only when plug-in is called. * formed/formed/model/nodecomponents.py: Event routing was messed up. Rewired root node with document. * formed/formed/plugins/web/help.py: Removed old xml.ext import. XXX: This breaks creating help by now! * formed/formed/io/parser.py: Replace old deprecated base class by new one. * formed/formed/main.py: Do not crash if locale cannot be set. * formed/formed/ui/controls.py: Use document.getCase() instead of document.case to prevent uninitialized dereferences. 2009-01-22 Torsten Irländer Implemented new XML-Format for formed xml files. * formed/formed/model/nodecomponents.py, formed/formed/io/document.py, formed/formed/main.py, formed/formed/ui/controls.py: Introduced new "case" and "logbook" node. Under case is the definition of the formular. logbook will hold the defintion of logboog entrys. For now only the part under "case" can be modified. 2009-01-21 Torsten Irländer Changed way how XSD-Scheme is generated * formed/formed/plugins/export/xsd.py: Enhanced xsd schema to support logbookentrys. The scheme definiton is now hardcoded in the exporter as it will rarely change. It logbookpart will not be generated from the formedtree anymore. 2009-01-20 Torsten Irländer Support Logbook entrys in xsd schema export * formed/formed/model/data.py: Repeatnode are now handeld as repeatgroups in xsd-export * formed/formed/plugins/export/xsd.py: Enhanced xsd schema to support logbookentrys. The scheme will now validate against an xmlfile from the offlineclient. 2009-01-09 Torsten Irländer Added new repeat node * formed/formed/model/data.py, formed/formed/io/document.py: Added repeatnode to the formedtree. TODO: Remove repeatgroup handling from the groupnode. 2009-01-08 Torsten Irländer Add isset operator to autogenerated rules. * formed/formed/plugins/modify/rules.py: Add issed operator to standard autogenerated rules. 2008-12-17 Frank Koormann * formed/formed/plugins/export/latex.py: Export form as set of latex tables to be included into a master document. The export generates section marks to structure the form and placeholders for help texts to be merged in by a post processing step. 2008-12-04 Sascha L. Teichmann * formed/formed/model/expr.py: Added 'today' which pushes the current date on the stack. 2008-12-03 Sascha L. Teichmann * formed/formed/plugins/web/controllers.py: compute changeset more correctly in storage of fields. * formed/formed/plugins/export/xsd.py: Added unknown int -999999 to integer fields as an accepted value. Generate schema for radio groups too. 2008-12-01 Torsten Irländer Added autmatic generation of required rules * formed/formed/model/data.py, formed/formed/model/expr.py, formed/formed/plugins/modify/rules.py: Default rules for required fields can now be generated. 2008-11-28 Sascha L. Teichmann * formed/formed/model/data.py, formed/formed/model/nodecomponents.py: Ported WidgetCollector from Offline client. * formed/formed/plugins/modify/__init__.py, formed/formed/plugins/modify, formed/formed/plugins/modify/rules.py: Stub for required rules generator. * formed/formed/config.py: Bind new filter to FormEd 2008-11-27 Torsten Irländer * formed/formed/model/data.py: Added new attribute mark for rules 2008-11-10 Torsten Irländer Implemented radio-matrix elements. radio elelement having the same options can now be rendered in table form. * formed/formed/model/data.py, formed/formed/io/document.py: Added new radio-matrix element to the model and gui * formed/formed/plugins/web/view_renderer.py: Write html-renderer for the radio-matrix element. 2008-11.03 Torsten Irländer * formed/formed/model/data.py: Fixed import error 2008-10-29 Sascha L. Teichmann Relative paths in external choices are now possible. Relative paths are relative to path of the master document. * formed/model/data.py: external choice are now storing the path to the master document. * formed/formed/io/document.py: Pass context to SAX builder. * formed/formed/io/factories.py: For new created nodes look if there is a method 'setLoadContext' and call it. 2008-09-04 Sascha L. Teichmann * doc/beschreibung.txt: New. Initial description of FormEd (german). 2008-08-22 Sascha L. Teichmann * formed/formed/model/nodecomponents.py: Added attribute 'flags'. 2008-08-21 Sascha L. Teichmann * formed/formed/io/document.py: Indent tree while saving * formed/formed/main.py: removed needless print 2008-08-15 Sascha L. Teichmann * LICENSE: New GPLv3 * */*.py, *.sh: Added reference to LICENSE 2008-08-15 Sascha L. Teichmann * tools: removed because there a no tools any more. 2008-08-15 Sascha L. Teichmann * tools/formed: moved one level up because its the only part of this project now. 2008-08-15 Sascha L. Teichmann * tools/anonym/*: Removed as it belongs to mpuls WASKA 2008-08-15 Sascha L. Teichmann * pdf2xfa/*: removed. It belongs to mpuls 2008-08-13 L. Teichmann i18n of the plug-ins: * tools/formed/formed/plugins/export/diff.py, tools/formed/formed/plugins/export/data.py, tools/formed/formed/plugins/export/old_sql.py, tools/formed/formed/plugins/export/latex.py, tools/formed/formed/plugins/export/xsd.py, tools/formed/formed/plugins/export/sql.py, tools/formed/formed/plugins/export/typemap.py, tools/formed/formed/plugins/export/html.py, tools/formed/formed/plugins/export/mode.py, tools/formed/formed/plugins/export/html2.py, tools/formed/formed/plugins/export/xls.py, tools/formed/formed/plugins/names/filter.py, tools/formed/formed/plugins/plugin.py, tools/formed/formed/plugins/web/help.py, tools/formed/formed/plugins/web/form_renderer.py, tools/formed/formed/plugins/web/plugin.py, tools/formed/formed/plugins/web/error_renderer.py, tools/formed/formed/plugins/web/view_renderer.py, tools/formed/formed/plugins/web/semantic.py, tools/formed/formed/plugins/web/cache.py, tools/formed/formed/plugins/web/server.py, tools/formed/formed/plugins/web/controllers.py, tools/formed/formed/plugins/web/renderer.py, tools/formed/formed/plugins/ui/controls.py, tools/formed/formed/config.py: _("")s the stuff tools/formed/po/formed.pot, tools/formed/po/de_DE.po: extracted and translated. 2008-08-08 Sascha L. Teichmann First version of FormEd i18n. After checkout go to tools/formed/po/ and say 'make mo'. Afterwards you can start FormEd as usual. * tools/formed/resources: New. Place to places ressources like *.mo files * tools/formed/formed/main.py, tools/formed/formed/ui/controls.py: Add _("")s * tools/formed/po, tools/formed/po/Makefile, tools/formed/po/formed.pot, tools/formed/po/de_DE.po: i18n stuff. 2008-08-08 Sascha L. Teichmann * tools/anonym/xmlexport.py: Only export cases which are not 'schwebend geloescht'. 2008-07-23 Sascha L. Teichmann Fixed issue472 * tools/anonym/xmlimport.py: Regenerate dicts from current form ed tree. 2008-07-17 Sascha L. Teichmann * tools/anonym/xmlimport.py: removed marking of invalid cases * tools/anonym/cron.importAnonXml.sh: re-inserted here. 2008-07.07 Torsten Irländer * tools/formed/formed/plugins/export/latex.py tools/formed/formed/config.py: Added new LaTex Export. Beware this is even more ugly the HTML Export. * tools/formed/formed/plugins/export/html.py: Added information on anonymisation to the html export. 2008-07-07 Sascha L. Teichmann * tools/anonym/xmlimport.py: Mark cases if they are inconsistent. 2008-07-07 Sascha L. Teichmann * tools/anonym/xmlimport.py: Updated to schema 1.5. (Which is incompatible to 1.4) 2008-07-07 Sascha L. Teichmann * tools/formed/formed/plugins/export/html.py: Added additional column to the html export with information how each field will get anonymized. 2008-07-07 Sascha L. Teichmann * tools/anonym/xmlimport.py: sync with productive version. 2008-06-10 Torsten Irländer * tools/formed/formed/plugins/export/sql.py: grant admin permission to call anonymize function 2008-05-21 Sascha L. Teichmann * tools/formed/formed/plugins/export/xsd.py: Brought encoding back to UTF-8. 2008-05-21 Frank Koormann * tools/formed/formed/plugins/export/xls.py: New, export key value tables as excel workbook with one sheet per table. * tools/formed/formed/config.py: ExportKeyValueTableAsXLS added. 2008-05-21 Frank Koormann * tools/formed/formed/plugins/export/xsd.py (SchemaCreator._createChoice): Fix use of choices name. 2008-04-29 Sascha L. Teichmann * tools/formed/formed/plugins/export/xsd.py: Use substitution group to allow arbitrary order of repeat groups. 2008-04-29 Sascha L. Teichmann * tools/formed/formed/plugins/export/xsd.py: Removed a needless character. 2008-04-29 Sascha L. Teichmann * tools/formed/formed/plugins/export/xsd.py: Added annotations to fields. 2008-04-29 Sascha L. Teichmann * tools/formed/formed/plugins/export/xsd.py: Added for choice fields. 2008-04-29 Sascha L. Teichmann * tools/formed/formed/plugins/export/xsd.py: Added support for boolean fields based on enumerations. 2008-04-28 Sascha L. Teichmann * tools/formed/formed/plugins/export/xsd.py: Added support for date, text and textarea fields. 2008-04-28 Sascha L. Teichmann * tools/formed/formed/plugins/export/xsd.py: Added support for repeat groups and integer fields. 2008-04-28 Sascha L. Teichmann * tools/formed/formed/plugins/export/xsd.py: New. plug-in for exporting as XML schema. not ready, yet. * tools/formed/formed/config.py: Use new plug-in. * tools/formed/formed/plugins/export/sql.py: Fixed wrong GUI text. 2008-04-17 Torsten Irländer * tools/formed/formed/plugins/export/sql.py: Changed WHERE clause in for the views because of the new group permissions. 2008-04-09 Sascha L. Teichmann * tools/anonym/cron.deleteOldAnonymized.sh: New. cron job to delete old anonymized cases. 2008-04-01 Sascha L. Teichmann * tools/anonym/xmlexport.py: Removed "WHERE einverstaendniserklaerung = 1" from clause to select datasets. Replace ']]>' in CDATA sections with correct splitted replacement. 2008-03-12 Sascha L. Teichmann * tools/anonym/cron.importAnonXml.sh: Added absolut path to xmlimport script. * tools/anonym/xmlimport.py: commented out database port from connectionstring. 2008-03-12 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Fixed bug in generation of anonymization of repeat groups (wrong id was given). 2008-03-11 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Generate no update statements for relations which have no anonym functions applied. 2008-03-11 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Added a newline after 'COMMIT;' in the last line. 2008-03-11 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Fixed syntax of generated anonymize_case() function. 2008-03-11 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Added code to generate a plpgsql function anonymize_case() that anonymized a given case and all of its depending repeat groups. 2008-03-06 Sascha L. Teichmann * tools/anonym/xmlimport.py: remove print of insert statement. * tools/formed/formed/plugins/export/sql.py: Print generation date in ISO. 2008-03-03 Torsten Irländer * anonym/cron.sendAnonXml.sh, anonym/getDbList.sh: Modified script to be used directly in the production environment (Copied running scripts from production server) * cron.importAnonXml.sh: Added deleting of ols cases. Modified script to be used in a production environment (Cpoied running script from production server) * tools/anonym/xmlexport.py: Added "WHERE" clause to SQL-Statement to ensure that only valid cases get exported 2008-02-27 Sascha L. Teichmann * tools/anonym/xmlimport.py: Fixed bug in date converter. 2008-02-27 Sascha L. Teichmann * tools/anonym/xmlimport.py: Simpilied version 2008-02-27 Sascha L. Teichmann * tools/anonym/cron.importAnonXml.sh: Add sudo call for xmlimport.py and parameters. * tools/anonym/xmlimport.py: Various bug fixes. Not working yet. :-/ * tools/anonym/xmlexport.py: Use python interpreter without env because of sudo context. 2008-02-26 Sascha L. Teichmann * tools/anonym/xmlimport.py: added support for getopt. add support to force in fkz in import of case. 2008-02-26 Sascha L. Teichmann * tools/anonym/xmlimport.py: Implemented logic to create/update cases. * tools/anonym/html.awk: produces valid HTML. 2008-02-25 Sascha L. Teichmann * tools/anonym/joincsv.py: Fix a logic bug. 2008-02-25 Torsten Irlaender * tools/anonym/cron.importAnonXml.sh: Added shellscript for importing exportted cases. It will read all files from a directory and import the files into the DB. After that the script will cleanup the directory. 2008-02-25 Torsten Irländer * tools/anonym/cron.sendAnonXml.sh, tools/anonym/xmlexport.py, tools/anonym/getDbList.sh: Added shell-scripts for exporting cases 2008-02-25 Sascha L. Teichmann * tools/anonym/joincsv.py: Fixed typo which generated wrong number of cols. 2008-02-25 Sascha L. Teichmann * tools/anonym/joincsv.py: New. Joins CSV files. * tools/anonym/html.awk: New. Converts CSV to HTML 2008-02-25 Sascha L. Teichmann * tools/anonym/xmlimport.py: New. Added generation of update statements. 2008-02-25 Sascha L. Teichmann * tools/anonym/xmlimport.py: New. Base for importing XML from cron. 2008-02-24 Sascha L. Teichmann * tools/formed/formed/plugins/export/html2.py: New. plug-in for a simplified HTML output * tools/formed/formed/plugins/export/typemap.py: New. plug-in for dump schema as python dictionary. * tools/formed/formed/config.py: Enable new plug-ins. Out comment old stored procedure and view generators. 2008-02-19 Sascha L. Teichmann * tools/anonym/xmlexport.py: New. Export all cases in database as XML. 2008-02-18 Sascha L. Teichmann * tools/anonym/anoymncsv.py: separate field with '\t' now. all '\t's are replaced by ' ' before. '\r\n' are removed too. 2008-02-15 Sascha L. Teichmann * tools/anonym/anoymncsv.py: simple script to fetch anonymous data from database. 2008-02-14 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Exchanged name erase_value with suppress_value/suppress_value2. 2008-02-13 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: output id, master_id substitute 'erase_value' with NULL value. 2008-02-13 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: output id, master_id and uuid_id in anonymiziation views too. 2008-02-13 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Added generation of anonymiziation views for master table views and repeat group views. 2008-02-13 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Added attribute "function" * tools/formed/formed/io/document.py: Save attributes in alphabetical order. 2008-02-02 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Added update rule for master table and repeat groups views. Granted update right to :cm_ka_group. 2008-02-01 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Added a column 'uuid_id' for master table and repeat groups. Also added unique constraints to these columns. 2007-12-10 Sascha L. Teichmann * pdf2xfa/src/de/intevation/pdfimport/ClientHandler.java: Added a system property 'root.element' to specify the name of the XML root. * pdf2xfa/startup/pdf2xfa.sh, pdf2xfa/README.TXT: Adjusted. 2007-11-22 Sascha L. Teichmann * pdf2xfa/startup, */pdf2xfa.sh, */pdf2xfa.init: boot scripts for GNU/Linux (tested Debian 'Etch' 4.0) by Sascha Wilde. * pdf2xfa/README.TXT: Add a remark to new boot scripts. 2007-11-21 Sascha L. Teichmann * pdf2xfa/src/de/intevation/pdfimport/Log.java: New. Sends logging to file. * pdf2xfa/src/de/intevation/pdfimport/Server.java, pdf2xfa/src/de/intevation/pdfimport/ClientHandler.java: Adjusted to use new logging. * pdf2xfa/README.TXT: Added remark how to use logging. 2007-11-16 Frank Koormann * tools/formed/formed/plugins/export/sql.py (createSchema): Append only column "bearbeiter_id", standins are modelled by a separate table. 2007-11-16 Sascha L. Teichmann * tools/formed/formed/model/data.py, tools/formed/formed/plugins/web/view_renderer.py: Added an invisible flag for info fields. 2007-11-07 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Fixed a few small bugs (calling a wrong method). 2007-11-07 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Added a field 'alternative' to all node components. This might be of help to match PDF imports where the descriptions do not match. 2007-10-23 Frank Koormann * tools/formed/formed/plugins/export/sql.py: New WHERE-Clause for views 2007-10-23 Frank Koormann * tools/formed/formed/plugins/export/sql.py: Set default value (-1) for choices and bools. 2007-10-21 Frank Koormann * tools/formed/formed/plugins/export/sql.py: Grant statements for descriptive tables added. (Table.getName): new 2007-10-21 Frank Koormann * tools/formed/formed/plugins/export/sql.py: "CREATE OR REPLACE" statements for views and roles to make updates easier. Add "admin_ka" membership as third option to VIEW_WHERE_CLAUSE. 2007-10-19 Frank Koormann * tools/formed/formed/plugins/export/sql.py: Added GRANT statements for views. The statements are prepared for variable substitution when executing the SQL-scripts by psql. 2007-10-18 Sascha L. Teichmann * pdf2xfa/src/de/intevation/pdfimport/ClientHandler.java: Fixed: End of result XML was truncated because of an unflushed buffer. 2007-10-17 Sascha L. Teichmann * pdf2xfa/bin/build-jar.sh: New. Build production jar file. * pdf2xfa/README.TXT: Adjusted how to build production jar file and how to use it. * pdf2xfa/etc, pdf2xfa/etc/manifest.txt: New. Defines main class and iText dependency. 2007-10-16 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Model 'Ja, Nein, Keine Angabe' are not modeled as BOOLEANs any more. That simpifies the conversion process web vs. db. 2007-10-07 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Added the remaining UPDATE rules. 2007-10-07 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Added UPDATE rules for some views. TODO: Test'em and implement the rest. 2007-10-07 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Bug fix. DELETE and INSERT rules referenced none existing views. 2007-10-07 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Added DELETE and INSERT rules for views. TODO: add UPDATE rules. 2007-10-07 Sascha L. Teichmann * tools/formed/formed/plugins/export/old_sql.py: New. Contains the legacy SQL export filters. * tools/formed/formed/plugins/export/sql.py: Factored out the legacy SQL export filters to old_sql. * tools/formed/formed/config.py: Adjusted to fetch legacy filters from old_sql. 2007-10-06 Sascha L. Teichmann * pdf2xfa/**: Initial import of the PDF to XFA server. 2007-10-06 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Fixed bug that made choices of three elements to booleans if they have other meanings than 'Ja', 'Nein', 'keine Angabe'. 2007-10-05 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Select ids of underlaying tables in views too. 2007-10-04 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Create schema inside transaction. Various bug fixes. 2007-10-04 Sascha L. Teichmann * tools/formed/formed/model/data.py: Added GroupNode.allWidgets() to extract fields from embedded repeat groups. * tools/formed/formed/plugins/export/sql.py: The SQL exporter exports views per page too. Result not tested yet. 2007-10-01 Sascha L. Teichmann * tools/formed/formed/plugins/web/view_renderer.py: Ignore in-page repeat groups while rendering pages. 2007-10-01 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Added visitor traversals for document trees. * tools/formed/formed/model/data.py: Rewrote the Page.allWidgets() method to use new visitor for tree traversal. 2007-09-27 Torsten Irlaender * tools/formed/formed/plugins/names/filter.py: Pages are now included in the rename by formular name algorithm 2007-09-26 Sascha L. Teichmann * tools/formed/formed/model/data.py: Removed old {next|prev}Page() TODO: rewrite Page.allWidgets(). * tools/formed/formed/model/nodecomponents.py: Added a method Node.firstLevel(criterion) to walk a defined line in the tree. * tools/formed/formed/plugins/export/sql.py: Extract data suitable to build views and respective joins. 2007-09-26 Sascha L. Teichmann * tools/formed/formed/plugins/web/plugin.py: add 'web.tidy:' flag to FORMED environment variable. If set to true tidylib is used to filter HTML content to be W3C valid. To use this feature install uTidylib. * tools/formed/formed/plugins/web/server.py: Check if MIME type is text/html and filters content through tidy if requested. 2007-09-25 Torsten Irlaender * tools/formed/formed/plugins/web/view_renderer.py: Small fix and cleanup of the form generation code. 2007-09-21 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: Added generation time and DROP TABLE statements to schema export. 2007-09-20 Sascha L. Teichmann * tools/formed/formed/plugins/export/sql.py: The tables are generated in correct topolocial order now. 2007-09-20 Sascha L. Teichmann * tools/formed/formed/plugins/export/mode.py: New. Filter to export a document with items that are in given mode. * tools/formed/formed/model/nodecomponents.py: Added methods to clone trees depending on selected modes. * tools/formed/formed/model/data.py, tools/formed/formed/model/expr.py: Fixed clone issue with RuleNodes. * tools/formed/formed/config.py: Use new plug-in. 2007-09-17 Sascha L. Teichmann * tools/formed/formed/plugins/web/view_renderer.py: Make the view renderer a real view renderer. It takes a list of items now and not only a single page. * tools/formed/formed/plugins/web/renderer.py: Feed a list of items to the view renderer. 2007-09-17 Torsten Irlaender * tools/formed/formed/plugins/web/view_renderer.py: Small tweaks in rendering bools. RadioNodes (with all its children) can now be placed in a container. The radiobools will not get a surrounding
anymore. I am not sure if the new way results in the wanted behaivor, but the rendering results are much better now :) Maybe we need a similar approach for checkboxes? Rendering groups is still broken in some way. 2007-09-17 Sascha L. Teichmann * tools/formed/formed/plugins/web/view_renderer.py: Fixed a few bugs: Do not render empty containers, do not generate misplaced
in choices. Add a nameless container to catch the items that are nor explicitly assigned to a target. Removed FormData. * tools/formed/formed/plugins/web/renderer.py: Removed a needless import 2007-09-17 Sascha L. Teichmann * tools/formed/formed/plugins/web/view_renderer.py: Implemented usage of 'containers' and 'target' attributes. * tools/formed/formed/plugins/web/controllers.py: Modified import. * tools/formed/formed/plugins/web/renderer.py: Use new ViewRenderer. 2007-09-17 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Added attributes 'target' to NodeComponent and 'containers' to Node. * tools/formed/formed/plugins/web/view_renderer.py: New. Aimed to be a replacement for form_renderer. Not ready yet! * ChangeLog: Fixed some indention glitches. 2007-09-13 Torsten Irlaender * tools/formed/formed/plugins/names/filter.py: Fixed bug in the renaming algorithm. 2007-09-12 Torsten Irlaender * tools/formed/formed/plugins/web/form_renderer.py: Renamed header from formular navigation to "Fallakte Inhalt" 2007-09-12 Torsten Irlaender * tools/formed/formed/plugins/ui/controls.py: Fixed bug that bad values (dates) were not pretty printed. * tools/formed/formed/plugins/web/form_renderer.py: Added errormsg to label rendering for choicelists. 2007-09-12 Torsten Irlaender * tools/formed/formed/plugins/ui/controls.py: Fixed bug that choicelist did not get selected when the value is set to "0" 2007-09-12 Torsten Irlaender * tools/formed/formed/plugins/web/form_renderer.py: Added "getPrintableData" method, for the formdata Class which will return the description rather than the value of element in the ID. This is need for displaying the choises in a right way. * tools/formed/formed/plugins/web/renderer.py: Changed string "Fallnummer" into "Kundennummer" in the templates. Added Kundennummer to the dataset digest output. Bound in the new "getPrintableData" call for the digest. 2007-10-11 Sascha L. Teichmann * tools/formed/formed/plugins/export/data.py: The import/export of data is now implemented with filters (the most consequent way in terms of design of FormEd). The support of the 'persistent' FORMED env-variable support has been removed. * tools/formed/formed/plugins/ui/controls.py: Added a flag to the filter file dialog to double as import dialog. * tools/formed/formed/main.py: Removed the the FORMED-var support for persistence. * tools/formed/formed/config.py: Add the two new filters to the filters list. 2007-10-11 Sascha L. Teichmann * tools/formed/formed/model/memory.py: Uses XML as persistence format now. Removed pickle/unpickle stuff. * tools/formed/formed/main.py: Uses the new XML persistence. * tools/formed/formed/plugins/web/semantic.py: Fixed: choices were not converted to int indices. 2007-09-11 Sascha L. Teichmann * tools/formed/formed/model/memory.py: Making MemoryDataStore persistent with pickle/unpickle. * tools/formed/formed/main.py: Added a env FORMED parameter 'persistent'. Set to a file name it is tried to unpickle a MemoryDataStore from that file. When exiting the program this file is used to store the current MemoryDataStore state. The storing only works if you exit the program through the Menu File->Exit. usage: FORMED=persistent:test.db ./formed.sh 2007-09-11 Torsten Irlaender * tools/formed/formed/plugins/web/renderer.py: Changed Name of the application on the welcome page from "Formed" to "WASKA" 2007-09-11 Torsten Irlaender * tools/formed/formed/plugins/web/plugin.py, * tools/formed/formed/plugins/web/controllers.py, * tools/formed/formed/plugins/web/renderer.py: Added InfoPageHandler. The infopage provides information on all project participants. 2007-09-11 Sascha L. Teichmann * tools/formed/formed/plugins/web/controllers.py: Fix unicode conversion issues with error messages (once again). 2007-09-11 Torsten Irlaender * tools/formed/formed/plugins/web/form_renderer.py, * tools/formed/formed/plugins/web/renderer.py: Added alt tag for icons in error and confirmation dialogs. 2007-09-11 Sascha L. Teichmann * tools/formed/formed/plugins/web/form_renderer.py: Fixed label generation for ints, texts and textareas. Fixed h depths of infos. 2007-09-11 Sascha L. Teichmann * tools/formed/formed/plugins/web/form_renderer.py: Removed debug output for help. * tools/formed/formed/plugins/web/semantic.py: Added forgotten check for bools. * tools/formed/formed/plugins/web/controllers.py: Added correct HTML output of data for bools. 2007-09-11 Torsten Irlaender * tools/formed/formed/plugins/web/form_renderer.py: Changed size of textfields for int values. Changed Label for submitbuttons to "Speichern" * tools/formed/formed/plugins/web/plugin.py, tools/formed/formed/plugins/web/controllers.py: Added new NotImplementedHandler to show up a dummysite for not implemented functions. * tools/formed/formed/plugins/web/renderer.py: Added NotImplementedRenderer. Various small fixes. Mostly renaming the labels of some context menus. Error messages are now generated dynamically depending on num errors. Formular navigation has now colored indication for errors. 2007-09-11 Torsten Irlaender * tools/formed/formed/plugins/web/renderer.py: Implemented "LookAhead" algorithm for the formular navigation to get rid of the problem that some of the items within the navigation are not linked. Now structural group elements are linked with the next page found in the formular structure. 2007-09-10 Torsten Irlaender * tools/formed/formed/plugins/web/form_renderer.py: Changed order of div and formtag. * tools/formed/formed/plugins/web/controllers.py: Added DataSet action menu in the conformation dialog when creating a new dataset. * tools/formed/formed/plugins/web/renderer.py: Fixed error when rendering the default welcome page. Changed rendering of the overview and the digest table of the datasets. Added icon for confirmation dialog, moved the icon in the

tags. 2007-09-10 Torsten Irlaender * tools/formed/formed/plugins/web/form_renderer.py: Some html generation cleanup. Added error icons to formelements * tools/formed/formed/plugins/web/controllers.py: Fixed initialisation of ErrorStatus. Fixed generated of the help tags in the formular * tools/formed/formed/plugins/web/renderer.py: Added error icon for pageerrors. An "!" now indicates errors on pages in the formular navigation. Added new
"content" around confirmation dialogss. Links in confimation dialogs are now rendered as buttons. Removed old obsolete OverviewRenderer. 2007-09-10 Sascha L. Teichmann * tools/formed/formed/plugins/web/renderer.py: Highlight selected page in page navigation. 2007-09-10 Torsten Irlaender * tools/formed/formed/plugins/web/controllers.py: Fixed issues on displaying formdata when changing datasets. Loading the right formdata was not handled in a correct way. Hope it is all fixed now. Left some commented code because not all sideeffects of the changes are tested yet. * tools/formed/formed/plugins/web/renderer.py: DataSetDigestRenderer now uses the correct data out of the formdata. 2007-09-10 Sascha L. Teichmann * tools/formed/formed/plugins/web/controllers.py: Pretty print format data (dates e.g) 2007-09-10 Sascha L. Teichmann * tools/formed/formed/plugins/web/controllers.py: Modified ErrorStats a bit to avoid mysterious extra error on page. No clue why this works. 2007-09-10 Sascha L. Teichmann * tools/formed/formed/plugins/web/form_renderer.py: Fixed value problem with radio groups, too. 2007-09-10 Torsten Irlaender * tools/formed/formed/plugins/web/controllers.py: Sessions are now really removed when deleting a dataset. 2007-09-10 Torsten Irlaender * tools/formed/formed/plugins/web/controllers.py: Added new Class ErrorStats which provides Information on remaining errors per page. * tools/formed/formed/plugins/web/renderers.py: Finished movement of the renderer methods from controllers.py to renderers.py. * tools/formed/formed/plugins/web/plugin.py: Removed render_session handlers 2007-09-10 Sascha L. Teichmann * tools/formed/formed/plugins/web/form_renderer.py: values for choices are generated from the document tree now. This brings the state storage of select boxes in HTML to live. 2007-09-09 Sascha L. Teichmann * tools/formed/formed/plugins/web/semantic.py: Fixed problems with range checking of integers. * tools/formed/formed/plugins/web/controllers.py: Added class ErrorItem to track errors. They are stored in the session. 2007-09-09 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Fixed returning wrong index in Document.indexOfcomponentByClassAndName. * tools/formed/formed/plugins/web/form_renderer.py: 'error' was written 'errot' in renderer for textareas. * tools/formed/formed/plugins/web/controllers.py: Some clean-ups. 2007-09-09 Sascha L. Teichmann * tools/formed/formed/plugins/web/help.py: Added a 'hasHelp' method. Could be cheaper for some implementations of help. * tools/formed/formed/plugins/web/form_renderer.py: Modified FormData to have distinct getData(), getHelp() and getError() methods. Various bug fixes. * tools/formed/formed/plugins/web/controllers.py: Implements the new FormData (trivial by now). * tools/formed/formed/plugins/web/renderer.py: New FormData and some bug fixes. 2007-09-09 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, 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, tools/formed/formed/model/nodecomponents.py, tools/formed/formed/io/document.py: Added a 'switch' node. * tools/formed/formed/plugins/web/renderer.py:Render the new 'switch' node. * tools/formed/formed/plugins/web/plugin.py, tools/formed/formed/config.py: Added a 'web.mode' parameter to FORMED environment variable. e.g. 'FORMED=web.mode:modeX' sets the mode 'modeX'. Defaults to 'default'. * tools/formed/test-data/simple.xml: Added test for switch. 2007-08-14 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Added an attribute 'formularname' to base class of node components. 2007-08-13 Sascha L. Teichmann * tools/formed/formed/io/document.py, tools/formed/formed/model/data.py, tools/formed/formed/model/nodecomponents.py: Added an item to model external item lists. * tools/formed/formed/plugins/web/renderer.py: Render new item list. * tools/formed/formed/main.py: Added a forgotten 'self.' * contrib/extract-xfa-items.sh: Modified to generate documents to be loadable from new item lists 2007-08-13 Sascha L. Teichmann * tools/formed/formed/main.py: Fixed typo 2007-08-13 Sascha L. Teichmann * contrib/extract-xfa-items.sh: New. Can be used to extract longer choice item lists for a given field from XFA files. e.g. with './contrib/extract-xfa-items.sh Muttersprache alles.xml' 2007-08-12 Sascha L. Teichmann * tools/formed/formed/model/data.py, tools/formed/formed/plugins/web/renderer.py, tools/formed/formed/io/document.py: Changed the structure of choice constructs. The idea to hold the different items of a particular choice in a semicolon separated list was bad. Now choices are groups and the option items are modelled as embedded bools. (mainly Torsten Irländer's idea). WARNING: this makes old document files containing choices incompatible!!! Use the following XSLT to reestablish compatibility. * contrib/itemize-choices.xsl: New converts old to new structure. Needs exslt.org's string extensions (which xsltproc includes) * tools/formed/test-data/simple.xml: Ajusted to new structure * tools/formed/formed/plugins/web/plugin.py: remove debug output * tools/formed/formed/model/nodecomponents.py: fixed a small bug in node finding code. It now uses the walk() generator, too. 2007-08-12 Sascha L. Teichmann * tools/formed/formed/main.py: Added a clone item on the toolbar which copies the currently selected item and appends it after the selection. * tools/formed/formed/model/nodecomponents.py: Added code to clone parts of the tree. * tools/formed/formed/ui/controls.py: Added a getSelected method. * tools/formed/formed/model/misc.py: Fixed a programming bug. forgot a 'self.' prefix. 2007-08-12 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Added a method to append a second document to the current. * tools/formed/formed/main.py: Added an 'Import' file menu item to load a second document to be appended to the current. 2007-08-12 Sascha L. Teichmann * tools/formed/formed/main.py: Added a 'New' item in file menu which creates a new document when triggered. 2007-08-12 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Added walk generator over all items in the document tree. Added a method to eliminated duplicated names in document tree. * tools/formed/formed/model/misc.py: Added update mechanism for id generator after names collisions are eliminated. * tools/formed/formed/main.py: Added an 'Extra' menu with item 'Make names unique'. 2007-08-11 Sascha L. Teichmann * tools/formed/formed/model/data.py, tools/formed/formed/plugins/web/renderer.py: Removed support for 'text' attributes in bool items. They were never really used and the 'description' attributes fulfill the same purpose. * contrib/remove-bool-text.xsl: Transform to remove the 'text' attributes from bool items. Apply with: 'xsltproc contrib/remove-bool-text.xsl old.xml > new.xml' * tools/formed/test-data/simple.xml: Removed 'text' attributes from bool items. 2007-08-11 Sascha L. Teichmann * contrib/convert-choices.xsl: Simpified. 2007-08-11 Sascha L. Teichmann * tools/formed/formed/model/data.py: Removed 'options' attribute from ChoiceLeaf. Use 'value' instead, please! * tools/formed/formed/plugins/web/renderer.py: use 'value' attribute instead of 'options' to render choices. * contrib/convert-choices.xsl: Added to convert document files which use the choice 'option' attribute to usage of 'value'. Apply with e.g. 'xsltproc convert-choices.xsl old.xml > new.xml' 2007-08-10 Sascha L. Teichmann * tools/formed/formed/plugins/web/renderer.py: radio buttons are selected by 'checked' and not by 'selected'. Fixed. 2007-08-10 Sascha L. Teichmann * tools/formed/formed/model/data.py: ChoiceLeafs are now initialized with size = 1. 2007-08-10 Sascha L. Teichmann * tools/formed/formed/model/data.py: TextLeafs are now initialized with size = 40, maxlength = 60 2007-08-10 Sascha L. Teichmann * tools/formed/formed/plugins/web/renderer.py: Fixed: choices are renderered with description now. 2007-08-10 Sascha L. Teichmann * tools/formed/formed/plugins/web/renderer.py: Added rendering for date items. Added missing ids for texts and textareas. 2007-08-10 Sascha L. Teichmann * tools/formed/formed/config.py: Evaluate the environment variable 'FORMED'. Snytax: FORMED='key1:value1;key2:value2' * tools/formed/formed/plugins/plugin.py: Give a reference to the config at setup time. * tools/formed/formed/plugins/web/plugin.py: To determine the port look at FORMED dictionary first. Key is 'web.port'. e.g. FORMED='web.port:8888' * tools/formed/formed/main.py: Call the plugin setup with the reference to the config. 2007-08-10 Sascha L. Teichmann * tools/formed/test-data/simple.xml: removed 'text' attributes from info tags. Use the 'value' attributes for same purpose now, please! * tools/formed/formed/model/data.py: removed text attributes from InfoLeaf. * tools/formed/formed/plugins/web/renderer.py: Rendering of info now uses the 'value' instead of the 'text' attributes. 2007-08-09 Sascha L. Teichmann * tools/formed/formed/model/data.py: next/prevPage() are methods of PageNode now. * tools/formed/formed/model/nodecomponents.py: findByClassAndName() is method of Document now. * tools/formed/formed/plugins/web/plugin.py: Factored out the HTML renderer. * tools/formed/formed/plugins/web/renderer.py: New: contains the HTML renderer now. * tools/formed/test-data/simple.xml: Fixed typo 2007-08-09 Sascha L. Teichmann * tools/formed/formed/plugins/web/plugin.py: Fixed a bug in calculation of width of bounded int fields. 2007-08-09 Sascha L. Teichmann * tools/formed/test-data/simple.xml: Make demo Int fancier. * tools/formed/formed/model/data.py: Added attributes to IntLeaf * tools/formed/formed/plugins/web/plugin.py: Added rendering for Ints 2007-08-09 Sascha L. Teichmann * tools/formed/test-data/simple.xml: Added demo textarea * tools/formed/formed/model/data.py: Added TextAreaLeaf * tools/formed/formed/io/document.py: register builder for loading of textareas * tools/formed/formed/plugins/web/plugin.py: Added rendering for textareas. 2007-08-09 Sascha L. Teichmann * tools/formed/test-data/simple.xml: Make demo choice fancier. * tools/formed/formed/model/data.py: Added attributes for texts * tools/formed/formed/plugins/web/plugin.py: Added rendering for texts 2007-08-09 Sascha L. Teichmann * tools/formed/test-data/simple.xml: Make demo choice fancier. * tools/formed/formed/model/data.py: Added attributes for choices. * tools/formed/formed/plugins/web/plugin.py: Added rendering for choices 2007-08-09 Sascha L. Teichmann * tools/formed/formed/model/data.py, tools/formed/formed/model/nodecomponents.py: Added new attributes. * tools/formed/formed/plugins/web/plugin.py: Added rendering for checkboxes and radio buttons. 2007-08-08 Sascha L. Teichmann * tools/formed/test-data/simple.xml: Added some descriptions * tools/formed/formed/model/data.py: set attributes in constructors directly. * tools/formed/formed/model/nodecomponents.py: Added description attribute in the NodeComponent base class. * tools/formed/formed/plugins/web/plugin.py: Render description as legend in fieldset for GroupNodes. 2007-08-08 Sascha L. Teichmann * tools/formed/formed/plugins/web/plugin.py: make UTF-8 output work. 2007-08-08 Sascha L. Teichmann * tools/formed/formed/model/data.py: Added get/setText() method * tools/formed/formed/plugins/web/plugin.py: Added a first version of a recursive HTML renderer based on the document tree. 2007-08-08 Sascha L. Teichmann * tools/formed/formed/plugins/*: New: plug-in infrastructure. * tools/formed/formed/plugins/web/*: new: A simple web server which is intended to serve pages of the current formular. * tools/formed/formed/main.py: start the plug-ins * tools/formed/formed/config.py: configuration class. Used for the plug-ins. 2007-08-08 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Fixed broadcasting issue with zero length tree paths. * tools/formed/formed/model/misc.py: New: contains a class for generating unique ids. * tools/formed/formed/main.py: Added an instance of an unique id generator for naming of new made tree items. 2007-08-07 Sascha L. Teichmann * tools/formed/formed/main.py: Added event route document -> attribute table to get informed when selected item is delete or an attribute is changed from the outside. * tools/formed/formed/ui/controls.py: Fixed. In older versions of wxPython 2.6.x ListCtrl.InsertStringItem takes 2 instead of 3 argument. Uses icons+tooltips for tree navigation now. 2007-08-07 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Set name attribute in base class. * tools/formed/formed/io/document.py: Added a table names -> classes. * tools/formed/formed/main.py: Added a toolbar. Added code to create and delete tree items. * tools/formed/formed/ui/controls.py: Added code to insert and delete new tree items. 2007-08-07 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Fixed event broadcasting for attribute changes. * tools/formed/formed/ui/controls.py: Add a list/table control to edit the attributes of a selected item. * tools/formed/formed/main.py: Added code to bind the new list/table control. 2007-08-06 Sascha L. Teichmann * tools/formed/formed/main.py: Added event routes to move items in and out of groups. * tools/formed/formed/ui/controls.py: Added code to move items in and out of groups. 2007-08-06 Sascha L. Teichmann * tools/formed/formed/model/nodecomponents.py: Fixed path calculation to root and event broadcasting * tools/formed/formed/io/factories.py: Adjust to new event broadcasting. * tools/formed/formed/main.py: Added code to move items up and down the document tree. * tools/formed/formed/ui/controls.py: Establish sort order by indices of children in parent instead of alphanum. Code to move items up and down the document tree. * tools/formed/formed/io/document.py: Added missing imports. 2007-08-06 Sascha L. Teichmann * tools/formed/formed.py: Added to avoid problems with ambiguous absolute module names. Thanks to Bernhard Herzog * tools/formed/formed.sh: Starts formed.py now * tools/formed/formed/main.py, tools/formed/formed/ui/controls.py: Added control to move items around in tree. Has no effect by now. 2007-08-05 Sascha L. Teichmann * tools/formed/formed/io/parser.py: Adjusted style * tools/formed/formed/io/document.py, tools/formed/formed/io/factories.py: Simplified factory model for XML loading. 2007-08-05 Sascha L. Teichmann * ChangeLog: started ChangeLog * tools/formed/*: initial check-in of the Formular Editor. Not working yet. Only can load, view and store formular XML files. Start it with 'tools/formed/formed.sh'.