/[formed]/trunk/ChangeLog
ViewVC logotype

Diff of /trunk/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 215 by teichmann, Wed Nov 7 11:52:47 2007 UTC revision 399 by frank, Mon Sep 20 14:51:38 2010 UTC
# Line 1  Line 1 
1  2007-11-07      Frank Koormann <[email protected]>  2010-09-20  Frank Koormann   <[email protected]>
2    
3            * formed/formed/plugins/export/latex.py (RecursiveExporter):
4            Add "required"-field information to output and include
5            choice list contents.
6    
7    2010-09-16  Bernhard Herzog  <[email protected]>
8    
9            Avoid database deadlocks that can happen when database clients try
10            to work with the same case using two separate database
11            connections.  See mpuls/issue1145 for details.
12    
13            * formed/formed/plugins/export/rg_sql.py (SQL_TEMPLATE): Split the
14            computation of the new json structure description into the new
15            database function compute_case_structure
16            (TRIGGER_TMPL): Change the trigger functions to immediately update
17            the cached json structure description instead of just setting the
18            modified flag.  This avoids the lazy recomputation that makes what
19            seems like a read-only access (calling get_case_structure) into a
20            writing access (updates of the cache).  The writes lock the row in
21            the case_structure table which prevent other connections from
22            accessing the same case.  As part of this, the delete triggers are
23            now AFTER triggers because the repeat groups instance must have
24            been removed when the structure is recomputed.
25            (SUBSELECT_TMPL): Since the delete trigger is now an after
26            trigger, we need to change the way the master id is computed.  We
27            cannot join with the repeatgroup table in question because the row
28            has already been deleted.  However, we can use the master_id
29            column of the OLD row to select the row of the parent table.
30            (create_triggers): Avoid the inner joins with the current repeat
31            group for the above mentioned reasons.  In the very common case of
32            repeat groups which are direct children of the master_tbl, we can
33            compare the master_tbl.id directly with the row's master_id.
34    
35    2010-09-14 Roland Geider <[email protected]>
36    
37            * formed/formed/plugins/export/xsd.py: issue1131: update XSD for new
38              formedtree structure
39    
40    2010-09-01 Roland Geider <[email protected]>
41    
42            * formed/formed/plugins/modify/rules.py: issue1050: mandatory fields
43              appearing double.
44              The problem was that the way the formEditor handled fields with
45              manually created rules changed. Instead of ignoring fields (very
46              early behaviour) or always generating them (early behaviour), now the
47              formED will only ignore fields with rules which name starts with
48              'required-rule-manual'. This is helpful when the rules for mandatory
49              fields are more complex (e.g. mother's name is only required if
50              mother is known).
51    
52    2010-08-10  Torsten Irländer <[email protected]>
53    
54            * contrib/diff_formed.py: New helperscript to diff to given
55              formedtrees
56    
57    2010-08-09      Roland Geider <[email protected]>
58    
59            * formed/model/exprtree.py: fixed typo
60    
61    2010-08-04  Bernhard Herzog  <[email protected]>
62    
63            * formed/po/de_DE.po: Update translations
64    
65    2010-08-04  Bernhard Herzog  <[email protected]>
66    
67            * formed/po/formed.pot: Regenerated.
68    
69            * formed/po/de_DE.po: Update.
70    
71    2010-08-04  Bernhard Herzog  <[email protected]>
72    
73            * formed/po/Makefile: Use correct filename of the pot-file in the
74            usage message
75    
76    2010-08-04  Bernhard Herzog  <[email protected]>
77    
78            * formed/po/Makefile (LIST_POTFILES): Sort the file names to make
79            the order of entries in the .pot-file more predictable.
80    
81    2010-08-04  Bernhard Herzog  <[email protected]>
82    
83            * formed/formed/model/nodecomponents.py (RootNode.__init__)
84            (RootNode.getVersion, RootNode.setVersion): Add attribute
85            "version" and accessor methods.
86    
87            * formed/formed/main.py (MainFrame.OnSetDocumentVersion): New. Let
88            the user set the document version.
89            (MainFrame._createMenuBar): Add menu item for OnSetDocumentVersion
90    
91    2010-08-02  Bernhard Herzog  <[email protected]>
92    
93            * formed/formed.py, formed/formed/io/document.py,
94            formed/formed/io/factories.py, formed/formed/io/parser.py,
95            formed/formed/model/data.py, formed/formed/model/event.py,
96            formed/formed/model/expr.py, formed/formed/model/exprtree.py,
97            formed/formed/model/memory.py, formed/formed/model/misc.py,
98            formed/formed/model/nodecomponents.py,
99            formed/formed/model/persistent.py: Fix coding declaration to be
100            acceptable to both python and Emacs.
101    
102    2010-07-29  Torsten Irländer <[email protected]>
103    
104            * formed/formed/model/data.py: Added "invisible" attribute to
105            BoolLeafs. This can be used to hide options in choicelists. so the
106            user can not select the value in the user interface. But the db will
107            have this option so is ist still present in the db an can be used
108            * formed/formed/model/exprtree.py: Added "days" function.
109    
110    2010-07-26      Roland Geider <[email protected]>
111    
112            * formed/formed/model/nodecomponents.py,
113              formed/formed/plugins/modify/rules.py: generated date rules take
114              into consideration repeat groups
115    
116    2010-07-21  Torsten Irländer <[email protected]>
117    
118            Issue870
119    
120            * formed/formed/plugins/modify/rules.py (descriptions): Do not collect
121            all headers to the referenced fields. Only list labels of the error
122            fields, which should be distinct enough.
123    
124            Issue851
125    
126            * formed/formed/model/data.py
127              formed/formed/plugins/export/new_sql.py
128              formed/formed/plugins/web/view_renderer.py
129              formed/formed/io/document.py
130              formed/formed/config.py: Added Float-Field to Formed
131    
132    2010-06-11  Bernhard Herzog  <[email protected]>
133    
134            * formed/formed/plugins/export/rg_sql.py
135            (CREATE_DELETE_MASTER_TMPL): In create_master_tbl, call
136            create_master_ds to create the master tbl entry.  This way we can
137            add SQL code that's specific to an MPuls instance to
138            create_master_ds and still have create_master_tbl use that new
139            code.  This is useful for e.g. the JMD-Struktur part.
140    
141    2010-06-02      Roland Geider <[email protected]>
142    
143            * formed/formed/plugins/modify/rules.py: make the names of generated
144              date-sequence-rules unique
145    
146    2010-06-02      Roland Geider <[email protected]>
147    
148            * formed/plugins/export/xls.py: updated regular expression
149    
150    2010-05-17      Frank Koormann <[email protected]>
151    
152            * formed/formed/plugins/export/latex.py: Improved section labeling.
153    
154            * formed/formed/plugins/export/xls.py:
155              Export references (ie where are the lists used).
156    
157    2010-04-30  Torsten Irländer <[email protected]>
158    
159            * formed/formed/plugins/modify/rules.py (VariableType.substitute): Do
160            not generate "%"-rules for required fields in repeat-groups.
161    
162    2010-04-28      Roland Geider <[email protected]>
163    
164            * formed/plugins/export/xls.py: Radiogroups are exported
165            * formed/plugins/export/xsd.py: WASKA formedtree.xml validates XSD
166              JMD formedtree.xml validates XSD
167    
168    2010-04-08  Torsten Irländer <[email protected]>
169    
170            * formed/formed/plugins/modify/rules.py
171            (GenerateRequiredRules.generateDateSequenceRules): Add error mark to
172            rules. Generete each rule twice to be able to render errors at both
173            datefields.
174    
175    2010-04-07  Torsten Irländer <[email protected]>
176    
177            * formed/formed/plugins/export/rg_sql.py: Added "Revision"-Tag.
178    
179    2010-04-06  Torsten Irländer <[email protected]>
180    
181            * formed/formed/io/document.py (_toXML): Added comment with
182            "$Revision"-tag. This tag will/can then be substituted by the VCS.
183            * formed/formed/plugins/export/new_sql.py
184            (ExportAsSQLFilter.doExport): Added comment with
185            "$Revision"-tag. This tag will/can then be substituted by the VCS.
186            * formed/formed/model/exprtree.py: Added years operator.
187    
188    2010-03-30      Roland Geider <[email protected]>
189    
190            * formed/formed/plugins/export/latex.py: Added filter
191    
192    2010-03-25      Roland Geider <[email protected]>
193    
194            * formed/formed/plugins/export/xsd.py: Generate valid XML
195    
196    2010-02-11      Frank Koormann <[email protected]>
197    
198            * formed/formed/plugins/export/xls.py: Allow groups in choices.
199    
200    2009-12-02      Torsten Irländer <[email protected]>
201    
202            * formed/formed/plugins/export/typemap.py: do not ignore conditional
203              nodes on traversal.
204    
205    2009-11-17      Sascha L. Teichmann <[email protected]>
206    
207            * formed/formed/model/exprtree.py: Recognize '%' vars
208              in compilation. Does not eval it!
209    
210            * formed/formed/plugins/modify/rules.py: Generate '%' vars
211              for variables in repeat groups.
212    
213    2009-11-13      Sascha L. Teichmann <[email protected]>
214    
215            * formed/formed/plugins/export/typemap.py: Fixed to work
216            with new repeat group nodes.
217    
218    2009-10-28      Sascha L. Teichmann <[email protected]>
219    
220            * formed/formed/plugins/export/xsd.py,
221            formed/formed/plugins/export/sql.py,
222            formed/formed/plugins/export/new_sql.py: Allow groups in choices.
223    
224    2009-10-07      Frank Koormann <[email protected]>
225    
226            * formed/formed/plugins/export/latex.py:
227            Adjusted textprocessing to escape tex-active characters.
228    
229    2009-10-07      Sascha L. Teichmann <[email protected]>
230    
231            * formed/formed/plugins/export/html.py, formed/formed/plugins/export/latex.py,
232            formed/formed/plugins/export/html2.py: Adjusted to cope with
233            "semi-complete" implementation of logbook tree structure.
234    
235    2009-06-18      Torsten Irländer <[email protected]>
236    
237            * formed/formed/plugins/export/new_sql.py,
238              formed/formed/plugins/export/rg_sql.py: Fixed some sql errors, and
239              added permissions.
240    
241    2009-06-18      Torsten Irländer <[email protected]>
242    
243            * formed/formed/plugins/export/new_sql.py: Commented out generation of
244            page_views, as they do not work with rgroups.
245    
246    2009-06-17      Torsten Irländer <[email protected]>
247    
248            * formed/formed/plugins/export/new_sql.py: Fixed anonymize function
249            and rolenames.
250    
251    2009-06-17      Sascha L. Teichmann <[email protected]>
252    
253            * formed/formed/plugins/export/new_sql.py: s/-/_/ in relation names.
254    
255    2009-05-26      Sascha L. Teichmann <[email protected]>
256    
257            * formed/formed/plugins/names/filter.py: small optimization.
258    
259    2009-05-26      Sascha L. Teichmann <[email protected]>
260    
261            * formed/formed/plugins/names/filter.py: Repaired unique filter for
262              nodecomponent names.
263    
264    2009-05-06      Sascha L. Teichmann <[email protected]>
265    
266            * formed/formed/plugins/export/rg_sql.py: Only create depending
267              repeat groups if no uuid is given. If a uuid is given then
268              the creation is triggered by an xml import.
269    
270    2009-04-28      Sascha L. Teichmann <[email protected]>
271    
272            * formed/formed/plugins/export/new_sql.py: New SQL schema generator to
273              replace the old one. The new one faciliates the new RepeatNode instead
274              of the Group.isRepeat() method to tell if something is to be repeated.
275    
276            * formed/formed/config.py: Use new SQL schema generator plug-in by default.
277              The old one is deactivated.
278    
279            * formed/formed/plugins/export/rg_sql.py: Fix 'rg_' naming of repeat groups.
280    
281    2009-04-28      Sascha L. Teichmann <[email protected]>
282    
283            * formed/formed/plugins/export/rg_sql.py: Added delete functions.
284              TODO: Adjust execution rights.
285    
286    2009-04-27      Sascha L. Teichmann <[email protected]>
287    
288            * formed/formed/plugins/export/rg_sql.py: Fixed $$$$ -> $$ template problems.
289              Add functions to create dataset.
290    
291    2009-04-24      Sascha L. Teichmann <[email protected]>
292    
293            * formed/formed/plugins/export/rg_sql.py: new plug-in to generate
294              tree structure functions in database.
295    
296            * formed/formed/config.py: load plug-in.
297    
298    2009-04-16      Sascha L. Teichmann <[email protected]>
299    
300            * formed/formed/model/data.py: Added 'digest' attribute to
301              RepeatNode. Removed needless methods
302    
303    2009-04-16      Sascha L. Teichmann <[email protected]>
304    
305            * formed/formed/model/exprtree.py: make 'equal' and 'not equal'
306              more readable with '=' and '<>'.
307    
308    2009-04-02      Sascha L. Teichmann <[email protected]>
309    
310            * formed/formed/plugins/export/sql.py: call anonymization
311              of uuid on anonymization of case.
312    
313    2009-03-31      Sascha L. Teichmann <[email protected]>
314    
315            * formed/formed/plugins/export/sql.py: Set uuid_id to NULL in
316              case_anonymize().
317    
318    2009-03-31      Sascha L. Teichmann <[email protected]>
319    
320            * formed/formed/model/exprtree.py: Add some code to pretty print
321              the trees infix.
322    
323            * formed/formed/plugins/export/rules.py: New. Exporter for human
324              readable rules.
325    
326            * formed/formed/plugins/export/html.py: Fixed HTML generation.
327    
328            * formed/formed/config.py: Added new new Rule export plug-in.
329    
330    2009-03-31      Sascha L. Teichmann <[email protected]>
331    
332            * formed/formed/model/exprtree.py: Fixes from server. Raise
333              exceptions if there is less or more than one element on stack
334              after compilation of expression.
335    
336    2009-03-20      Sascha L. Teichmann <[email protected]>
337    
338            * formed/formed/model/data.py: Removed debug output
339    
340            * formed/formed/plugins/modify/rules.py: Fixed error message.
341              Generate past and future rules.
342    
343    2009-03-16      Sascha L. Teichmann <[email protected]>
344    
345            * formed/formed/model/exprtree.py: Forget to call today with context.
346    
347    2009-03-16      Sascha L. Teichmann <[email protected]>
348    
349            * formed/formed/io/document.py: Fixed syntax typo.
350    
351    2009-03-16      Sascha L. Teichmann <[email protected]>
352    
353            * formed/formed/model/data.py: ConditionalNode inherits from Node directly.
354    
355    2009-03-16      Sascha L. Teichmann <[email protected]>
356    
357            * formed/formed/model/data.py: Added ConditionalNode
358    
359            * formed/formed/io/document.py: Make ConditionalNode loadable.
360    
361    2009-03-13      Sascha L. Teichmann <[email protected]>
362    
363            * formed/formed/plugins/modify/rules.py: Make the error descriptions
364              in date sequence rules more precise.
365    
366    2009-03-13      Sascha L. Teichmann <[email protected]>
367    
368            * formed/formed/plugins/modify/rules.py: generate date sequence rules.
369    
370    2009-03-13      Sascha L. Teichmann <[email protected]>
371    
372            * formed/formed/model/exprtree.py: New tree based expression engine.
373    
374            * formed/formed/model/__init__.py, formed/formed/model/data.py:
375              Adjusted imports.
376    
377    2009-03-12      Torsten Irländer <[email protected]>
378    2009-06-17      Sascha L. Teichmann <[email protected]>
379    
380            * formed/formed/plugins/export/new_sql.py: s/-/_/ in relation names.
381    
382    2009-05-26      Sascha L. Teichmann <[email protected]>
383    
384            * formed/formed/plugins/names/filter.py: small optimization.
385    
386    2009-05-26      Sascha L. Teichmann <[email protected]>
387    
388            * formed/formed/plugins/names/filter.py: Repaired unique filter for
389              nodecomponent names.
390    
391    2009-05-06      Sascha L. Teichmann <[email protected]>
392    
393            * formed/formed/plugins/export/rg_sql.py: Only create depending
394              repeat groups if no uuid is given. If a uuid is given then
395              the creation is triggered by an xml import.
396    
397    2009-04-28      Sascha L. Teichmann <[email protected]>
398    
399            * formed/formed/plugins/export/new_sql.py: New SQL schema generator to
400              replace the old one. The new one faciliates the new RepeatNode instead
401              of the Group.isRepeat() method to tell if something is to be repeated.
402    
403            * formed/formed/config.py: Use new SQL schema generator plug-in by default.
404              The old one is deactivated.
405    
406            * formed/formed/plugins/export/rg_sql.py: Fix 'rg_' naming of repeat groups.
407    
408    2009-04-28      Sascha L. Teichmann <[email protected]>
409    
410            * formed/formed/plugins/export/rg_sql.py: Added delete functions.
411              TODO: Adjust execution rights.
412    
413    2009-04-27      Sascha L. Teichmann <[email protected]>
414    
415            * formed/formed/plugins/export/rg_sql.py: Fixed $$$$ -> $$ template problems.
416              Add functions to create dataset.
417    
418    2009-04-24      Sascha L. Teichmann <[email protected]>
419    
420            * formed/formed/plugins/export/rg_sql.py: new plug-in to generate
421              tree structure functions in database.
422    
423            * formed/formed/config.py: load plug-in.
424    
425    2009-04-16      Sascha L. Teichmann <[email protected]>
426    
427            * formed/formed/model/data.py: Added 'digest' attribute to
428              RepeatNode. Removed needless methods
429    
430    2009-04-16      Sascha L. Teichmann <[email protected]>
431    
432            * formed/formed/model/exprtree.py: make 'equal' and 'not equal'
433              more readable with '=' and '<>'.
434    
435    2009-04-02      Sascha L. Teichmann <[email protected]>
436    
437            * formed/formed/plugins/export/sql.py: call anonymization
438              of uuid on anonymization of case.
439    
440    2009-03-31      Sascha L. Teichmann <[email protected]>
441    
442            * formed/formed/plugins/export/sql.py: Set uuid_id to NULL in
443              case_anonymize().
444    
445    2009-03-31      Sascha L. Teichmann <[email protected]>
446    
447            * formed/formed/model/exprtree.py: Add some code to pretty print
448              the trees infix.
449    
450            * formed/formed/plugins/export/rules.py: New. Exporter for human
451              readable rules.
452    
453            * formed/formed/plugins/export/html.py: Fixed HTML generation.
454    
455            * formed/formed/config.py: Added new new Rule export plug-in.
456    
457    2009-03-31      Sascha L. Teichmann <[email protected]>
458    
459            * formed/formed/model/exprtree.py: Fixes from server. Raise
460              exceptions if there is less or more than one element on stack
461              after compilation of expression.
462    
463    2009-03-20      Sascha L. Teichmann <[email protected]>
464    
465            * formed/formed/model/data.py: Removed debug output
466    
467            * formed/formed/plugins/modify/rules.py: Fixed error message.
468              Generate past and future rules.
469    
470    2009-03-16      Sascha L. Teichmann <[email protected]>
471    
472            * formed/formed/model/exprtree.py: Forget to call today with context.
473    
474    2009-03-16      Sascha L. Teichmann <[email protected]>
475    
476            * formed/formed/io/document.py: Fixed syntax typo.
477    
478    2009-03-16      Sascha L. Teichmann <[email protected]>
479    
480            * formed/formed/model/data.py: ConditionalNode inherits from Node directly.
481    
482    2009-03-16      Sascha L. Teichmann <[email protected]>
483    
484            * formed/formed/model/data.py: Added ConditionalNode
485    
486            * formed/formed/io/document.py: Make ConditionalNode loadable.
487    
488    2009-03-13      Sascha L. Teichmann <[email protected]>
489    
490            * formed/formed/plugins/modify/rules.py: Make the error descriptions
491              in date sequence rules more precise.
492    
493    2009-03-13      Sascha L. Teichmann <[email protected]>
494    
495            * formed/formed/plugins/modify/rules.py: generate date sequence rules.
496    
497    2009-03-13      Sascha L. Teichmann <[email protected]>
498    
499            * formed/formed/model/exprtree.py: New tree based expression engine.
500    
501            * formed/formed/model/__init__.py, formed/formed/model/data.py:
502              Adjusted imports.
503    
504    2009-03-12      Torsten Irländer <[email protected]>
505    2009-06-17      Sascha L. Teichmann <[email protected]>
506    
507            * formed/formed/plugins/export/new_sql.py: s/-/_/ in relation names.
508    
509    2009-05-26      Sascha L. Teichmann <[email protected]>
510    
511            * formed/formed/plugins/names/filter.py: small optimization.
512    
513    2009-05-26      Sascha L. Teichmann <[email protected]>
514    
515            * formed/formed/plugins/names/filter.py: Repaired unique filter for
516              nodecomponent names.
517    
518    2009-05-06      Sascha L. Teichmann <[email protected]>
519    
520            * formed/formed/plugins/export/rg_sql.py: Only create depending
521              repeat groups if no uuid is given. If a uuid is given then
522              the creation is triggered by an xml import.
523    
524    2009-04-28      Sascha L. Teichmann <[email protected]>
525    
526            * formed/formed/plugins/export/new_sql.py: New SQL schema generator to
527              replace the old one. The new one faciliates the new RepeatNode instead
528              of the Group.isRepeat() method to tell if something is to be repeated.
529    
530            * formed/formed/config.py: Use new SQL schema generator plug-in by default.
531              The old one is deactivated.
532    
533            * formed/formed/plugins/export/rg_sql.py: Fix 'rg_' naming of repeat groups.
534    
535    2009-04-28      Sascha L. Teichmann <[email protected]>
536    
537            * formed/formed/plugins/export/rg_sql.py: Added delete functions.
538              TODO: Adjust execution rights.
539    
540    2009-04-27      Sascha L. Teichmann <[email protected]>
541    
542            * formed/formed/plugins/export/rg_sql.py: Fixed $$$$ -> $$ template problems.
543              Add functions to create dataset.
544    
545    2009-04-24      Sascha L. Teichmann <[email protected]>
546    
547            * formed/formed/plugins/export/rg_sql.py: new plug-in to generate
548              tree structure functions in database.
549    
550            * formed/formed/config.py: load plug-in.
551    
552    2009-04-16      Sascha L. Teichmann <[email protected]>
553    
554            * formed/formed/model/data.py: Added 'digest' attribute to
555              RepeatNode. Removed needless methods
556    
557    2009-04-16      Sascha L. Teichmann <[email protected]>
558    
559            * formed/formed/model/exprtree.py: make 'equal' and 'not equal'
560              more readable with '=' and '<>'.
561    
562    2009-04-02      Sascha L. Teichmann <[email protected]>
563    
564            * formed/formed/plugins/export/sql.py: call anonymization
565              of uuid on anonymization of case.
566    
567    2009-03-31      Sascha L. Teichmann <[email protected]>
568    
569            * formed/formed/plugins/export/sql.py: Set uuid_id to NULL in
570              case_anonymize().
571    
572    2009-03-31      Sascha L. Teichmann <[email protected]>
573    
574            * formed/formed/model/exprtree.py: Add some code to pretty print
575              the trees infix.
576    
577            * formed/formed/plugins/export/rules.py: New. Exporter for human
578              readable rules.
579    
580            * formed/formed/plugins/export/html.py: Fixed HTML generation.
581    
582            * formed/formed/config.py: Added new new Rule export plug-in.
583    
584    2009-03-31      Sascha L. Teichmann <[email protected]>
585    
586            * formed/formed/model/exprtree.py: Fixes from server. Raise
587              exceptions if there is less or more than one element on stack
588              after compilation of expression.
589    
590    2009-03-20      Sascha L. Teichmann <[email protected]>
591    
592            * formed/formed/model/data.py: Removed debug output
593    
594            * formed/formed/plugins/modify/rules.py: Fixed error message.
595              Generate past and future rules.
596    
597    2009-03-16      Sascha L. Teichmann <[email protected]>
598    
599            * formed/formed/model/exprtree.py: Forget to call today with context.
600    
601    2009-03-16      Sascha L. Teichmann <[email protected]>
602    
603            * formed/formed/io/document.py: Fixed syntax typo.
604    
605    2009-03-16      Sascha L. Teichmann <[email protected]>
606    
607            * formed/formed/model/data.py: ConditionalNode inherits from Node directly.
608    
609    2009-03-16      Sascha L. Teichmann <[email protected]>
610    
611            * formed/formed/model/data.py: Added ConditionalNode
612    
613            * formed/formed/io/document.py: Make ConditionalNode loadable.
614    
615    2009-03-13      Sascha L. Teichmann <[email protected]>
616    
617            * formed/formed/plugins/modify/rules.py: Make the error descriptions
618              in date sequence rules more precise.
619    
620    2009-03-13      Sascha L. Teichmann <[email protected]>
621    
622            * formed/formed/plugins/modify/rules.py: generate date sequence rules.
623    
624    2009-03-13      Sascha L. Teichmann <[email protected]>
625    
626            * formed/formed/model/exprtree.py: New tree based expression engine.
627    
628            * formed/formed/model/__init__.py, formed/formed/model/data.py:
629              Adjusted imports.
630    
631    2009-03-12      Torsten Irländer <[email protected]>
632    
633            Introduced new order attribute for date fields
634    
635            * formed/formed/model/data.py: Order fields can be used to define to
636            ordering of datefields withing the document. Needed for automatic
637            generation of consistency rules.
638    
639    2009-02-09      Sascha L. Teichmann <[email protected]>
640    
641            * formed/formed/model/data.py: Allow pages to be 'invisible'.
642    
643    2009-02-09      Sascha L. Teichmann <[email protected]>
644    
645            * formed/formed/plugins/export/sql.py: Fixed problem with
646              description reference tables of radio groups.
647    
648    2009-02-09      Sascha L. Teichmann <[email protected]>
649    
650            * formed/formed/plugins/export/sql.py: replace '-' in names
651              by '_'.
652              
653    2009-02-09      Sascha L. Teichmann <[email protected]>
654    
655            * formed/formed/plugins/export/sql.py: to figure ou which
656              tables are equal the insert statememnts are lower cased
657              and sorted before they are compared. This reduces the number
658              of generated referfence tables.
659    
660    2009-02-09      Sascha L. Teichmann <[email protected]>
661    
662            Repair SQL schema creation for radio groups.
663    
664            * formed/formed/plugins/export/sql.py: radio groups are handled
665              like choices now.
666    
667    2009-02-09      Sascha L. Teichmann <[email protected]>
668    
669            Make it startable again.
670    
671            * formed/formed/plugins/export/xls.py: Import pyExcelerator only
672              when plug-in is called.
673    
674            * formed/formed/model/nodecomponents.py: Event routing was messed up.
675              Rewired root node with document.
676    
677            * formed/formed/plugins/web/help.py: Removed old xml.ext import.
678              XXX: This breaks creating help by now!
679    
680            * formed/formed/io/parser.py: Replace old deprecated base class
681              by new one.
682    
683            * formed/formed/main.py: Do not crash if locale cannot be set.
684    
685            * formed/formed/ui/controls.py: Use document.getCase() instead
686              of document.case to prevent uninitialized dereferences.
687    
688    2009-01-22      Torsten Irländer <[email protected]>
689    
690            Implemented new XML-Format for formed xml files.
691    
692            * formed/formed/model/nodecomponents.py,
693              formed/formed/io/document.py,
694              formed/formed/main.py,
695              formed/formed/ui/controls.py: Introduced new "case" and "logbook"
696              node. Under case is the definition of the formular. logbook will
697              hold the defintion of logboog entrys. For now only the part under
698              "case" can be modified.  
699    
700    2009-01-21      Torsten Irländer <[email protected]>
701    
702            Changed way how XSD-Scheme is generated
703    
704            * formed/formed/plugins/export/xsd.py: Enhanced xsd schema to support
705              logbookentrys. The scheme definiton is now hardcoded in the
706              exporter as it will rarely change. It logbookpart will not be
707              generated from the formedtree anymore.
708    
709    2009-01-20      Torsten Irländer <[email protected]>
710    
711            Support Logbook entrys in xsd schema export
712    
713            * formed/formed/model/data.py: Repeatnode are now handeld as
714              repeatgroups in xsd-export
715            * formed/formed/plugins/export/xsd.py: Enhanced xsd schema to support
716              logbookentrys. The scheme will now validate against an xmlfile from
717              the offlineclient.
718    
719    2009-01-09      Torsten Irländer <[email protected]>
720    
721            Added new repeat node
722    
723            * formed/formed/model/data.py,
724              formed/formed/io/document.py: Added repeatnode to the formedtree.
725              TODO: Remove repeatgroup handling from the groupnode.
726    
727    2009-01-08      Torsten Irländer <[email protected]>
728    
729            Add isset operator to autogenerated rules.
730    
731            * formed/formed/plugins/modify/rules.py: Add issed operator to standard
732              autogenerated rules.
733    
734    2008-12-17      Frank Koormann <[email protected]>
735    
736            * formed/formed/plugins/export/latex.py: Export form as set of
737            latex tables to be included into a master document. The export
738            generates section marks to structure the form and placeholders for
739            help texts to be merged in by a post processing step.
740    
741    2008-12-04      Sascha L. Teichmann <[email protected]>
742    
743            * formed/formed/model/expr.py: Added 'today' which pushes the current date
744              on the stack.
745    
746    2008-12-03      Sascha L. Teichmann <[email protected]>
747    
748            * formed/formed/plugins/web/controllers.py: compute changeset more correctly in
749              storage of fields.
750    
751            * formed/formed/plugins/export/xsd.py: Added unknown int -999999 to integer
752              fields as an accepted value. Generate schema for radio groups too.
753    
754    2008-12-01      Torsten Irländer <[email protected]>
755    
756            Added autmatic generation of required rules
757    
758            * formed/formed/model/data.py,
759              formed/formed/model/expr.py,
760              formed/formed/plugins/modify/rules.py: Default rules for required
761              fields can now be generated.
762    
763    2008-11-28      Sascha L. Teichmann <[email protected]>
764    
765            * formed/formed/model/data.py, formed/formed/model/nodecomponents.py:
766              Ported WidgetCollector from Offline client.
767    
768            * formed/formed/plugins/modify/__init__.py, formed/formed/plugins/modify,
769              formed/formed/plugins/modify/rules.py: Stub for required rules generator.
770    
771            * formed/formed/config.py: Bind new filter to FormEd
772    
773    2008-11-27      Torsten Irländer <[email protected]>
774    
775            * formed/formed/model/data.py: Added new attribute mark for rules
776    
777    2008-11-10      Torsten Irländer <[email protected]>
778    
779            Implemented radio-matrix elements. radio elelement having the same
780            options can now be rendered in table form.
781    
782            * formed/formed/model/data.py,
783              formed/formed/io/document.py: Added new radio-matrix element to the
784              model and gui
785            * formed/formed/plugins/web/view_renderer.py: Write html-renderer for
786              the radio-matrix element.
787    
788    2008-11.03      Torsten Irländer <[email protected]>
789    
790            * formed/formed/model/data.py: Fixed import error
791    
792    2008-10-29      Sascha L. Teichmann <[email protected]>
793    
794            Relative paths in external choices are now possible. Relative paths are
795            relative to path of the master document.
796    
797            * formed/model/data.py: external choice are now storing the path to the
798              master document.
799    
800            * formed/formed/io/document.py: Pass context to SAX builder.
801    
802            * formed/formed/io/factories.py: For new created nodes look if there
803              is a method 'setLoadContext' and call it.
804    
805    2008-09-04      Sascha L. Teichmann <[email protected]>
806    
807            * doc/beschreibung.txt: New. Initial description of FormEd (german).
808    
809    2008-08-22      Sascha L. Teichmann <[email protected]>
810    
811            * formed/formed/model/nodecomponents.py: Added attribute 'flags'.
812    
813    2008-08-21      Sascha L. Teichmann <[email protected]>
814    
815            * formed/formed/io/document.py: Indent tree while saving
816            * formed/formed/main.py: removed needless print
817    
818    2008-08-15      Sascha L. Teichmann <[email protected]>
819    
820            * LICENSE: New GPLv3
821            * */*.py, *.sh: Added reference to LICENSE
822    
823    2008-08-15      Sascha L. Teichmann <[email protected]>
824    
825            * tools: removed because there a no tools any more.
826    
827    2008-08-15      Sascha L. Teichmann <[email protected]>
828    
829            * tools/formed: moved one level up because its the only
830              part of this project now.
831    
832    2008-08-15      Sascha L. Teichmann <[email protected]>
833    
834            * tools/anonym/*: Removed as it belongs to mpuls WASKA
835    
836    2008-08-15      Sascha L. Teichmann <[email protected]>
837    
838            * pdf2xfa/*: removed. It belongs to mpuls
839    
840    2008-08-13 L. Teichmann <[email protected]>
841    
842            i18n of the plug-ins:
843            * tools/formed/formed/plugins/export/diff.py,
844              tools/formed/formed/plugins/export/data.py,
845              tools/formed/formed/plugins/export/old_sql.py,
846              tools/formed/formed/plugins/export/latex.py,
847              tools/formed/formed/plugins/export/xsd.py,
848              tools/formed/formed/plugins/export/sql.py,
849              tools/formed/formed/plugins/export/typemap.py,
850              tools/formed/formed/plugins/export/html.py,
851              tools/formed/formed/plugins/export/mode.py,
852              tools/formed/formed/plugins/export/html2.py,
853              tools/formed/formed/plugins/export/xls.py,
854              tools/formed/formed/plugins/names/filter.py,
855              tools/formed/formed/plugins/plugin.py,
856              tools/formed/formed/plugins/web/help.py,
857              tools/formed/formed/plugins/web/form_renderer.py,
858              tools/formed/formed/plugins/web/plugin.py,
859              tools/formed/formed/plugins/web/error_renderer.py,
860              tools/formed/formed/plugins/web/view_renderer.py,
861              tools/formed/formed/plugins/web/semantic.py,
862              tools/formed/formed/plugins/web/cache.py,
863              tools/formed/formed/plugins/web/server.py,
864              tools/formed/formed/plugins/web/controllers.py,
865              tools/formed/formed/plugins/web/renderer.py,
866              tools/formed/formed/plugins/ui/controls.py,
867              tools/formed/formed/config.py: _("")s the stuff
868              tools/formed/po/formed.pot, tools/formed/po/de_DE.po:
869              extracted and translated.
870    
871    2008-08-08      Sascha L. Teichmann <[email protected]>
872    
873            First version of FormEd i18n. After checkout go to tools/formed/po/ and
874            say 'make mo'. Afterwards you can start FormEd as usual.
875    
876            * tools/formed/resources: New. Place to places ressources like *.mo files
877            * tools/formed/formed/main.py, tools/formed/formed/ui/controls.py: Add _("")s
878              
879            * tools/formed/po,
880              tools/formed/po/Makefile,
881              tools/formed/po/formed.pot,
882              tools/formed/po/de_DE.po: i18n stuff.
883    
884    2008-08-08      Sascha L. Teichmann <[email protected]>
885    
886            * tools/anonym/xmlexport.py: Only export cases which are not
887              'schwebend geloescht'.
888    
889    2008-07-23      Sascha L. Teichmann <[email protected]>
890    
891            Fixed issue472
892    
893            * tools/anonym/xmlimport.py: Regenerate dicts from current form ed tree.
894    
895    2008-07-17      Sascha L. Teichmann <[email protected]>
896    
897            * tools/anonym/xmlimport.py: removed marking of invalid cases
898            * tools/anonym/cron.importAnonXml.sh: re-inserted here.
899    
900    2008-07.07      Torsten Irländer <[email protected]>
901    
902            * tools/formed/formed/plugins/export/latex.py
903              tools/formed/formed/config.py: Added new LaTex Export. Beware this
904              is even more ugly the HTML Export.
905            * tools/formed/formed/plugins/export/html.py: Added information on
906              anonymisation to the html export.
907    
908    2008-07-07      Sascha L. Teichmann <[email protected]>
909    
910            * tools/anonym/xmlimport.py: Mark cases if they are inconsistent.
911    
912    2008-07-07      Sascha L. Teichmann <[email protected]>
913    
914            * tools/anonym/xmlimport.py: Updated to schema 1.5. (Which is incompatible to 1.4)
915    
916    2008-07-07      Sascha L. Teichmann <[email protected]>  
917            
918            * tools/formed/formed/plugins/export/html.py: Added additional column
919            to the html export with information how each field will get
920            anonymized.
921    
922    2008-07-07      Sascha L. Teichmann <[email protected]>  
923    
924            * tools/anonym/xmlimport.py: sync with productive version.
925    
926    2008-06-10      Torsten Irländer <[email protected]>
927    
928            * tools/formed/formed/plugins/export/sql.py: grant admin permission to
929              call anonymize function
930    
931    2008-05-21      Sascha L. Teichmann <[email protected]>  
932    
933            * tools/formed/formed/plugins/export/xsd.py: Brought encoding
934              back to UTF-8.
935    
936    2008-05-21      Frank Koormann <[email protected]>
937    
938            * tools/formed/formed/plugins/export/xls.py: New, export key value
939            tables as excel workbook with one sheet per table.
940    
941            * tools/formed/formed/config.py: ExportKeyValueTableAsXLS added.
942    
943    2008-05-21      Frank Koormann <[email protected]>
944    
945            * tools/formed/formed/plugins/export/xsd.py
946            (SchemaCreator._createChoice): Fix use of choices name.
947    
948    2008-04-29      Sascha L. Teichmann <[email protected]>
949    
950            * tools/formed/formed/plugins/export/xsd.py: Use substitution group
951              to allow arbitrary order of repeat groups.
952    
953    2008-04-29      Sascha L. Teichmann <[email protected]>
954    
955            * tools/formed/formed/plugins/export/xsd.py: Removed a needless
956              character.
957    
958    2008-04-29      Sascha L. Teichmann <[email protected]>
959    
960            * tools/formed/formed/plugins/export/xsd.py: Added annotations
961              to fields.
962    
963    2008-04-29      Sascha L. Teichmann <[email protected]>
964    
965            * tools/formed/formed/plugins/export/xsd.py: Added for
966              choice fields.
967    
968    2008-04-29      Sascha L. Teichmann <[email protected]>
969    
970            * tools/formed/formed/plugins/export/xsd.py: Added support for
971              boolean fields based on enumerations.
972    
973    2008-04-28      Sascha L. Teichmann <[email protected]>
974    
975            * tools/formed/formed/plugins/export/xsd.py: Added support for
976              date, text and textarea fields.
977    
978    2008-04-28      Sascha L. Teichmann <[email protected]>
979    
980            * tools/formed/formed/plugins/export/xsd.py: Added support for
981              repeat groups and integer fields.
982    
983    2008-04-28      Sascha L. Teichmann <[email protected]>
984    
985            * tools/formed/formed/plugins/export/xsd.py: New. plug-in for
986              exporting as XML schema. not ready, yet.
987    
988            * tools/formed/formed/config.py: Use new plug-in.
989    
990            * tools/formed/formed/plugins/export/sql.py: Fixed wrong GUI text.
991    
992    2008-04-17      Torsten Irländer <[email protected]>
993    
994            * tools/formed/formed/plugins/export/sql.py: Changed WHERE clause in
995            for the views because of the new group permissions.
996    
997    2008-04-09      Sascha L. Teichmann <[email protected]>
998    
999            * tools/anonym/cron.deleteOldAnonymized.sh: New. cron job to delete
1000              old anonymized cases.
1001    
1002    2008-04-01      Sascha L. Teichmann <[email protected]>
1003    
1004            * tools/anonym/xmlexport.py: Removed "WHERE einverstaendniserklaerung = 1"
1005              from clause to select datasets.
1006              Replace ']]>' in CDATA sections with correct splitted replacement.
1007    
1008    2008-03-12      Sascha L. Teichmann <[email protected]>
1009            
1010            * tools/anonym/cron.importAnonXml.sh: Added absolut path to  xmlimport
1011              script.
1012    
1013            * tools/anonym/xmlimport.py: commented out database port from
1014              connectionstring.
1015    
1016    2008-03-12      Sascha L. Teichmann <[email protected]>
1017    
1018            * tools/formed/formed/plugins/export/sql.py: Fixed bug in generation
1019              of anonymization of repeat groups (wrong id was given).
1020    
1021    2008-03-11      Sascha L. Teichmann <[email protected]>
1022    
1023            * tools/formed/formed/plugins/export/sql.py: Generate no update
1024              statements for relations which have no anonym functions applied.
1025    
1026    2008-03-11      Sascha L. Teichmann <[email protected]>
1027    
1028            * tools/formed/formed/plugins/export/sql.py: Added a newline after
1029              'COMMIT;' in the last line.
1030    
1031    2008-03-11      Sascha L. Teichmann <[email protected]>
1032    
1033            * tools/formed/formed/plugins/export/sql.py: Fixed syntax of
1034              generated anonymize_case() function.
1035              
1036    2008-03-11      Sascha L. Teichmann <[email protected]>
1037    
1038            * tools/formed/formed/plugins/export/sql.py: Added code to
1039              generate a plpgsql function anonymize_case() that anonymized
1040              a given case and all of its depending repeat groups.
1041    
1042    2008-03-06      Sascha L. Teichmann <[email protected]>
1043    
1044            * tools/anonym/xmlimport.py: remove print of insert statement.
1045    
1046            * tools/formed/formed/plugins/export/sql.py: Print generation date in ISO.
1047    
1048    2008-03-03      Torsten Irländer <[email protected]>
1049    
1050            * anonym/cron.sendAnonXml.sh,
1051              anonym/getDbList.sh: Modified script to be used directly in the
1052              production environment (Copied running scripts from production
1053              server)
1054    
1055            * cron.importAnonXml.sh: Added deleting of ols cases. Modified script
1056              to be used in a production environment (Cpoied running script from
1057              production server)
1058    
1059            * tools/anonym/xmlexport.py: Added "WHERE" clause to SQL-Statement to
1060              ensure that only valid cases get exported
1061    
1062    2008-02-27      Sascha L. Teichmann <[email protected]>
1063    
1064            * tools/anonym/xmlimport.py: Fixed bug in date converter.
1065    
1066    2008-02-27      Sascha L. Teichmann <[email protected]>
1067    
1068            * tools/anonym/xmlimport.py: Simpilied version
1069    
1070    2008-02-27      Sascha L. Teichmann <[email protected]>
1071    
1072            * tools/anonym/cron.importAnonXml.sh: Add sudo call for
1073              xmlimport.py and parameters.
1074    
1075            * tools/anonym/xmlimport.py: Various bug fixes. Not working yet. :-/
1076    
1077            * tools/anonym/xmlexport.py: Use python interpreter without env
1078              because of sudo context.
1079    
1080    2008-02-26      Sascha L. Teichmann <[email protected]>
1081    
1082            * tools/anonym/xmlimport.py: added support for getopt. add
1083              support to force in fkz in import of case.
1084    
1085    2008-02-26      Sascha L. Teichmann <[email protected]>
1086    
1087            * tools/anonym/xmlimport.py: Implemented logic to create/update cases.
1088    
1089            * tools/anonym/html.awk: produces valid HTML.
1090    
1091    2008-02-25      Sascha L. Teichmann <[email protected]>
1092    
1093            * tools/anonym/joincsv.py: Fix a logic bug.
1094    
1095    2008-02-25      Torsten Irlaender <[email protected]>
1096    
1097            * tools/anonym/cron.importAnonXml.sh: Added shellscript for importing
1098              exportted cases. It will read all files from a directory and import
1099              the files into the DB. After that the script will cleanup the
1100              directory.
1101    
1102    2008-02-25      Torsten Irländer <[email protected]>
1103            
1104            * tools/anonym/cron.sendAnonXml.sh,
1105              tools/anonym/xmlexport.py,
1106              tools/anonym/getDbList.sh: Added shell-scripts for exporting cases
1107    
1108    2008-02-25      Sascha L. Teichmann <[email protected]>
1109    
1110            * tools/anonym/joincsv.py: Fixed typo which generated wrong number of cols.
1111    
1112    2008-02-25      Sascha L. Teichmann <[email protected]>
1113    
1114            * tools/anonym/joincsv.py: New. Joins CSV files.
1115    
1116            * tools/anonym/html.awk: New. Converts CSV to HTML
1117    
1118    2008-02-25      Sascha L. Teichmann <[email protected]>
1119    
1120            * tools/anonym/xmlimport.py: New. Added generation of
1121              update statements.
1122    
1123    2008-02-25      Sascha L. Teichmann <[email protected]>
1124    
1125            * tools/anonym/xmlimport.py: New. Base for importing
1126              XML from cron.
1127    
1128    2008-02-24      Sascha L. Teichmann <[email protected]>
1129    
1130            * tools/formed/formed/plugins/export/html2.py: New. plug-in
1131              for a simplified HTML output
1132    
1133            * tools/formed/formed/plugins/export/typemap.py: New. plug-in
1134              for dump schema as python dictionary.
1135    
1136            * tools/formed/formed/config.py: Enable new plug-ins. Out comment
1137              old stored procedure and view generators.
1138    
1139    2008-02-19      Sascha L. Teichmann <[email protected]>
1140    
1141            * tools/anonym/xmlexport.py: New. Export all cases in database
1142              as XML.
1143    
1144    2008-02-18      Sascha L. Teichmann <[email protected]>
1145    
1146            * tools/anonym/anoymncsv.py: separate field with '\t' now.
1147              all '\t's are replaced by '   ' before. '\r\n' are removed too.
1148    
1149    2008-02-15      Sascha L. Teichmann <[email protected]>
1150    
1151            * tools/anonym/anoymncsv.py: simple script to fetch anonymous
1152              data from database.
1153    
1154    2008-02-14      Sascha L. Teichmann <[email protected]>
1155    
1156            * tools/formed/formed/plugins/export/sql.py: Exchanged name
1157              erase_value with suppress_value/suppress_value2.
1158    
1159    2008-02-13      Sascha L. Teichmann <[email protected]>
1160    
1161            * tools/formed/formed/plugins/export/sql.py: output id, master_id
1162              substitute 'erase_value' with NULL value.
1163    
1164    2008-02-13      Sascha L. Teichmann <[email protected]>
1165    
1166            * tools/formed/formed/plugins/export/sql.py: output id, master_id
1167              and uuid_id in anonymiziation views too.
1168    
1169    2008-02-13      Sascha L. Teichmann <[email protected]>
1170    
1171            * tools/formed/formed/plugins/export/sql.py: Added generation
1172              of anonymiziation views for master table views and repeat group
1173              views.
1174    
1175    2008-02-13      Sascha L. Teichmann <[email protected]>
1176    
1177            * tools/formed/formed/model/nodecomponents.py: Added attribute
1178              "function"
1179    
1180            * tools/formed/formed/io/document.py: Save attributes in
1181              alphabetical order.
1182    
1183    2008-02-02      Sascha L. Teichmann <[email protected]>
1184    
1185            * tools/formed/formed/plugins/export/sql.py: Added update rule
1186              for master table and repeat groups views. Granted update right
1187              to :cm_ka_group.
1188    
1189    2008-02-01      Sascha L. Teichmann <[email protected]>
1190    
1191            * tools/formed/formed/plugins/export/sql.py: Added a column 'uuid_id'
1192              for master table and repeat groups. Also added unique constraints
1193              to these columns.
1194    
1195    2007-12-10      Sascha L. Teichmann <[email protected]>
1196    
1197            * pdf2xfa/src/de/intevation/pdfimport/ClientHandler.java: Added a system
1198              property 'root.element' to specify the name of the XML root.
1199    
1200            * pdf2xfa/startup/pdf2xfa.sh, pdf2xfa/README.TXT: Adjusted.
1201    
1202    2007-11-22      Sascha L. Teichmann <[email protected]>
1203    
1204            * pdf2xfa/startup, */pdf2xfa.sh, */pdf2xfa.init: boot scripts
1205              for GNU/Linux (tested Debian 'Etch' 4.0) by Sascha Wilde.
1206    
1207            * pdf2xfa/README.TXT: Add a remark to new boot scripts.
1208    
1209    2007-11-21      Sascha L. Teichmann <[email protected]>
1210    
1211            * pdf2xfa/src/de/intevation/pdfimport/Log.java: New.
1212              Sends logging to file.
1213    
1214            * pdf2xfa/src/de/intevation/pdfimport/Server.java,
1215              pdf2xfa/src/de/intevation/pdfimport/ClientHandler.java: Adjusted
1216              to use new logging.
1217    
1218            * pdf2xfa/README.TXT: Added remark how to use logging.
1219    
1220    2007-11-16      Frank Koormann <[email protected]>
1221    
1222            * tools/formed/formed/plugins/export/sql.py (createSchema):
1223            Append only column "bearbeiter_id", standins are modelled by a
1224            separate table.
1225    
1226    2007-11-16      Sascha L. Teichmann <[email protected]>
1227    
1228            * tools/formed/formed/model/data.py,
1229              tools/formed/formed/plugins/web/view_renderer.py:
1230              Added an invisible flag for info fields.
1231    
1232    2007-11-07      Sascha L. Teichmann <[email protected]>
1233    
1234            * tools/formed/formed/model/nodecomponents.py: Fixed a few small bugs
1235              (calling a wrong method).
1236    
1237    2007-11-07      Sascha L. Teichmann <[email protected]>
1238    
1239          * tools/formed/formed/model/nodecomponents.py: Added a field          * tools/formed/formed/model/nodecomponents.py: Added a field
1240            'alternative' to all node components. This might be of help to            'alternative' to all node components. This might be of help to

Legend:
Removed from v.215  
changed lines
  Added in v.399

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26