- Resolve incorrect status updates causing data display issues when an upload contains failed, all-filtered-out, and successful blueprint extractions at the same time (participation data donation view). ([
6e539b7
](https://github.com/uzh/ddm/commit/6e539b7,013e69c
- Instead of adding extra forms to QuestionItem and ScalePoint edit formsets, add button to add extra forms with JavaScript if needed. This prevents validation errors on unneeded extra forms with prefilled values. (
5ff8503
. - Fix typos in description of responses API. (
5f51ba1
Run python manage.py collectstatic
after upgrading to DDM v2.0.1 from a previous version.
This release marks a significant update, restructuring the codebase to enhance the maintainability and scalability of DDM. The application has been modularized into smaller sub-apps, each focused on a specific aspect of the application logic. Additionally, the update includes an improved user interface and user experience, making DDM more accessible to both researchers and participants. The accompanying documentation has also been extensively revamped.
Important: Due to the comprehensive restructuring, v2.0 introduces breaking changes. Upgrading from version 1.x to 2.x will result in the loss of configured questionnaires in existing projects and migrating requires several adjustments to the settings (see below and in the documentation). Furthermore, the API endpoints have been re-specified and return structures altered meaning that scripts drawing on endpoints from v1.x will have to be updated.
Below, the key updates are highlighted, including breaking changes, new features, and guidance for a seamless migration.
- Divided DDM into several separate sub applications. (
3e17a91
,2b8adff
,85e5a38
,b01187c
,dacd594
,6f53783
,606c537
,1508719
,5b80959
,2e48261
,31182eb
,922fd10
,d10eb6a
,26805ba
,129e44d
,25984df
,39d58b3
,bd6d06e
,a6c9bbf
,6c77175
) - Reimplemented data download views and APIs. (
331c2b2
,39edfaa
,9ba1106
,dae58c7
,5c5e657
) - Moved from Django 3.2 to 4.2. (
48be17f
,347de4c
) - Moved from deprecated django-ckeditor to django-ckeditor-5. (
820cd55
,63c2d9b
) - Reference DonationProjects in urls with newly introduced DonationProject.url_id instead of with primary key. (
94fecce
) - Moved all form validation logic from views to form models. (
22b4f58
) - Updated and restyled documentation (
bdc5688
,5a0e3d9
,860e4b0
,6ac17a2
,638677c
,47c52fa
,a79952f
,5d3dc75
,0da99a3
,2cd8c2b
,c5abeff
,1840857
,385923d
,3ecbf4a
,3bb4ddf
,0cf9beb
,8aa3a38
) - Moved left-over inline style attributes to CSS file. (
3d56b5d
) - Refactored javascript code (e.g., replace jQuery parts, move code included in templates to separate .js files etc.) (
3d56b5d
,e520fb0
,5f085a4
,ecf4fff
,89d06c7
,b9a11fd
) - Updated frontend from Vue v2 to v3. (
eb9b878
,85c4278
) - Renamed DdmAuthMixin to DDMAuthMixin. (
540afec
)
- Option to set a project to active/inactive. (
c81cd34
) - Option to add input restrictions (input type and maximum length) to Open Question. (
cc8765a
) - Download function for questionnaire responses. (
7a18831
,5c5e657
) - Custom template engine for researchers to customize text fields. (
4ff7e77
) - Improved file type checks before file extraction. (
3da3feb
) - Utility function to create server error logs for users. (
78302dd
) - Extended test coverage for all apps. (
7cd1734
,ef5ee53
,83fbc56
)
- Removed deprecated function DonationBlueprint.get_instructions(). (
438e04b
) - Removed unused ResearchProfileConfirmationForm. (
75d7bf3
) - Removed unused template files. (
2e48261
) - Removed unused class DdmRegisterResearchProfileView including the corresponding html template. (
df36816
)
- Optimized space usage on mobile devices. (
9185941
) - Redesigned donation page to look sleaker and more modern (
33b0e59
,f9ff9e0
) - Restyled instruction carousel. (
ce067a3
) - Update instruction title to 'how it works'. (
6d15a10
) - Restructured the blueprint create form to look cleaner and align with the blueprint edit form. (
43b7122
) - Renamed 'label alt' to 'label right' for Semantic Differential questions and updated the semantic differential edit view. (
ff955e7
) - Indeces in Question Item and Scale Points forms increase now automatically. (
bad0611
) - Various UI fixes and clarifications in the researcher admin interfaced. (
16e7472
,402205d
,46a63b5
,6825704
,8893439
,b59b37b
,3bb0e49
,aea17df
,dd065f2
,dd065f2
) - Display general and blueprint-related questions in the same table and move extra information to collapsible. (
4fdd6a2
)
- Loss of Configured Questionnaires: Upgrading from 1.x to 2.x will result in the loss of configured questionnaires in existing projects. This is due to migration challenges caused by the polymorphic structure of the QuestionBase model. To retain existing configurations, create a database backup and write a custom script to re-import the old questionnaire data. Since the structure of the models in the questionnaire app remains unchanged, re-creating objects based on the v1.x configurations should be feasible.
- Deprecated Function:
The
ddm.auth.user_is_allowed
function has been removed in v2.0. Replace it withddm_auth.utils.user_has_project_access
.
To migrate from 1.x to 2.0, follow the installation steps outlined in the updated administrator documentation, particularly regarding included apps and template context processors.
If you have integrated DDM functionality into your own code, ensure the following updates are made:
- Update Imports: Functions and models have been moved to specific sub-apps.
- Update URL References: URL patterns have been renamed, and URL namespaces have been introduced for each sub-app.
- Update Template and Static File Paths: Templates and static files have been reorganized, with resources now housed in their respective sub-app directories instead of the top-level.
Run python manage.py migrate
and python manage.py collectstatic
after upgrading to DDM v2.0.0 from a previous version.
Download of collected data donations is only possible through the API not through the admin interface. Fix and comprehensive documentation will be released in a subsequent version.
- Fixed mobile layout of matrix question items (
5e87ac5
.
Download of collected data donations is only possible through the API not through the admin interface. Fix and comprehensive documentation will be released in a subsequent version.
- Questionnaire: Optimize mobile layout of matrix questions and semantic differential type questions. (
b1607e7
,0c60352
,b6b9b58
) - Questionnaire: Jump to top of page after clicking on 'next page'. (
fb55c10
) - Allow customization of briefing consent labels through html. (
32d7c59
)
Download of collected data donations is only possible through the API not through the admin interface. Fix and comprehensive documentation will be released in a subsequent version.
- Hide instruction steps bar if only one instruction page is defined. (
600ba44
) - Updated citation. (
2a23537
)
- Remove deprecated 'ddm_graph' template tag from question rendering. (
a3881d5
)
Questionnaire was not working in this version due to the inclusion of a deprecated template tag (see fix in v1.0.17).
-
Improve robustness of extraction operators: (
5b3a0af
,855796f
)- Detect and convert date-strings (in ISO, RFC2822, or HTTP format) to date objects for greater/smaller-comparisons.
- Detect and convert numeric-strings to numbers for 'greater/smaller'-comparisons.
- Exclude strings from 'greater/smaller'-comparisons.
- Convert all variable types to string before regex comparison functions.
-
Update appearance of donation instructions. (
8cb4d79
,0b90ea2
) -
Limit the number of times an error with the same code is posted in an upload attempt from the participation interface to the server to 5. (
56d30ff
) -
Display extraction rules ordered according to the execution order (instead of their IDs). (
776b384
) -
Improve clarity of administration interface by adding collapsibles for additional information. (
6a851d2
,0745f6c
) -
Change
DonationProject.date_created
to readonly in admin view. (a851042
)
- Add option for "all-in-one consent" to File Uploader. (
e0b78c7
) - Add description of extraction operators to documentation. (
a4810c1
) - Add three new types of extraction errors related to regex extraction operators. (
4b6152e
) - Add tests for vue extraction functions. (
4bad2c7
,eb0de44
)
- Remove the
get_simple_bar_plot
template tag and bokeh dependency. (57696d6
)
- Change type of
EventLogEntry.description
from CharField to TextField to allow the posting of longer event descriptions. (d0d1c7d
) - Start data entry count from 1 instead of 0 in the data donation feedback navigation. (
88e9295
) - Fix bug that has limited the number of extraction rules to 10 and remove this limitation. (
d9ef58c
)