/[formed]/trunk/ChangeLog
ViewVC logotype

Diff of /trunk/ChangeLog

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

revision 70 by teichmann, Tue Aug 21 13:47:30 2007 UTC revision 252 by teichmann, Tue Mar 11 11:50:56 2008 UTC
# Line 1  Line 1 
1  2007-08-21 Sascha L. Teichmann <[email protected]>  2008-03-11      Sascha L. Teichmann <[email protected]>
2    
3            * tools/formed/formed/plugins/export/sql.py: Added code to
4              generate a plpgsql function anonymize_case() that anonymized
5              a given case and all of its depending repeat groups.
6    
7    2008-03-06      Sascha L. Teichmann <[email protected]>
8    
9            * tools/anonym/xmlimport.py: remove print of insert statement.
10    
11            * tools/formed/formed/plugins/export/sql.py: Print generation date in ISO.
12    
13    2008-03-03      Torsten Irländer <[email protected]>
14    
15            * anonym/cron.sendAnonXml.sh,
16              anonym/getDbList.sh: Modified script to be used directly in the
17              production environment (Copied running scripts from production
18              server)
19    
20    2008-02-27      Sascha L. Teichmann <[email protected]>
21    
22            * tools/anonym/xmlimport.py: Fixed bug in date converter.
23    
24    2008-02-27      Sascha L. Teichmann <[email protected]>
25    
26            * tools/anonym/xmlimport.py: Simpilied version
27    
28    2008-02-27      Sascha L. Teichmann <[email protected]>
29    
30            * tools/anonym/cron.importAnonXml.sh: Add sudo call for
31              xmlimport.py and parameters.
32    
33            * tools/anonym/xmlimport.py: Various bug fixes. Not working yet. :-/
34    
35            * tools/anonym/xmlexport.py: Use python interpreter without env
36              because of sudo context.
37    
38    2008-02-26      Sascha L. Teichmann <[email protected]>
39    
40            * tools/anonym/xmlimport.py: added support for getopt. add
41              support to force in fkz in import of case.
42    
43    2008-02-26      Sascha L. Teichmann <[email protected]>
44    
45            * tools/anonym/xmlimport.py: Implemented logic to create/update cases.
46    
47            * tools/anonym/html.awk: produces valid HTML.
48    
49    2008-02-25      Sascha L. Teichmann <[email protected]>
50    
51            * tools/anonym/joincsv.py: Fix a logic bug.
52    
53    2008-02-25      Torsten Irlaender <[email protected]>
54    
55            * tools/anonym/cron.importAnonXml.sh: Added shellscript for importing
56              exportted cases. It will read all files from a directory and import
57              the files into the DB. After that the script will cleanup the
58              directory.
59    
60    2008-02-25      Torsten Irländer <[email protected]>
61            
62            * tools/anonym/cron.sendAnonXml.sh,
63              tools/anonym/xmlexport.py,
64              tools/anonym/getDbList.sh: Added shell-scripts for exporting cases
65    
66    2008-02-25      Sascha L. Teichmann <[email protected]>
67    
68            * tools/anonym/joincsv.py: Fixed typo which generated wrong number of cols.
69    
70    2008-02-25      Sascha L. Teichmann <[email protected]>
71    
72            * tools/anonym/joincsv.py: New. Joins CSV files.
73    
74            * tools/anonym/html.awk: New. Converts CSV to HTML
75    
76    2008-02-25      Sascha L. Teichmann <[email protected]>
77    
78            * tools/anonym/xmlimport.py: New. Added generation of
79              update statements.
80    
81    2008-02-25      Sascha L. Teichmann <[email protected]>
82    
83            * tools/anonym/xmlimport.py: New. Base for importing
84              XML from cron.
85    
86    2008-02-24      Sascha L. Teichmann <[email protected]>
87    
88            * tools/formed/formed/plugins/export/html2.py: New. plug-in
89              for a simplified HTML output
90    
91            * tools/formed/formed/plugins/export/typemap.py: New. plug-in
92              for dump schema as python dictionary.
93    
94            * tools/formed/formed/config.py: Enable new plug-ins. Out comment
95              old stored procedure and view generators.
96    
97    2008-02-19      Sascha L. Teichmann <[email protected]>
98    
99            * tools/anonym/xmlexport.py: New. Export all cases in database
100              as XML.
101    
102    2008-02-18      Sascha L. Teichmann <[email protected]>
103    
104            * tools/anonym/anoymncsv.py: separate field with '\t' now.
105              all '\t's are replaced by '   ' before. '\r\n' are removed too.
106    
107    2008-02-15      Sascha L. Teichmann <[email protected]>
108    
109            * tools/anonym/anoymncsv.py: simple script to fetch anonymous
110              data from database.
111    
112    2008-02-14      Sascha L. Teichmann <[email protected]>
113    
114            * tools/formed/formed/plugins/export/sql.py: Exchanged name
115              erase_value with suppress_value/suppress_value2.
116    
117    2008-02-13      Sascha L. Teichmann <[email protected]>
118    
119            * tools/formed/formed/plugins/export/sql.py: output id, master_id
120              substitute 'erase_value' with NULL value.
121    
122    2008-02-13      Sascha L. Teichmann <[email protected]>
123    
124            * tools/formed/formed/plugins/export/sql.py: output id, master_id
125              and uuid_id in anonymiziation views too.
126    
127    2008-02-13      Sascha L. Teichmann <[email protected]>
128    
129            * tools/formed/formed/plugins/export/sql.py: Added generation
130              of anonymiziation views for master table views and repeat group
131              views.
132    
133    2008-02-13      Sascha L. Teichmann <[email protected]>
134    
135            * tools/formed/formed/model/nodecomponents.py: Added attribute
136              "function"
137    
138            * tools/formed/formed/io/document.py: Save attributes in
139              alphabetical order.
140    
141    2008-02-02      Sascha L. Teichmann <[email protected]>
142    
143            * tools/formed/formed/plugins/export/sql.py: Added update rule
144              for master table and repeat groups views. Granted update right
145              to :cm_ka_group.
146    
147    2008-02-01      Sascha L. Teichmann <[email protected]>
148    
149            * tools/formed/formed/plugins/export/sql.py: Added a column 'uuid_id'
150              for master table and repeat groups. Also added unique constraints
151              to these columns.
152    
153    2007-12-10      Sascha L. Teichmann <[email protected]>
154    
155            * pdf2xfa/src/de/intevation/pdfimport/ClientHandler.java: Added a system
156              property 'root.element' to specify the name of the XML root.
157    
158            * pdf2xfa/startup/pdf2xfa.sh, pdf2xfa/README.TXT: Adjusted.
159    
160    2007-11-22      Sascha L. Teichmann <[email protected]>
161    
162            * pdf2xfa/startup, */pdf2xfa.sh, */pdf2xfa.init: boot scripts
163              for GNU/Linux (tested Debian 'Etch' 4.0) by Sascha Wilde.
164    
165            * pdf2xfa/README.TXT: Add a remark to new boot scripts.
166    
167    2007-11-21      Sascha L. Teichmann <[email protected]>
168    
169            * pdf2xfa/src/de/intevation/pdfimport/Log.java: New.
170              Sends logging to file.
171    
172            * pdf2xfa/src/de/intevation/pdfimport/Server.java,
173              pdf2xfa/src/de/intevation/pdfimport/ClientHandler.java: Adjusted
174              to use new logging.
175    
176            * pdf2xfa/README.TXT: Added remark how to use logging.
177    
178    2007-11-16      Frank Koormann <[email protected]>
179    
180            * tools/formed/formed/plugins/export/sql.py (createSchema):
181            Append only column "bearbeiter_id", standins are modelled by a
182            separate table.
183    
184    2007-11-16      Sascha L. Teichmann <[email protected]>
185    
186            * tools/formed/formed/model/data.py,
187              tools/formed/formed/plugins/web/view_renderer.py:
188              Added an invisible flag for info fields.
189    
190    2007-11-07      Sascha L. Teichmann <[email protected]>
191    
192            * tools/formed/formed/model/nodecomponents.py: Fixed a few small bugs
193              (calling a wrong method).
194    
195    2007-11-07      Sascha L. Teichmann <[email protected]>
196    
197            * tools/formed/formed/model/nodecomponents.py: Added a field
198              'alternative' to all node components. This might be of help to
199              match PDF imports where the descriptions do not match.
200    
201    2007-10-23      Frank Koormann <[email protected]>
202    
203            * tools/formed/formed/plugins/export/sql.py: New WHERE-Clause for views
204    
205    2007-10-23      Frank Koormann <[email protected]>
206    
207            * tools/formed/formed/plugins/export/sql.py: Set default
208            value (-1) for choices and bools.
209    
210    2007-10-21      Frank Koormann <[email protected]>
211    
212            * tools/formed/formed/plugins/export/sql.py: Grant statements for
213            descriptive tables added.
214            (Table.getName): new
215    
216    2007-10-21      Frank Koormann <[email protected]>
217    
218            * tools/formed/formed/plugins/export/sql.py: "CREATE OR REPLACE"
219            statements for views and roles to make updates easier.
220            Add "admin_ka" membership as third option to VIEW_WHERE_CLAUSE.
221    
222    2007-10-19      Frank Koormann <[email protected]>
223    
224            * tools/formed/formed/plugins/export/sql.py: Added GRANT statements
225            for views. The statements are prepared for variable substitution
226            when executing the SQL-scripts by psql.
227    
228    2007-10-18      Sascha L. Teichmann <[email protected]>
229    
230            * pdf2xfa/src/de/intevation/pdfimport/ClientHandler.java: Fixed:
231              End of result XML was truncated because of an unflushed buffer.
232    
233    2007-10-17      Sascha L. Teichmann <[email protected]>
234    
235            * pdf2xfa/bin/build-jar.sh: New. Build production jar file.
236    
237            * pdf2xfa/README.TXT: Adjusted how to build production jar file
238              and how to use it.
239    
240            * pdf2xfa/etc, pdf2xfa/etc/manifest.txt: New. Defines main class
241              and iText dependency.
242    
243    2007-10-16      Sascha L. Teichmann <[email protected]>
244    
245            * tools/formed/formed/plugins/export/sql.py: Model 'Ja, Nein, Keine Angabe'
246              are not modeled as BOOLEANs any more. That simpifies the conversion
247              process web vs. db.
248    
249    2007-10-07      Sascha L. Teichmann <[email protected]>
250    
251            * tools/formed/formed/plugins/export/sql.py: Added the remaining
252              UPDATE rules.
253    
254    2007-10-07      Sascha L. Teichmann <[email protected]>
255    
256            * tools/formed/formed/plugins/export/sql.py: Added UPDATE rules for some
257              views. TODO: Test'em and implement the rest.
258    
259    2007-10-07      Sascha L. Teichmann <[email protected]>
260    
261            * tools/formed/formed/plugins/export/sql.py: Bug fix. DELETE and INSERT
262              rules referenced none existing views.
263    
264    2007-10-07      Sascha L. Teichmann <[email protected]>
265    
266            * tools/formed/formed/plugins/export/sql.py: Added DELETE and INSERT
267              rules for views. TODO: add UPDATE rules.
268    
269    2007-10-07      Sascha L. Teichmann <[email protected]>
270    
271            * tools/formed/formed/plugins/export/old_sql.py: New. Contains
272              the legacy SQL export filters.
273    
274            * tools/formed/formed/plugins/export/sql.py: Factored out the
275              legacy SQL export filters to old_sql.
276    
277            * tools/formed/formed/config.py: Adjusted to fetch legacy
278              filters from old_sql.
279    
280    2007-10-06      Sascha L. Teichmann <[email protected]>
281    
282            * pdf2xfa/**: Initial import of the PDF to XFA server.
283    
284    2007-10-06      Sascha L. Teichmann <[email protected]>
285    
286            * tools/formed/formed/plugins/export/sql.py: Fixed bug
287              that made choices of three elements to booleans if
288              they have other meanings than 'Ja', 'Nein', 'keine Angabe'.
289    
290    2007-10-05      Sascha L. Teichmann <[email protected]>
291    
292            * tools/formed/formed/plugins/export/sql.py: Select ids of
293              underlaying tables in views too.
294    
295    2007-10-04      Sascha L. Teichmann <[email protected]>
296    
297            * tools/formed/formed/plugins/export/sql.py: Create schema inside transaction.
298              Various bug fixes.
299    
300    2007-10-04      Sascha L. Teichmann <[email protected]>
301    
302            * tools/formed/formed/model/data.py: Added GroupNode.allWidgets()
303              to extract fields from embedded repeat groups.
304    
305            * tools/formed/formed/plugins/export/sql.py: The SQL exporter exports
306              views per page too. Result not tested yet.
307    
308    2007-10-01      Sascha L. Teichmann <[email protected]>
309    
310            * tools/formed/formed/plugins/web/view_renderer.py: Ignore
311              in-page repeat groups while rendering pages.
312    
313    2007-10-01      Sascha L. Teichmann <[email protected]>
314    
315            * tools/formed/formed/model/nodecomponents.py: Added visitor
316              traversals for document trees.
317    
318            * tools/formed/formed/model/data.py: Rewrote the
319              Page.allWidgets() method to use new visitor for
320              tree traversal.
321    
322    2007-09-27      Torsten Irlaender <[email protected]>
323    
324            * tools/formed/formed/plugins/names/filter.py: Pages are now included
325              in the rename by formular name  algorithm
326    
327    2007-09-26      Sascha L. Teichmann <[email protected]>
328    
329            * tools/formed/formed/model/data.py: Removed old {next|prev}Page()
330              TODO: rewrite Page.allWidgets().
331    
332            * tools/formed/formed/model/nodecomponents.py: Added a method
333              Node.firstLevel(criterion) to walk a defined line in the tree.
334    
335            * tools/formed/formed/plugins/export/sql.py: Extract data suitable to
336              build views and respective joins.
337    
338    2007-09-26      Sascha L. Teichmann <[email protected]>
339    
340            * tools/formed/formed/plugins/web/plugin.py: add 'web.tidy:' flag to
341              FORMED environment variable. If set to true tidylib is used to
342              filter HTML content to be W3C valid. To use this feature install
343              uTidylib.
344    
345            * tools/formed/formed/plugins/web/server.py: Check if MIME type is
346              text/html and filters content through tidy if requested.
347    
348    2007-09-25      Torsten Irlaender <[email protected]>
349    
350            * tools/formed/formed/plugins/web/view_renderer.py: Small fix and
351              cleanup of the form generation code.
352    
353    2007-09-21      Sascha L. Teichmann <[email protected]>
354    
355            * tools/formed/formed/plugins/export/sql.py: Added generation time
356              and DROP TABLE statements to schema export.
357    
358    2007-09-20      Sascha L. Teichmann <[email protected]>
359    
360            * tools/formed/formed/plugins/export/sql.py: The tables are generated
361              in correct topolocial order now.
362    
363    2007-09-20      Sascha L. Teichmann <[email protected]>
364    
365            * tools/formed/formed/plugins/export/mode.py: New. Filter to export
366              a document with items that are in given mode.
367    
368            * tools/formed/formed/model/nodecomponents.py: Added methods to clone
369              trees depending on selected modes.
370    
371            * tools/formed/formed/model/data.py, tools/formed/formed/model/expr.py:
372              Fixed clone issue with RuleNodes.
373    
374            * tools/formed/formed/config.py: Use new plug-in.
375    
376    2007-09-17      Sascha L. Teichmann <[email protected]>
377    
378            * tools/formed/formed/plugins/web/view_renderer.py: Make the
379              view renderer a real view renderer. It takes a list of
380              items now and not only a single page.
381    
382            * tools/formed/formed/plugins/web/renderer.py: Feed a list
383              of items to the view renderer.
384    
385    2007-09-17      Torsten Irlaender <[email protected]>
386    
387            * tools/formed/formed/plugins/web/view_renderer.py:
388              Small tweaks in rendering bools.
389              RadioNodes (with all its children) can now be placed in a container.
390              The radiobools will not get a surrounding <div> anymore.
391              I am not sure if the new way results in the wanted behaivor, but the
392              rendering results are much better now :)
393              Maybe we need a similar approach for checkboxes?
394              Rendering groups is still broken in some way.
395    
396    2007-09-17      Sascha L. Teichmann <[email protected]>
397    
398            * tools/formed/formed/plugins/web/view_renderer.py: Fixed
399              a few bugs: Do not render empty containers, do not
400              generate misplaced <br class="newline"> in choices.
401              Add a nameless container to catch the items that are
402              nor explicitly assigned to a target. Removed FormData.
403    
404            * tools/formed/formed/plugins/web/renderer.py: Removed
405              a needless import
406    
407    2007-09-17      Sascha L. Teichmann <[email protected]>
408    
409            * tools/formed/formed/plugins/web/view_renderer.py: Implemented
410              usage of 'containers' and 'target' attributes.
411    
412            * tools/formed/formed/plugins/web/controllers.py: Modified import.
413    
414            * tools/formed/formed/plugins/web/renderer.py: Use
415              new ViewRenderer.
416    
417    2007-09-17      Sascha L. Teichmann <[email protected]>
418    
419            * tools/formed/formed/model/nodecomponents.py: Added attributes
420              'target' to NodeComponent and 'containers' to Node.
421    
422            * tools/formed/formed/plugins/web/view_renderer.py: New. Aimed
423              to be a replacement for form_renderer. Not ready yet!
424    
425            * ChangeLog: Fixed some indention glitches.
426    
427    2007-09-13      Torsten Irlaender <[email protected]>
428    
429            * tools/formed/formed/plugins/names/filter.py: Fixed bug in the
430              renaming algorithm.
431    
432    2007-09-12      Torsten Irlaender <[email protected]>
433    
434            * tools/formed/formed/plugins/web/form_renderer.py: Renamed header
435              from formular navigation to "Fallakte Inhalt"
436    
437    2007-09-12      Torsten Irlaender <[email protected]>
438    
439            * tools/formed/formed/plugins/ui/controls.py: Fixed bug that bad
440              values (dates)  were not pretty printed.
441    
442            * tools/formed/formed/plugins/web/form_renderer.py: Added errormsg to
443              label rendering for choicelists.
444    
445    2007-09-12      Torsten Irlaender <[email protected]>
446    
447            * tools/formed/formed/plugins/ui/controls.py: Fixed bug that
448              choicelist did not get selected when the value is set to "0"
449    
450    2007-09-12      Torsten Irlaender <[email protected]>
451    
452            * tools/formed/formed/plugins/web/form_renderer.py: Added
453              "getPrintableData" method, for the formdata Class which will return
454              the description rather than the value of element in the ID. This is
455              need for displaying the choises in a right way.
456            
457            * tools/formed/formed/plugins/web/renderer.py: Changed string
458              "Fallnummer" into "Kundennummer" in the templates. Added
459              Kundennummer to the dataset digest output. Bound in the new
460              "getPrintableData" call for the digest.
461    
462    2007-10-11      Sascha L. Teichmann <[email protected]>
463    
464            * tools/formed/formed/plugins/export/data.py: The import/export
465              of data is now implemented with filters (the most consequent
466              way in terms of design of FormEd). The support of the 'persistent'
467              FORMED env-variable support has been removed.
468    
469            * tools/formed/formed/plugins/ui/controls.py: Added a flag to the
470              filter file dialog to double as import dialog.
471    
472            * tools/formed/formed/main.py: Removed the the FORMED-var support
473              for persistence.
474            
475            * tools/formed/formed/config.py: Add the two new filters to the filters
476              list.
477    
478    2007-10-11      Sascha L. Teichmann <[email protected]>
479    
480            * tools/formed/formed/model/memory.py: Uses XML as persistence format now.
481              Removed pickle/unpickle stuff.
482    
483            * tools/formed/formed/main.py: Uses the new XML persistence.
484    
485            * tools/formed/formed/plugins/web/semantic.py: Fixed: choices were
486              not converted to int indices.
487    
488    2007-09-11      Sascha L. Teichmann <[email protected]>
489    
490            * tools/formed/formed/model/memory.py: Making MemoryDataStore persistent
491              with pickle/unpickle.
492    
493            * tools/formed/formed/main.py: Added a env FORMED parameter 'persistent'.
494              Set to a file name it is tried to unpickle a MemoryDataStore from
495              that file. When exiting the program this file is used to store the
496              current MemoryDataStore state. The storing only works if you exit
497              the program through the Menu File->Exit.
498              usage: FORMED=persistent:test.db ./formed.sh
499    
500    2007-09-11      Torsten Irlaender <[email protected]>
501    
502            * tools/formed/formed/plugins/web/renderer.py: Changed Name of the
503              application on the welcome page from "Formed" to "WASKA"
504    
505    2007-09-11      Torsten Irlaender <[email protected]>
506    
507            * tools/formed/formed/plugins/web/plugin.py,
508            * tools/formed/formed/plugins/web/controllers.py,
509            * tools/formed/formed/plugins/web/renderer.py: Added InfoPageHandler.
510              The infopage provides information on all project participants.
511    
512    2007-09-11      Sascha L. Teichmann <[email protected]>
513    
514            * tools/formed/formed/plugins/web/controllers.py: Fix unicode conversion
515              issues with error messages (once again).
516    
517    2007-09-11      Torsten Irlaender <[email protected]>
518    
519            * tools/formed/formed/plugins/web/form_renderer.py,
520            * tools/formed/formed/plugins/web/renderer.py: Added alt tag for
521              icons in error and confirmation dialogs.
522    
523    2007-09-11      Sascha L. Teichmann <[email protected]>
524    
525            * tools/formed/formed/plugins/web/form_renderer.py: Fixed label
526              generation for ints, texts and textareas. Fixed h depths of infos.
527    
528    2007-09-11      Sascha L. Teichmann <[email protected]>
529    
530            * tools/formed/formed/plugins/web/form_renderer.py: Removed
531              debug output for help.
532    
533            * tools/formed/formed/plugins/web/semantic.py: Added forgotten
534              check for bools.
535    
536            * tools/formed/formed/plugins/web/controllers.py:  Added correct
537              HTML output of data for bools.
538    
539    2007-09-11      Torsten Irlaender <[email protected]>
540    
541            * tools/formed/formed/plugins/web/form_renderer.py: Changed size of
542              textfields for int values. Changed Label for submitbuttons to
543              "Speichern"
544    
545            * tools/formed/formed/plugins/web/plugin.py,
546              tools/formed/formed/plugins/web/controllers.py: Added new
547              NotImplementedHandler to show up a dummysite for not implemented
548              functions.
549    
550            * tools/formed/formed/plugins/web/renderer.py: Added
551              NotImplementedRenderer. Various small fixes. Mostly renaming the
552              labels of some context menus. Error messages are now generated
553              dynamically depending on num errors. Formular navigation has now
554              colored indication for errors.
555    
556    2007-09-11      Torsten Irlaender <[email protected]>
557    
558            * tools/formed/formed/plugins/web/renderer.py: Implemented "LookAhead"
559              algorithm for the formular navigation to get rid of the problem
560              that some of the items within the navigation are not linked.  Now
561              structural group elements are linked with the next page found in the
562              formular structure.
563    
564    2007-09-10      Torsten Irlaender <[email protected]>
565            * tools/formed/formed/plugins/web/form_renderer.py: Changed order of
566              div and formtag.
567    
568            * tools/formed/formed/plugins/web/controllers.py: Added DataSet action
569              menu in the conformation dialog when creating a new dataset.
570    
571            * tools/formed/formed/plugins/web/renderer.py: Fixed error when
572              rendering the default welcome page. Changed rendering of the
573              overview and the digest table of the datasets. Added icon for
574              confirmation dialog, moved the icon in the <h1> tags.  
575    
576    2007-09-10      Torsten Irlaender <[email protected]>
577    
578            * tools/formed/formed/plugins/web/form_renderer.py: Some html
579              generation cleanup. Added error icons to formelements
580    
581            * tools/formed/formed/plugins/web/controllers.py: Fixed initialisation
582              of ErrorStatus. Fixed generated of the help tags in the formular
583    
584            * tools/formed/formed/plugins/web/renderer.py: Added error icon for
585              pageerrors. An "!" now indicates errors on pages in the formular
586              navigation. Added new <div> "content" around confirmation dialogss.
587              Links in confimation dialogs are now rendered as buttons. Removed
588              old obsolete OverviewRenderer.
589    
590    2007-09-10      Sascha L. Teichmann <[email protected]>
591    
592            * tools/formed/formed/plugins/web/renderer.py: Highlight selected
593              page in page navigation.
594    
595    2007-09-10      Torsten Irlaender <[email protected]>
596    
597            * tools/formed/formed/plugins/web/controllers.py: Fixed issues on
598              displaying formdata when changing datasets. Loading the right
599              formdata was not handled in a correct way. Hope it is all fixed now.
600              Left some commented code because not all sideeffects of the changes
601              are tested yet.
602    
603            * tools/formed/formed/plugins/web/renderer.py: DataSetDigestRenderer
604              now uses the correct data out of the formdata.
605    
606    2007-09-10      Sascha L. Teichmann <[email protected]>
607    
608            * tools/formed/formed/plugins/web/controllers.py: Pretty
609              print format data (dates e.g)
610    
611    2007-09-10      Sascha L. Teichmann <[email protected]>
612    
613            * tools/formed/formed/plugins/web/controllers.py: Modified
614              ErrorStats a bit to avoid mysterious extra error on page.
615              No clue why this works.
616    
617    2007-09-10      Sascha L. Teichmann <[email protected]>
618    
619            * tools/formed/formed/plugins/web/form_renderer.py: Fixed value
620              problem with radio groups, too.
621    
622    2007-09-10      Torsten Irlaender <[email protected]>
623            * tools/formed/formed/plugins/web/controllers.py: Sessions are now
624              really removed when deleting a dataset.
625            
626    2007-09-10      Torsten Irlaender <[email protected]>
627    
628            * tools/formed/formed/plugins/web/controllers.py: Added new Class
629              ErrorStats which provides Information on remaining errors per page.
630    
631            * tools/formed/formed/plugins/web/renderers.py: Finished movement of
632              the renderer methods from controllers.py to renderers.py.
633    
634            * tools/formed/formed/plugins/web/plugin.py: Removed render_session
635              handlers
636    
637    2007-09-10      Sascha L. Teichmann <[email protected]>
638    
639            * tools/formed/formed/plugins/web/form_renderer.py: values for
640              choices are generated from the document tree now. This brings
641              the state storage of select boxes in HTML to live.
642    
643    2007-09-09      Sascha L. Teichmann <[email protected]>
644    
645            * tools/formed/formed/plugins/web/semantic.py: Fixed problems with
646              range checking of integers.
647    
648            * tools/formed/formed/plugins/web/controllers.py: Added class
649              ErrorItem to track errors. They are stored in the session.
650    
651    2007-09-09      Sascha L. Teichmann <[email protected]>
652    
653            * tools/formed/formed/model/nodecomponents.py: Fixed returning
654              wrong index in Document.indexOfcomponentByClassAndName.
655    
656            * tools/formed/formed/plugins/web/form_renderer.py: 'error' was
657              written 'errot' in renderer for textareas.
658    
659            * tools/formed/formed/plugins/web/controllers.py: Some clean-ups.
660    
661    2007-09-09      Sascha L. Teichmann <[email protected]>
662    
663            * tools/formed/formed/plugins/web/help.py: Added a 'hasHelp'
664              method. Could be cheaper for some implementations of help.
665    
666            * tools/formed/formed/plugins/web/form_renderer.py: Modified
667              FormData to have distinct getData(), getHelp() and getError()
668              methods. Various bug fixes.
669    
670            * tools/formed/formed/plugins/web/controllers.py: Implements the
671              new FormData (trivial by now).
672    
673            * tools/formed/formed/plugins/web/renderer.py: New FormData and
674              some bug fixes.
675    
676    2007-09-09      Sascha L. Teichmann <[email protected]>
677    
678            * tools/formed/formed/model/memory.py,
679              tools/formed/formed/model/persistent.py: Add a getValue() method
680              to dataset abstraction. This is a bit of a workaround to bring
681              global access across pages for rule checking to work.
682    
683            * tools/formed/formed/model/data.py: Fixed: When setting a new expression
684              the compiled version was not stored in the RuleLeaf.
685    
686            * tools/formed/formed/model/expr.py: shlex lexer does not like unicode.
687              convert the expression string to ascii for compilation.
688    
689            * tools/formed/formed/plugins/web/semantic.py: Remove the 'box' because
690              valid data is stored to the dataset immediately now. Fixed a bug
691              with integer handler.
692    
693            * tools/formed/formed/plugins/web/controllers.py: Removed the semantic 'box'
694              stuff. When a submit is done extract the rules from the tree document
695              that are effected by the modified variables and check them.
696    
697            * tools/formed/formed/plugins/web/renderer.py: Fixed exception handling
698              when dealing with templates.
699    
700    2007-09-07      Torsten Irlaender <[email protected]>
701            * tools/formed/formed/plugins/web/controllers.py,
702              tools/formed/formed/plugins/web/renderer.py: Moved more render
703              functions into renderer.py. New render classes are:
704              DataSetDigestRenderer, DataSetNavigationRenderer,
705              DataSetFormularRenderer, ConfirmationDialogRenderer
706    
707              Note: The new methods are only called from selected handlers. Other
708              handlers call the renderes in the old way.
709    
710    2007-09-07      Torsten Irlaender <[email protected]>
711            * tools/formed/formed/plugins/web/form_renderer.py: Renamed
712              renderer.py to form_renderer.py. This file will contain formular
713              specfic render methods in the future.
714            * tools/formed/formed/plugins/web/renderer.py: Added new renderer.py
715              which will contain general render methods.
716            * tools/formed/formed/plugins/web/controllers.py: Began to move all
717              rendering into renderer.py or form_renderer.py. This file will only
718              contain teh handlers in the future.
719    
720    2007-09-07      Torsten Irlaender <[email protected]>
721            * tools/formed/formed/plugins/web/renderer.py,
722              tools/formed/formed/plugins/web/controller.py:
723              Renderes now get an instance of the formdata object to provide
724              access the data needed to render various infoboxes etc. Handler
725              instanciate the formdata.
726            
727    2007-09-06      Torsten Irlaender <[email protected]>
728            * tools/formed/formed/plugins/web/renderer.py: Mainly tried to get the
729              getFormData interface to work. Added two small semantic fixes, but
730              did not manage to get it up. Need to exime this a little bit more
731            * tools/formed/formed/plugins/web/controllers.py: Put <div> tags
732              around the menus on the right side to be able to assign different
733              styles. Added dataset actions while editing a dataset.
734            
735    2007-09-05      Torsten Irlaender <[email protected]>
736            * tools/formed/formed/model/memory.py: Fixed deleting datasets by
737              removing unwanted del method
738            * tools/formed/formed/plugins/web/controllers.py: Implemented
739              confiration dialogs for create, delete, and select aof datasets. Started to use
740              templates as well for larger information units like the dataset summary.
741            
742    2007-09-05      Sascha L. Teichmann <[email protected]>
743    
744            * tools/formed/formed/model/nodecomponents.py: Added a
745              method to document to find index of page.
746    
747            * tools/formed/formed/plugins/web/semantic.py: Added getValue()
748              to fetch data from semantic box.
749    
750            * tools/formed/formed/plugins/web/controllers.py: Added new
751              FormData implementation to support DB and semantic box.
752    
753    2007-09-05      Sascha L. Teichmann <[email protected]>
754    
755            * tools/formed/formed/plugins/web/renderer.py: escaped
756              error message.
757    
758            * tools/formed/formed/plugins/web/controllers.py: Don't fetch
759              dataset from backend each time a page is up to edit.
760    
761    2007-09-05      Sascha L. Teichmann <[email protected]>
762    
763            * tools/formed/formed/plugins/web/renderer.py: SimplePageRenderer
764              returns "Page not found" if given page is None.
765    
766            * tools/formed/formed/plugins/web/controllers.py: Added checks
767              to avoid crashing when ask for a non-existent page.
768    
769    2007-09-05      Sascha L. Teichmann <[email protected]>
770    
771            * tools/formed/formed/plugins/web/controllers.py: Some clean-ups.
772    
773    2007-09-05      Sascha L. Teichmann <[email protected]>
774    
775            * tools/formed/formed/plugins/web/plugin.py: Remove request handlers
776              and renderers.
777    
778            * tools/formed/formed/plugins/web/controllers.py: New. Contains handlers
779              and renderers now. TODO: Move renderers to renderer.py
780    
781    2007-09-05      Torsten Irlaender <[email protected]>
782    
783            * tools/formed/formed/plugins/web/www/main.tmpl: Adopted web template
784              and bound in the the new added functions to create, edit, delete and
785              show formdata.
786            
787    2007-09-05      Sascha L. Teichmann <[email protected]>
788    
789            * tools/formed/formed/model/memory.py: Removed bisect and use a
790              simple linear scan for dataset lookup now.
791    
792            * tools/formed/formed/plugins/web/plugin.py: Fixed various issues
793              of different sizes.
794    
795    2007-09-05      Torsten Irlaender <[email protected]>
796    
797            * tools/formed/formed/plugins/web/memory.py: Fixed getDataSetById
798              fuction
799              
800            * tools/formed/formed/plugins/web/persistent.py: Added store() method
801              to the DataSet interface
802    
803            * tools/formed/formed/plugins/web/renderer.py: Added handlers and
804              renderes for create, update, delete and show actions on formular data.
805    
806    2007-09-04      Sascha L. Teichmann <[email protected]>
807    
808            * tools/formed/formed/plugins/web/server.py: The mapping
809              to methods is now driven by regualar expressions and
810              a dictionary. Response objects are now able to send
811              error codes.
812    
813            * tools/formed/formed/plugins/web/renderer.py: Fixed an issue
814              when help in Formdata is None. Moved text for help into
815              a top level '''...''' variable.
816    
817            * tools/formed/test-data/simple.xml: Added test for help.
818    
819            * tools/formed/formed/plugins/web/help.py: extra None check.
820    
821            * tools/formed/formed/plugins/web/plugin.py: Uses the new
822              table driven mapping of reguest handling. TODO: split the
823              WebPlugIn.pageHandler() method further to smaller handlers.
824              Smaller clean ups and better exception handling.
825    
826            * tools/formed/formed/plugins/web/cache.py: Report OSErrors
827              and do not catch them.
828    
829    2007-09-04      Torsten Irlaender <[email protected]>
830    
831            * tools/formed/formed/plugins/web/renderer.py,
832            * tools/formed/formed/plugins/web/plugin.py: Added Interface to
833              the HelpProvider and inserted help icons to the html output.
834              Added decorator for Formelemnts, so textfields, choices etc. are now
835              within a <div> tag.
836              Modified the error messages.
837    
838    2007-09-04      Sascha L. Teichmann <[email protected]>
839    
840            * tools/formed/formed/plugins/web/cache.py: New. Implements
841              the server-side caching more clean. Fixes a bug with
842              serving static content.
843    
844            * tools/formed/formed/plugins/web/plugin.py: Use the new cache.
845    
846    2007-09-04      Sascha L. Teichmann <[email protected]>
847    
848            * tools/formed/formed/plugins/web/plugin.py: Set MIME type
849              to "application/xhtml+xml" when serving help texts.
850    
851    2007-09-03      Sascha L. Teichmann <[email protected]>
852    
853            * tools/formed/formed/plugins/export/diff.py: New. Exports
854              pairwise differences between all modes.
855    
856            * tools/formed/formed/config.py: Use new export filter.
857    
858    2007-09-03      Sascha L. Teichmann <[email protected]>
859    
860            * tools/formed/formed/plugins/web/help.py: New. Parses an
861              XHTML document for id'ed divs and builds a help lookup.
862    
863            * tools/formed/formed/plugins/web/www/help.tmpl: Template for
864              the help content frame.
865    
866            * tools/formed/formed/plugins/web/www/help.xhtml: Some simple
867              help text index.
868    
869            * tools/formed/formed/plugins/web/plugin.py: Serves the help
870              texts now.
871    
872    2007-09-03      Torsten Irlaender <[email protected]>
873    
874            * tools/formed/formed/plugins/web/plugin.py: Only visible group
875              elements will be rendered in the formular navigation.
876              Formular pages in the navigation now have their own css-style
877              attributes.
878    
879    2007-09-03      Torsten Irlaender <[email protected]>
880    
881            * tools/formed/formed/plugins/web/www/main.tmpl: Added div area for page
882              errors in template
883            * tools/formed/formed/plugins/web/plugin.py: Fixed undefined
884              pageerrors variable
885    
886    2007-09-03      Frank Koormann <[email protected]>
887    
888            * tools/formed/formed/plugins/export/html.py
889            (RecursiveExporter): Added annotation to export
890            (fillRow()): Renamed old fillNine to this more generic name.
891            
892    
893    2007-09-03      Sascha L. Teichmann <[email protected]>
894    
895            * tools/formed/formed/plugins/web/renderer.py: Using the decorator
896              from model.misc now.
897    
898    2007-09-03      Sascha L. Teichmann <[email protected]>
899    
900            * tools/formed/formed/model/nodecomponents.py: Added an
901              'annotation' attribute to node components. This is to
902              enable FormEd document authors to add comments to groups
903              and fields.
904    
905    2007-09-03      Frank Koormann <[email protected]>
906    
907            * tools/formed/formed/model/nodecomponents.py
908            (NodeComponent.getParent): New method to get node components parent.
909    
910            * tools/formed/formed/plugins/export/html.py: Export Choice option
911            as simple list instead of collection of bools.
912    
913    2007-09-02      Sascha L. Teichmann <[email protected]>
914    
915            * tools/formed/formed/model/persistent.py: Interfaces to abstract
916              from persistent storage details.
917    
918            * tools/formed/formed/model/memory.py: In core implementation
919              of the persistent interfaces.
920    
921            * tools/formed/formed/main.py: Holds a memory data store now.
922    
923    2007-09-02      Sascha L. Teichmann <[email protected]>
924    
925            * tools/formed/formed/plugins/export/sql.py,
926              tools/formed/formed/plugins/export/html.py: Fixed constructor chains
927              for FileDialogFilter sub classes.
928    
929    2007-09-02      Sascha L. Teichmann <[email protected]>
930    
931            * tools/formed/formed/model/misc.py: Checking the mode in recursive
932              tree traversals is a common task. To ease this a decorator function
933              checkMode in union with sub classing ModeChecker can be used.
934              To make it work simply subclass from ModeChecker and add the decorator
935              to the methods that need mode tracking. Before you start the recursion
936              call self.prepareDescent().
937    
938            * tools/formed/formed/plugins/export/html.py: Uses the new decorator scheme
939              now which replace the old. TODO: Make the web renderer use the new scheme
940              too.
941    
942    2007-09-02      Sascha L. Teichmann <[email protected]>
943    
944            * tools/formed/formed/plugins/export/sql.py: Removed needless import.
945    
946            * tools/formed/formed/plugins/export/html.py: HTML table exporter
947              uses new FileDialogFilter base class too.
948    
949    2007-09-02      Sascha L. Teichmann <[email protected]>
950    
951            * tools/formed/formed/plugins/ui/*: New. All file exporters
952              need a file dialog. Till now each of them pulled up its
953              own. This was silly code replication. Now there is an abstract
954              base class 'FileDialogFilter' which implements the common
955              behavior. The file exporters should subclass it.
956    
957            * tools/formed/formed/plugins/export/sql.py: Subclass the SQL
958              exporters from the new base class. TODO: Subclass the HTML
959              exporter too.
960    
961    2007-08-31      Sascha L. Teichmann <[email protected]>
962    
963            * tools/formed/formed/plugins/export/html.py: Make mode check
964              work (again).
965    
966    2007-08-31      Torsten Irlaender <[email protected]>
967    
968            * tools/formed/formed/plugins/export/html.py: Rendering of the HTML
969              exprt works now in a recursive way. This change was needed because
970              the structure of the formedtree has changed to be able to render
971              full hirachically document stuctures. (nested lists)
972              TODO: Fix modechecking
973    
974    2007-08-31      Torsten Irlaender <[email protected]>
975    
976            * tools/formed/formed/plugins/web/plugin.py: Navigation rendering works
977              now in recursive way. This change was needed because the structure
978              of the formedtree has changed to be able to render full hirachically
979              document stuctures. (nested lists)
980    
981    2007-08-31      Sascha L. Teichmann <[email protected]>
982    
983            * tools/formed/formed/model/nodecomponents.py: use discard()
984              instead of remove on sets.
985    
986            * tools/formed/formed/plugins/export/sql.py: Added an
987              exporter for table views.
988    
989            * tools/formed/formed/config.py: Added the new exporter
990              to the list of export filters.
991    
992    2007-08-30      Sascha L. Teichmann <[email protected]>
993    
994            * tools/formed/formed/model/data.py: Fixed a bug in
995              Page.allWidgets()
996    
997            * tools/formed/formed/plugins/export/sql.py: Added an exporter
998              for stored procudeures.
999    
1000            * tools/formed/formed/config.py: Add the new SP exporter.
1001    
1002    2007-08-29      Torsten Irlaender <[email protected]>
1003    
1004            * tools/formed/formed/plugins/web/plugin.py,
1005              tools/formed/formed/plugins/web/error_renderer.py: Added interface
1006              to get the errors for a whole page in te formular. These errors can
1007              now be displayed on the top of the formular.
1008    
1009    2007-08-29      Torsten Irlaender <[email protected]>
1010    
1011            * tools/formed/formed/plugins/web/renderer.py: Finished implementation
1012              of the getFromData interface and prepared the rederer for generating
1013              nice error messages
1014    
1015    2007-08-28      Frank Koormann <[email protected]>
1016    
1017            * tools/formed/formed/plugins/export/sql.py
1018            (SchemaCreator.createSchema, SchemaCreator._createGroup):
1019            Fixed typo in created DDS (PRIMRAY -> PRIMARY)
1020    
1021    2007-08-28      Torsten Irlaender <[email protected]>
1022    
1023            * tools/formed/formed/plugins/export/sql.py: Added small helper
1024              function to generated valid quotes within the sql statements
1025    
1026    2007-08-29      Sascha L. Teichmann <[email protected]>
1027    
1028            * tools/formed/formed/plugins/export/sql.py: Added foreign keys
1029              for repeat tables.
1030              
1031    2007-08-29      Sascha L. Teichmann <[email protected]>
1032    
1033            * tools/formed/formed/plugins/export/sql.py: When generating
1034              an extra table check in a table of same content exists. In
1035              this case reference the existing table.
1036    
1037    2007-08-29      Sascha L. Teichmann <[email protected]>
1038    
1039            * tools/formed/formed/plugins/export/sql.py: Rewritten to produce
1040              _real_ SQL and respect repeat groups.
1041    
1042            * tools/formed/formed/model/data.py: Fixed bug with Group.isRepeat()
1043    
1044            * tools/formed/formed/plugins/web/renderer.py: Use "".join([])
1045              instead of expensive += string concat in some places.
1046    
1047    2007-08-29      Sascha L. Teichmann <[email protected]>
1048    
1049            * tools/formed/formed/model/data.py: Renamed GroupNode.getRepeat()
1050              to .isRepeat and return a bool. Fixed a bug in Page.allWidgets().
1051    
1052    2007-08-28      Torsten Irlaender <[email protected]>
1053    
1054            * tools/formed/plugins/web/renderer.py: Added Formdata interface.
1055            * tools/formed/model/data.py: Implements Formadata interface to
1056              textfields. Fieldset generated depends now on the "invisible"
1057              attribute of the groupnode. Field-label generation slightly changed.
1058              Added error indication to textfields
1059    
1060    2007-08-28      Sascha L. Teichmann <[email protected]>
1061    
1062            * tools/formed/formed/model/data.py,
1063              tools/formed/formed/io/document.py: Removed support
1064              of logical groups.
1065    
1066    2007-08-28      Sascha L. Teichmann <[email protected]>
1067    
1068            * tools/formed/formed/io/document.py: Avoid saving empty
1069              attributes.
1070    
1071            * tools/formed/test-data/simple.xml: Applied.
1072    
1073    2007-08-28      Sascha L. Teichmann <[email protected]>
1074    
1075            * tools/formed/formed/model/data.py: Added 'repeat' and
1076              'invisible' attributes to group. TODO: remove logical group.
1077    
1078    2007-08-27      Torsten Irlaender <[email protected]>
1079    
1080            * tools/formed/plugins/web/plugin.py,
1081              tools/formed/plugins/web/renderer.py: Started to  include stylesheet
1082              depending tags in the html generation.
1083    
1084    2007-08-27      Sascha L. Teichmann <[email protected]>
1085    
1086            * tools/formed/formed/model/data.py,
1087              tools/formed/formed/io/document.py: Added a logical group.
1088              It has an attribute 'repeat' to indicate that it might
1089              be worthy an external table in DB schema.
1090    
1091    2007-08-27      Sascha L. Teichmann <[email protected]>
1092    
1093            * tools/formed/formed/plugins/web/plugin.py: Support
1094              serving of static content.
1095    
1096            * tools/formed/formed/plugins/web/server.py: Removed
1097              old send code.
1098    
1099    2007-08-27      Sascha L. Teichmann <[email protected]>
1100    
1101            * tools/formed/formed/plugins/web/plugin.py: Use new
1102              Response object. Fix typo.
1103    
1104            * tools/formed/formed/plugins/web/server.py: support
1105              response object to serve different MIME types.
1106    
1107    2007-08-27      Sascha L. Teichmann <[email protected]>
1108    
1109            * tools/formed/formed/plugins/web/plugin.py: Add web.path
1110              to FORMED environment  variable to specify the
1111              root of the static content.
1112    
1113    2007-08-26      Sascha L. Teichmann <[email protected]>
1114    
1115            * tools/formed/formed/model/data.py,
1116              tools/formed/formed/model/nodecomponents.py: Fixed mode issues.
1117    
1118            * tools/formed/formed/plugins/web/www,
1119              tools/formed/formed/plugins/web/www/main.tmpl: New. Contains
1120              a template for the HTML output.
1121    
1122            * tools/formed/formed/plugins/web/plugin.py: Fixes several smaller
1123              mode issues. Introduces CSS support. Simplified the action
1124              handling.
1125    
1126            * tools/formed/formed/plugins/web/renderer.py: Removed the
1127              nagivation code.
1128    
1129            * tools/formed/formed/plugins/web/server.py: Added missing import.
1130    
1131    2007-08-26      Sascha L. Teichmann <[email protected]>
1132    
1133            * tools/formed/formed/model/data.py: Added missing broadcast
1134              parameter to setAttribute() of RuleLeaf.
1135    
1136            * tools/formed/formed/plugins/web/plugin.py: Factorize
1137              HTTP server code out to separate module.
1138    
1139            * tools/formed/formed/plugins/web/renderer.py: Removed
1140              needless -1 from pop()
1141    
1142            * tools/formed/formed/plugins/web/server.py: New. Contains
1143              the HTTP server code now.
1144    
1145    2007-08-26      Sascha L. Teichmann <[email protected]>
1146    
1147            * tools/formed/test-data/simple.xml: Modified to contain a rule.
1148    
1149            * tools/formed/formed/model/expr.py: Added. A simple RPN
1150              expression evaluator. To avoid the problem of eval()ing
1151              arbitrary python expressions I've decided to use a very
1152              basic and limited stack machine to support rule checking.
1153    
1154            * tools/formed/formed/model/data.py: Added a RuleLeaf.
1155    
1156            * tools/formed/formed/io/document.py: Added factories for rules.
1157    
1158            * tools/formed/formed/model/nodecomponents.py: Add a method
1159              to find all items of a given type in document for a given
1160              mode. Usefull to find all rules in the tree.
1161    
1162            * tools/formed/formed/ui/controls.py: Added a listener mechanism
1163              to attribute table to report exceptions when setting a value
1164              from GUI. Useful to report compilation errors when setting
1165              expr of rule leafs.
1166    
1167            * tools/formed/formed/main.py: Added a method to track exceptions
1168              from the attribute table and pop up dialogs if they occur.
1169              Added a counter of rule modifications in tree. Useful if you
1170              want build cached data structures like rule sets and you want
1171              to know if they are still valid.
1172    
1173    2007-08-24      Torsten Irlaender <[email protected]>
1174    
1175            * tools/formed/formed/plugins/export/sql.py: Fixed CHECK-constraint
1176              for checkbox values. (Syntax error).
1177    
1178            * tools/formed/formed/plugins/names/filter.py: Fixes in formularname
1179              generation  
1180    
1181    2007-08-24      Torsten Irlaender <[email protected]>
1182    
1183            * tools/formed/formed/plugins/names/filter.py: Separated Class for
1184              making the formularnames more database friendly. Added some more
1185              checks.
1186            * tools/formed/formed/plugins/export/sql.py: Make use of the fresh
1187              separated class, and some fixes in sql generation.
1188    
1189    2007-08-24      Sascha L. Teichmann <[email protected]>
1190    
1191            * tools/formed/formed/plugins/export/html.py: Print lengths
1192              of external choice list.
1193    
1194    2007-08-24      Sascha L. Teichmann <[email protected]>
1195    
1196            * tools/formed/formed/main.py: Little workaround for
1197              mode selection if someone adds an removes a mode.
1198    
1199    2007-08-24      Sascha L. Teichmann <[email protected]>
1200    
1201            * tools/formed/test-data/simple.xml: Better test case for
1202              mode depended leaf items.
1203    
1204            * tools/formed/formed/model/nodecomponents.py: Added a method
1205              to calculate the effective mode of an item.
1206    
1207            * tools/formed/formed/plugins/export/html.py: Use effective
1208              mode. TODO: the 'all' modus return false results sometimes.
1209              Cause: The modes are only cumulated over time. Removal is
1210              not done.
1211    
1212    2007-08-24      Sascha L. Teichmann <[email protected]>
1213    
1214            * tools/formed/formed/plugins/export/html.py: Dump the items
1215              of radio groups and choices too.
1216    
1217    2007-08-24      Torsten Irlaender <[email protected]>
1218    
1219            * tools/formed/formed/plugins/names/filter.py: Modified the renaming
1220              by formular names to make the naming more database friendly.
1221              Now only alphanumeric and underscore chars is allowed.
1222    
1223    2007-08-24      Sascha L. Teichmann <[email protected]>
1224    
1225            * tools/formed/formed/plugins/export/html.py: Tweaked
1226              HTML table exporter a bit to be on par with the XSLT
1227              script. TODO: Dump items in radio and choice groups.
1228    
1229    2007-08-23      Sascha L. Teichmann <[email protected]>
1230    
1231            * tools/formed/formed/plugins/names/filter.py: Removed
1232              HTML and SQL exporters.
1233    
1234            * tools/formed/formed/plugins/export,
1235              tools/formed/formed/plugins/export/__init__.py,
1236              tools/formed/formed/plugins/export/sql.py,
1237              tools/formed/formed/plugins/export/html.py: New: Contain
1238              the HTML and the SQL exporters now.
1239    
1240            * tools/formed/formed/config.py: Use exporters from different
1241              package now.
1242    
1243    2007-08-23      Torsten Irlaender <[email protected]>
1244    
1245            * tools/formed/formed/plugins/names/filter.py: Added an
1246              pseudo SQL export filters. TODO: Move HTML and SQL filter
1247              in a new file (formed/plugins/export/htmlexport.py and
1248              sqlexport.py?)
1249    
1250            * tools/formed/formed/config.py: Install the new SQL filter.
1251    
1252    2007-08-23      Sascha L. Teichmann <[email protected]>
1253    
1254            * tools/formed/formed/model/nodecomponents.py: Added a depth()
1255              method to determine the depth of particular tree item.
1256    
1257            * tools/formed/formed/plugins/names/filter.py: Added an
1258              HTML export filters. TODO: needs more work.
1259    
1260            * tools/formed/formed/config.py: Install the new HTML filter.
1261    
1262    2007-08-23      Torsten Irlaender <[email protected]>
1263    
1264            * contrib/extract-xfa-fields_and_options.xsl: Added small xsl script
1265              to extract fields and options in the XFA Data in teh PDF. This
1266              script might me handy to indicate changes between the different
1267              formular versions.
1268            
1269    2007-08-23      Sascha L. Teichmann <[email protected]>
1270    
1271            * tools/formed/formed/main.py: Add an 'all' mode to
1272              select all modes. ;-)
1273    
1274    2007-08-22      Sascha L. Teichmann <[email protected]>
1275    
1276            * tools/formed/test-data/simple.xml,
1277              tools/formed/formed/model/data.py,
1278              tools/formed/formed/plugins/web/plugin.py,
1279              tools/formed/formed/plugins/web/renderer.py,
1280              tools/formed/formed/io/document.py,
1281              tools/formed/formed/main.py: Removed support for switch nodes.
1282              BEWARE: This breaks compatibility with older documents!
1283    
1284    2007-08-22      Sascha L. Teichmann <[email protected]>
1285    
1286            * tools/formed/formed/plugins/web/plugin.py: Uses the
1287              getSelectedMode() from main now.
1288    
1289            * tools/formed/formed/main.py: selected mode is now hold
1290              in main.
1291    
1292            * tools/formed/formed/config.py: removed selected mode from
1293              env configuration.
1294    
1295    2007-08-22      Sascha L. Teichmann <[email protected]>
1296    
1297            * tools/formed/formed/ui/controls.py: Attributes in GUI attribute
1298              table are now alphabetically sorted.
1299    
1300    2007-08-22      Sascha L. Teichmann <[email protected]>
1301    
1302            * tools/formed/formed/model/nodecomponents.py: Added code to
1303              establish the new 'modes' recursively.
1304    
1305            * tools/formed/formed/plugins/plugin.py: Pass main instead
1306              of cfg on plug-in start-up.
1307    
1308            * tools/formed/formed/plugins/web/plugin.py: Use the new
1309              'modes' attribute for rendering.
1310    
1311            * tools/formed/formed/plugins/web/renderer.py: Use decorators
1312              to check the new modes.
1313    
1314            * tools/formed/formed/main.py: Adjusted to new infrastructure.
1315    
1316    2007-08-22      Sascha L. Teichmann <[email protected]>
1317    
1318            * tools/formed/formed/model/nodecomponents.py: Added an
1319              attribute 'modes' to NodeComponents.
1320    
1321    2007-08-22      Sascha L. Teichmann <[email protected]>
1322    
1323            * tools/formed/formed/model/data.py: Small cosmetic cleanups
1324    
1325    2007-08-21      Sascha L. Teichmann <[email protected]>
1326    
1327            * tools/formed/formed/plugins/web/renderer.py: Another fix
1328              for the hidden field. Argh!
1329    
1330    2007-08-21      Sascha L. Teichmann <[email protected]>
1331    
1332            * tools/formed/formed/plugins/web/renderer.py: Fixed double
1333              generation of hidden page field.
1334    
1335    2007-08-21      Sascha L. Teichmann <[email protected]>
1336    
1337          * tools/formed/formed/plugins/web/semantic.py: Added semantic          * tools/formed/formed/plugins/web/semantic.py: Added semantic
1338            checks for radio groups.            checks for radio groups.
1339    
1340  2007-08-21 Sascha L. Teichmann <[email protected]>  2007-08-21      Sascha L. Teichmann <[email protected]>
1341    
1342          * tools/formed/formed/plugins/web/semantic.py: Added semantic          * tools/formed/formed/plugins/web/semantic.py: Added semantic
1343            checks for choices.            checks for choices.
# Line 18  Line 1352 
1352          * contrib/convert-formedtree2html.xsl:          * contrib/convert-formedtree2html.xsl:
1353          Replace technical types with readable descriptions          Replace technical types with readable descriptions
1354    
1355  2007-08-21 Sascha L. Teichmann <[email protected]>  2007-08-21      Sascha L. Teichmann <[email protected]>
1356    
1357          * tools/formed/formed/plugins/web/plugin.py: Fix a few smaller          * tools/formed/formed/plugins/web/plugin.py: Fix a few smaller
1358            issues. 'action' looks for all widgets on a page now, goes            issues. 'action' looks for all widgets on a page now, goes
1359                  through all passed parameters, tries to match them with the            through all passed parameters, tries to match them with the
1360                  widgets of the page and put them into the semantic box.            widgets of the page and put them into the semantic box.
1361                  Afterwards a list of untouched page parameters are left            Afterwards a list of untouched page parameters are left
1362                  which will be deleted from the semantic box.            which will be deleted from the semantic box.
1363    
1364          * tools/formed/formed/plugins/web/semantic.py: Simplified.          * tools/formed/formed/plugins/web/semantic.py: Simplified.
1365            The NodeComponent is passed as an argument now.            The NodeComponent is passed as an argument now.
# Line 33  Line 1367 
1367          * tools/formed/formed/plugins/web/renderer.py: Generate a          * tools/formed/formed/plugins/web/renderer.py: Generate a
1368            hidden field to store the name of the page.            hidden field to store the name of the page.
1369    
1370  2007-08-21 Sascha L. Teichmann <[email protected]>  2007-08-21      Sascha L. Teichmann <[email protected]>
1371    
1372          * tools/formed/formed/plugins/web/plugin.py: Fixed an encoding          * tools/formed/formed/plugins/web/plugin.py: Fixed an encoding
1373            issue with incoming UTF-8 data.            issue with incoming UTF-8 data.
1374    
1375  2007-08-21 Sascha L. Teichmann <[email protected]>  2007-08-21      Sascha L. Teichmann <[email protected]>
1376    
1377          * tools/formed/test-data/simple.xml: Improve test for widgets          * tools/formed/test-data/simple.xml: Improve test for widgets
1378            in switches.            in switches.
1379    
1380          * tools/formed/formed/model/data.py: Added a method to find all          * tools/formed/formed/model/data.py: Added a method to find all
1381            widgets in a given page. Fixed a bug when walking in switch            widgets in a given page. Fixed a bug when walking in switch
1382                  with a given mode.            with a given mode.
1383    
1384          * tools/formed/formed/plugins/web/plugin.py: Simple test for          * tools/formed/formed/plugins/web/plugin.py: Simple test for
1385            listing all widgets in page.            listing all widgets in page.
1386    
1387  2007-08-21 Torsten Irlaender <[email protected]>  2007-08-21      Torsten Irlaender <[email protected]>
1388    
1389          * tools/formed/formed/plugins/names/filter.py: Fixed file-encoding to          * tools/formed/formed/plugins/names/filter.py: Fixed file-encoding to
1390            latin-1            latin-1
1391    
1392  2007-08-21 Sascha L. Teichmann <[email protected]>  2007-08-21      Sascha L. Teichmann <[email protected]>
1393    
1394          * tools/formed/formed/model/data.py: Added mode parameter to          * tools/formed/formed/model/data.py: Added mode parameter to
1395            walk.            walk.
1396                              
1397          * tools/formed/formed/model/nodecomponents.py: SwitchNode overwrites          * tools/formed/formed/model/nodecomponents.py: SwitchNode overwrites
1398            walk() with usage of the new mode parameter. Added a method to            walk() with usage of the new mode parameter. Added a method to
1399                  give children in a given mode.            give children in a given mode.
1400    
1401          * tools/formed/formed/plugins/web/renderer.py: Simplified to use          * tools/formed/formed/plugins/web/renderer.py: Simplified to use
1402            new Switch.childrenInMode() method.            new Switch.childrenInMode() method.
1403    
1404  2007-08-21 Sascha L. Teichmann <[email protected]>  2007-08-21      Sascha L. Teichmann <[email protected]>
1405    
1406          * tools/formed/formed/plugins/web/semantic.py: Add checks for          * tools/formed/formed/plugins/web/semantic.py: Add checks for
1407            texts and text areas.            texts and text areas.
# Line 75  Line 1409 
1409          * tools/formed/formed/plugins/web/renderer.py: Set accept-charset          * tools/formed/formed/plugins/web/renderer.py: Set accept-charset
1410            to UTF-8 in generated form.            to UTF-8 in generated form.
1411    
1412  2007-08-20 Sascha L. Teichmann <[email protected]>  2007-08-20      Sascha L. Teichmann <[email protected]>
1413    
1414          * tools/formed/formed/plugins/web/semantic.py: Added semantic          * tools/formed/formed/plugins/web/semantic.py: Added semantic
1415            tests for dates.            tests for dates.
1416    
1417  2007-08-20 Sascha L. Teichmann <[email protected]>          2007-08-20      Sascha L. Teichmann <[email protected]>  
1418    
1419          * tools/formed/test-data/simple.xml: Tweak a bit for integer          * tools/formed/test-data/simple.xml: Tweak a bit for integer
1420            range test.            range test.
# Line 94  Line 1428 
1428          * tools/formed/formed/plugins/web/plugin.py: Use semantic          * tools/formed/formed/plugins/web/plugin.py: Use semantic
1429            check.            check.
1430    
1431  2007-08-20      Torsten Irlaender <[email protected]>  2007-08-20      Torsten Irlaender <[email protected]>
1432    
1433          * tools/formed/formed/plugins/web/renderer.py: Fixed Syntax in          * tools/formed/formed/plugins/web/renderer.py: Fixed Syntax in
1434            selection-field generation (Removed quote)            selection-field generation (Removed quote)
# Line 107  Line 1441 
1441            renderer. This submit parameters are stored in the            renderer. This submit parameters are stored in the
1442            session now. This will ease testing the constraint            session now. This will ease testing the constraint
1443            tests which need to be written soon.            tests which need to be written soon.
1444                              
1445            BEWARE: The session management is _not_ made for production!            BEWARE: The session management is _not_ made for production!
1446            Denial of service attacks are too easy, and the            Denial of service attacks are too easy, and the
1447            cryptographical strength of the session id is doubtful.            cryptographical strength of the session id is doubtful.
# Line 125  Line 1459 
1459            and can be hooked automatically into the new 'Filters'            and can be hooked automatically into the new 'Filters'
1460            sub menu under 'Extra'. They got called when the user            sub menu under 'Extra'. They got called when the user
1461            selects their respective menu item.            selects their respective menu item.
1462                              
1463          * tools/formed/formed/config.py: Contains the list of          * tools/formed/formed/config.py: Contains the list of
1464            installed filters.            installed filters.
1465    
# Line 186  Line 1520 
1520    
1521          * tools/formed/formed/main.py: Swaped order of          * tools/formed/formed/main.py: Swaped order of
1522            'Make names unique' and 'Selected mode...' in Extra            'Make names unique' and 'Selected mode...' in Extra
1523                  menu and put a separator between them.            menu and put a separator between them.
1524    
1525  2007-08-15      Sascha L. Teichmann <[email protected]>  2007-08-15      Sascha L. Teichmann <[email protected]>
1526    
# Line 195  Line 1529 
1529    
1530          * tools/formed/formed/plugins/plugin.py: Simplified          * tools/formed/formed/plugins/plugin.py: Simplified
1531            the plug-in interface. Only the reference to the            the plug-in interface. Only the reference to the
1532                  global configuration is passed at setup time.            global configuration is passed at setup time.
1533    
1534          * tools/formed/formed/plugins/web/plugin.py: Adjusted          * tools/formed/formed/plugins/web/plugin.py: Adjusted
1535            to new plug-in setup. The traveral mode is now taken            to new plug-in setup. The traveral mode is now taken
1536                  from the global configuration each time a rendering            from the global configuration each time a rendering
1537                  is triggered. The FORMED parameter is now named            is triggered. The FORMED parameter is now named
1538                  'doc.mode' instead of 'web.mode'. The parameter            'doc.mode' instead of 'web.mode'. The parameter
1539                  is not needed any more because it can be configured            is not needed any more because it can be configured
1540                  at runtime.            at runtime.
1541    
1542          * tools/formed/formed/main.py: Adjusted to new plugin          * tools/formed/formed/main.py: Adjusted to new plugin
1543            setup. Added a new menu item Extra->Select Mode...            setup. Added a new menu item Extra->Select Mode...
1544                  to select the traversal mode. It is stored in the            to select the traversal mode. It is stored in the
1545                  global config.            global config.
1546    
1547          * tools/formed/formed/config.py: Simplified. Only uses          * tools/formed/formed/config.py: Simplified. Only uses
1548            one env dictionary to store global configuration parameters.            one env dictionary to store global configuration parameters.
# Line 220  Line 1554 
1554    
1555          * tools/formed/formed/plugins/web/plugin.py,          * tools/formed/formed/plugins/web/plugin.py,
1556            tools/formed/formed/plugins/web/renderer.py: Added parameter            tools/formed/formed/plugins/web/renderer.py: Added parameter
1557                  print out in web plugin.            print out in web plugin.
1558    
1559  2007-08-15      Torsten Irlaender <[email protected]>  2007-08-15      Torsten Irlaender <[email protected]>
1560    
# Line 238  Line 1572 
1572    
1573          * tools/formed/formed/plugins/web/plugin.py,          * tools/formed/formed/plugins/web/plugin.py,
1574            tools/formed/formed/config.py: Added a 'web.mode' parameter            tools/formed/formed/config.py: Added a 'web.mode' parameter
1575                  to FORMED environment variable.            to FORMED environment variable.
1576                  e.g. 'FORMED=web.mode:modeX' sets the mode 'modeX'.            e.g. 'FORMED=web.mode:modeX' sets the mode 'modeX'.
1577                  Defaults to 'default'.            Defaults to 'default'.
1578    
1579          * tools/formed/test-data/simple.xml: Added test for switch.          * tools/formed/test-data/simple.xml: Added test for switch.
1580    
# Line 254  Line 1588 
1588          * tools/formed/formed/io/document.py,          * tools/formed/formed/io/document.py,
1589            tools/formed/formed/model/data.py,            tools/formed/formed/model/data.py,
1590            tools/formed/formed/model/nodecomponents.py: Added an item            tools/formed/formed/model/nodecomponents.py: Added an item
1591                  to model external item lists.            to model external item lists.
1592    
1593          * tools/formed/formed/plugins/web/renderer.py: Render new item          * tools/formed/formed/plugins/web/renderer.py: Render new item
1594            list.            list.
# Line 271  Line 1605 
1605    
1606          * contrib/extract-xfa-items.sh: New. Can be used to extract longer          * contrib/extract-xfa-items.sh: New. Can be used to extract longer
1607            choice item lists for a given field from XFA files. e.g. with            choice item lists for a given field from XFA files. e.g. with
1608                  './contrib/extract-xfa-items.sh Muttersprache alles.xml'            './contrib/extract-xfa-items.sh Muttersprache alles.xml'
1609    
1610  2007-08-12      Sascha L. Teichmann <[email protected]>  2007-08-12      Sascha L. Teichmann <[email protected]>
1611    
1612          * tools/formed/formed/model/data.py,          * tools/formed/formed/model/data.py,
1613            tools/formed/formed/plugins/web/renderer.py,            tools/formed/formed/plugins/web/renderer.py,
1614                  tools/formed/formed/io/document.py: Changed the structure            tools/formed/formed/io/document.py: Changed the structure
1615                  of choice constructs. The idea to hold the different items            of choice constructs. The idea to hold the different items
1616                  of a particular choice in a semicolon separated list was bad.            of a particular choice in a semicolon separated list was bad.
1617                  Now choices are groups and  the option items are modelled as            Now choices are groups and  the option items are modelled as
1618                  embedded bools. (mainly Torsten Irländer's idea).            embedded bools. (mainly Torsten Irländer's idea).
1619    
1620                  WARNING: this makes old document files containing choices incompatible!!!            WARNING: this makes old document files containing choices incompatible!!!
1621                  Use the following XSLT to reestablish compatibility.            Use the following XSLT to reestablish compatibility.
1622                              
1623          * contrib/itemize-choices.xsl: New converts old to new structure.          * contrib/itemize-choices.xsl: New converts old to new structure.
1624            Needs exslt.org's string extensions (which xsltproc includes)            Needs exslt.org's string extensions (which xsltproc includes)
1625    
# Line 303  Line 1637 
1637    
1638          * tools/formed/formed/model/nodecomponents.py: Added code to clone parts          * tools/formed/formed/model/nodecomponents.py: Added code to clone parts
1639            of the tree.            of the tree.
1640                              
1641          * tools/formed/formed/ui/controls.py: Added a getSelected method.          * tools/formed/formed/ui/controls.py: Added a getSelected method.
1642    
1643          * tools/formed/formed/model/misc.py: Fixed a programming bug.          * tools/formed/formed/model/misc.py: Fixed a programming bug.
# Line 326  Line 1660 
1660    
1661          * tools/formed/formed/model/nodecomponents.py: Added walk generator over all          * tools/formed/formed/model/nodecomponents.py: Added walk generator over all
1662            items in the document tree. Added a method to eliminated duplicated names            items in the document tree. Added a method to eliminated duplicated names
1663                  in document tree.            in document tree.
1664    
1665          * tools/formed/formed/model/misc.py: Added update mechanism for id generator          * tools/formed/formed/model/misc.py: Added update mechanism for id generator
1666            after names collisions are eliminated.            after names collisions are eliminated.
# Line 338  Line 1672 
1672    
1673          * tools/formed/formed/model/data.py,          * tools/formed/formed/model/data.py,
1674            tools/formed/formed/plugins/web/renderer.py: Removed support            tools/formed/formed/plugins/web/renderer.py: Removed support
1675                  for 'text' attributes in bool items. They were never really            for 'text' attributes in bool items. They were never really
1676                  used and the 'description' attributes fulfill the same            used and the 'description' attributes fulfill the same
1677                  purpose.            purpose.
1678    
1679          * contrib/remove-bool-text.xsl: Transform to remove the          * contrib/remove-bool-text.xsl: Transform to remove the
1680            'text' attributes from bool items. Apply with:            'text' attributes from bool items. Apply with:
1681                  'xsltproc contrib/remove-bool-text.xsl old.xml > new.xml'            'xsltproc contrib/remove-bool-text.xsl old.xml > new.xml'
1682    
1683          * tools/formed/test-data/simple.xml: Removed 'text' attributes          * tools/formed/test-data/simple.xml: Removed 'text' attributes
1684            from bool items.            from bool items.
# Line 363  Line 1697 
1697    
1698          * contrib/convert-choices.xsl: Added to convert document files          * contrib/convert-choices.xsl: Added to convert document files
1699            which use the choice 'option' attribute to usage of 'value'.            which use the choice 'option' attribute to usage of 'value'.
1700                  Apply with e.g. 'xsltproc convert-choices.xsl old.xml > new.xml'            Apply with e.g. 'xsltproc convert-choices.xsl old.xml > new.xml'
1701    
1702  2007-08-10      Sascha L. Teichmann <[email protected]>  2007-08-10      Sascha L. Teichmann <[email protected]>
1703    
# Line 400  Line 1734 
1734    
1735          * tools/formed/formed/plugins/web/plugin.py: To determine          * tools/formed/formed/plugins/web/plugin.py: To determine
1736            the port look at FORMED dictionary first. Key is 'web.port'.            the port look at FORMED dictionary first. Key is 'web.port'.
1737                  e.g. FORMED='web.port:8888'            e.g. FORMED='web.port:8888'
1738    
1739          * tools/formed/formed/main.py: Call the plugin setup with          * tools/formed/formed/main.py: Call the plugin setup with
1740            the reference to the config.            the reference to the config.
# Line 480  Line 1814 
1814    
1815          * tools/formed/formed/model/data.py,          * tools/formed/formed/model/data.py,
1816            tools/formed/formed/model/nodecomponents.py: Added new            tools/formed/formed/model/nodecomponents.py: Added new
1817                  attributes.            attributes.
1818    
1819          * tools/formed/formed/plugins/web/plugin.py: Added rendering          * tools/formed/formed/plugins/web/plugin.py: Added rendering
1820            for checkboxes and radio buttons.            for checkboxes and radio buttons.
# Line 509  Line 1843 
1843    
1844          * tools/formed/formed/plugins/web/plugin.py: Added a first          * tools/formed/formed/plugins/web/plugin.py: Added a first
1845            version of a recursive HTML renderer based on the document            version of a recursive HTML renderer based on the document
1846                  tree.            tree.
1847    
1848  2007-08-08      Sascha L. Teichmann <[email protected]>  2007-08-08      Sascha L. Teichmann <[email protected]>
1849    
# Line 538  Line 1872 
1872    
1873          * tools/formed/formed/main.py: Added event route document ->          * tools/formed/formed/main.py: Added event route document ->
1874            attribute table to get informed when selected item is delete            attribute table to get informed when selected item is delete
1875                  or an attribute is changed from the outside.            or an attribute is changed from the outside.
1876    
1877          * tools/formed/formed/ui/controls.py: Fixed. In older versions of          * tools/formed/formed/ui/controls.py: Fixed. In older versions of
1878            wxPython 2.6.x ListCtrl.InsertStringItem takes 2 instead            wxPython 2.6.x ListCtrl.InsertStringItem takes 2 instead
1879                  of 3 argument. Uses icons+tooltips for tree navigation now.            of 3 argument. Uses icons+tooltips for tree navigation now.
1880    
1881  2007-08-07      Sascha L. Teichmann <[email protected]>  2007-08-07      Sascha L. Teichmann <[email protected]>
1882    
# Line 590  Line 1924 
1924    
1925          * tools/formed/formed/ui/controls.py: Establish sort order          * tools/formed/formed/ui/controls.py: Establish sort order
1926            by indices of children in parent instead of alphanum.            by indices of children in parent instead of alphanum.
1927                  Code to move items up and down the document tree.            Code to move items up and down the document tree.
1928    
1929          * tools/formed/formed/io/document.py: Added missing imports.          * tools/formed/formed/io/document.py: Added missing imports.
1930    
# Line 603  Line 1937 
1937    
1938          * tools/formed/formed/main.py,          * tools/formed/formed/main.py,
1939            tools/formed/formed/ui/controls.py: Added control to            tools/formed/formed/ui/controls.py: Added control to
1940                  move items around in tree. Has no effect by now.            move items around in tree. Has no effect by now.
1941    
1942  2007-08-05      Sascha L. Teichmann <[email protected]>  2007-08-05      Sascha L. Teichmann <[email protected]>
1943    
# Line 619  Line 1953 
1953    
1954          * tools/formed/*: initial check-in of the Formular Editor.          * tools/formed/*: initial check-in of the Formular Editor.
1955            Not working yet. Only can load, view and store formular XML files.            Not working yet. Only can load, view and store formular XML files.
1956                  Start it with 'tools/formed/formed.sh'.            Start it with 'tools/formed/formed.sh'.

Legend:
Removed from v.70  
changed lines
  Added in v.252

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26