cht-conf 6.0.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -4
- package/bin/xls2xform-medic.cmd +2 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [6.0.1](https://github.com/medic/cht-conf/compare/v6.0.0...v6.0.1) (2026-01-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **#785:** add `xls2xform-medic.cmd` file for Windows ([2686ce5](https://github.com/medic/cht-conf/commit/2686ce54b2aafa2bfec387f285458f9d9481f2a8)), closes [#785](https://github.com/medic/cht-conf/issues/785)
|
|
7
|
+
|
|
1
8
|
# [6.0.0](https://github.com/medic/cht-conf/compare/v5.6.0...v6.0.0) (2026-01-12)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -5,11 +12,56 @@
|
|
|
5
12
|
* feat([#613](https://github.com/medic/cht-conf/issues/613))!: uplift pyxform to `v4.0.0-medic` ([#709](https://github.com/medic/cht-conf/issues/709)) ([d78296d](https://github.com/medic/cht-conf/commit/d78296d4df7a43699a1d7a78584be4b8cc3967f9))
|
|
6
13
|
|
|
7
14
|
|
|
8
|
-
|
|
15
|
+
## BREAKING CHANGES
|
|
16
|
+
|
|
17
|
+
### New bundled version of pyxform
|
|
18
|
+
|
|
19
|
+
#### Local pyxform installation is no longer required
|
|
20
|
+
|
|
21
|
+
Previously, the `pyxform` utility (required for converting form `xlsx` files to the `xml` xform format for upload) needed to be manually installed in the user's environment. Now `pyxform` (version `v4.0.0-medic`) is bundled with cht-conf and installed automatically when cht-conf is installed. The user simply needs Python `3.12+` available in their environment.
|
|
22
|
+
|
|
23
|
+
Existing cht-conf users can safely uninstall any local `pyxform` installation. cht-conf will only use the bundled instance of `pyxform`.
|
|
24
|
+
|
|
25
|
+
#### New pyxform version may require change to forms
|
|
26
|
+
|
|
27
|
+
The new version of `pyxform` brings with it a number of importiant changes that may require updating existing form `xlsx` files for compatibility. The known changes include:
|
|
9
28
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
29
|
+
##### Modified Functionality
|
|
30
|
+
- Attribute ordering in the generated XML file will now be deterministic.
|
|
31
|
+
- Re-converting an unmodified form should not result in any changes to the form's xml file.
|
|
32
|
+
- When converting a modified form, the only lines that will be changed in the form xml are ones that are directly related to the changes in the xlsx.
|
|
33
|
+
- Question fields are now required to have a label or hint. (Previously, pyxform would just print a warning if a question did not have a label or hint.)
|
|
34
|
+
- If you try to convert a form with a question field with an empty label (and no hint) it will fail with an error like: `The survey element named 'world' has no label or hint. `
|
|
35
|
+
- For fields that should not be displayed to the user, consider using the `caluculate` type when you have a `calculation` expression or a `default` value. If the field value is not coming from the `calculation` or `default` columns, the `hidden` type can be used without a label/hint. This is particularly useful for input data fields or fields populated by the contact selector.
|
|
36
|
+
- Empty groups/repeats (without any child fields) now result in an error.
|
|
37
|
+
- Duplicate choice names now result in an error by default. However, support can be re-enabled via [the `allow_choice_duplicates` setting](https://xlsform.org/en/#choice-names).
|
|
38
|
+
- pyxform will now warn when there are missing translation columns for any of the languages in the form.
|
|
39
|
+
|
|
40
|
+
##### Added functionality
|
|
41
|
+
|
|
42
|
+
- [`trigger` columns](https://docs.getodk.org/form-logic/#triggering-calculations-on-value-change) are now supported, allowing for calculations to be automatically re-evaluated when an unrelated value changes!
|
|
43
|
+
- You can now reference `${paths}` in _labels_ on the `choices` sheet.
|
|
44
|
+
- Support for [randomizing choice order](https://docs.getodk.org/form-question-types/#randomizing-choice-order) in select questions via the `randomize=true` parameter has been added.
|
|
45
|
+
|
|
46
|
+
* feat([#613](https://github.com/medic/cht-conf/issues/613))!: uplift pyxform to `v4.0.0-medic` ([#709](https://github.com/medic/cht-conf/issues/709)) ([d78296d](https://github.com/medic/cht-conf/commit/d78296d4df7a43699a1d7a78584be4b8cc3967f9))
|
|
47
|
+
|
|
48
|
+
### Consistent naming of form identifier required
|
|
49
|
+
|
|
50
|
+
When there is a missmatch between the `form_id` in the xlsx, the _file name_ for the xml, and the `internalId` from the properties file, cht-conf will now raise an _error_ when you run the `convert-*-forms` action.
|
|
51
|
+
|
|
52
|
+
Now it is not required to specify the form identifier at all (in the `xlsx`, `xml`, or properties files). cht-conf will automatically set the form identifier based on the name of the xlsx file and the form type.
|
|
53
|
+
|
|
54
|
+
For cases where existing forms are now triggering an error:
|
|
55
|
+
|
|
56
|
+
- `contact` forms - remove any custom identifiers specified in the xlsx or properties file for `contact` forms.
|
|
57
|
+
- `app` forms - if a custom value (that does not match the xlsx file name) is currently specified as the `form_id` in the xlsx or the `internalId` in the properties file, the _file name_ of the form's xlsx/xml file should be updated to match the custom identifier value.
|
|
58
|
+
- The renamed form will be seen as a "new" form on the CHT instance (even though it will produce reports with the same `form` value). So, be sure to remove the old version of the form from the instance before renaming and re-uploading the updated form.
|
|
59
|
+
- Do not update the custom identifier value to match the form's _file name_. That will result in new reports being written with a different `form` value and can produce data consistancy issues.
|
|
60
|
+
- `training` forms - as with the `app` forms, if there is a missmatch in the identifier of a `training` form the _file name_ of the training form xlsx/xml file should be updated to match the custom identifier.
|
|
61
|
+
- Be sure to remove the old version of the form from the instance before renaming and re-uploading the updated form.
|
|
62
|
+
- Do not update the custom identifier value to match the form's _file name_. That will result in the form being treated as a totally new training and users would be prompted to redo the training even if they had previously completed it.
|
|
63
|
+
|
|
64
|
+
* feat([#537](https://github.com/medic/cht-conf/issues/537))!: error when form internalId does not match file name ([#776](https://github.com/medic/cht-conf/issues/776)) ([f921f1e](https://github.com/medic/cht-conf/commit/f921f1e1c6c0e32f8d2a6b5f00c9700eab338700))
|
|
13
65
|
|
|
14
66
|
# [5.6.0](https://github.com/medic/cht-conf/compare/v5.5.0...v5.6.0) (2025-12-15)
|
|
15
67
|
|