1 |
|
2010-09-16 Bernhard Herzog <[email protected]> |
2 |
|
|
3 |
|
Avoid database deadlocks that can happen when database clients try |
4 |
|
to work with the same case using two separate database |
5 |
|
connections. See mpuls/issue1145 for details. |
6 |
|
|
7 |
|
* formed/formed/plugins/export/rg_sql.py (SQL_TEMPLATE): Split the |
8 |
|
computation of the new json structure description into the new |
9 |
|
database function compute_case_structure |
10 |
|
(TRIGGER_TMPL): Change the trigger functions to immediately update |
11 |
|
the cached json structure description instead of just setting the |
12 |
|
modified flag. This avoids the lazy recomputation that makes what |
13 |
|
seems like a read-only access (calling get_case_structure) into a |
14 |
|
writing access (updates of the cache). The writes lock the row in |
15 |
|
the case_structure table which prevent other connections from |
16 |
|
accessing the same case. As part of this, the delete triggers are |
17 |
|
now AFTER triggers because the repeat groups instance must have |
18 |
|
been removed when the structure is recomputed. |
19 |
|
(SUBSELECT_TMPL): Since the delete trigger is now an after |
20 |
|
trigger, we need to change the way the master id is computed. We |
21 |
|
cannot join with the repeatgroup table in question because the row |
22 |
|
has already been deleted. However, we can use the master_id |
23 |
|
column of the OLD row to select the row of the parent table. |
24 |
|
(create_triggers): Avoid the inner joins with the current repeat |
25 |
|
group for the above mentioned reasons. In the very common case of |
26 |
|
repeat groups which are direct children of the master_tbl, we can |
27 |
|
compare the master_tbl.id directly with the row's master_id. |
28 |
|
|
29 |
|
2010-09-14 Roland Geider <[email protected]> |
30 |
|
|
31 |
|
* formed/formed/plugins/export/xsd.py: issue1131: update XSD for new |
32 |
|
formedtree structure |
33 |
|
|
34 |
|
2010-09-01 Roland Geider <[email protected]> |
35 |
|
|
36 |
|
* formed/formed/plugins/modify/rules.py: issue1050: mandatory fields |
37 |
|
appearing double. |
38 |
|
The problem was that the way the formEditor handled fields with |
39 |
|
manually created rules changed. Instead of ignoring fields (very |
40 |
|
early behaviour) or always generating them (early behaviour), now the |
41 |
|
formED will only ignore fields with rules which name starts with |
42 |
|
'required-rule-manual'. This is helpful when the rules for mandatory |
43 |
|
fields are more complex (e.g. mother's name is only required if |
44 |
|
mother is known). |
45 |
|
|
46 |
|
2010-08-10 Torsten Irländer <[email protected]> |
47 |
|
|
48 |
|
* contrib/diff_formed.py: New helperscript to diff to given |
49 |
|
formedtrees |
50 |
|
|
51 |
|
2010-08-09 Roland Geider <[email protected]> |
52 |
|
|
53 |
|
* formed/model/exprtree.py: fixed typo |
54 |
|
|
55 |
|
2010-08-04 Bernhard Herzog <[email protected]> |
56 |
|
|
57 |
|
* formed/po/de_DE.po: Update translations |
58 |
|
|
59 |
|
2010-08-04 Bernhard Herzog <[email protected]> |
60 |
|
|
61 |
|
* formed/po/formed.pot: Regenerated. |
62 |
|
|
63 |
|
* formed/po/de_DE.po: Update. |
64 |
|
|
65 |
|
2010-08-04 Bernhard Herzog <[email protected]> |
66 |
|
|
67 |
|
* formed/po/Makefile: Use correct filename of the pot-file in the |
68 |
|
usage message |
69 |
|
|
70 |
|
2010-08-04 Bernhard Herzog <[email protected]> |
71 |
|
|
72 |
|
* formed/po/Makefile (LIST_POTFILES): Sort the file names to make |
73 |
|
the order of entries in the .pot-file more predictable. |
74 |
|
|
75 |
|
2010-08-04 Bernhard Herzog <[email protected]> |
76 |
|
|
77 |
|
* formed/formed/model/nodecomponents.py (RootNode.__init__) |
78 |
|
(RootNode.getVersion, RootNode.setVersion): Add attribute |
79 |
|
"version" and accessor methods. |
80 |
|
|
81 |
|
* formed/formed/main.py (MainFrame.OnSetDocumentVersion): New. Let |
82 |
|
the user set the document version. |
83 |
|
(MainFrame._createMenuBar): Add menu item for OnSetDocumentVersion |
84 |
|
|
85 |
|
2010-08-02 Bernhard Herzog <[email protected]> |
86 |
|
|
87 |
|
* formed/formed.py, formed/formed/io/document.py, |
88 |
|
formed/formed/io/factories.py, formed/formed/io/parser.py, |
89 |
|
formed/formed/model/data.py, formed/formed/model/event.py, |
90 |
|
formed/formed/model/expr.py, formed/formed/model/exprtree.py, |
91 |
|
formed/formed/model/memory.py, formed/formed/model/misc.py, |
92 |
|
formed/formed/model/nodecomponents.py, |
93 |
|
formed/formed/model/persistent.py: Fix coding declaration to be |
94 |
|
acceptable to both python and Emacs. |
95 |
|
|
96 |
2010-07-29 Torsten Irländer <[email protected]> |
2010-07-29 Torsten Irländer <[email protected]> |
97 |
|
|
98 |
* formed/formed/model/data.py: Added "invisible" attribute to |
* formed/formed/model/data.py: Added "invisible" attribute to |
99 |
BoolLeafs. This can be used to hide options in choicelists. so the |
BoolLeafs. This can be used to hide options in choicelists. so the |
100 |
user can not select the value in the user interface. But the db will |
user can not select the value in the user interface. But the db will |
101 |
have this option so is ist still present in the db an can be used |
have this option so is ist still present in the db an can be used |
102 |
|
* formed/formed/model/exprtree.py: Added "days" function. |
103 |
|
|
104 |
2010-07-26 Roland Geider <[email protected]> |
2010-07-26 Roland Geider <[email protected]> |
105 |
|
|