You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
By itself, these steps would at least be sufficient to ensure that the incoming data is validated as JSON on save.
However, as the data will now be stored in IndexedDB in the frontend as JSON, any edits to them will be recorded by keypath, rather than the entire text field changing. This has the advantage of giving more granular edits, but means we need to update our serializers to properly handle this.
Some original work will be required to be done, probably using the DotPathValueMixin, and in a similar way to the TagField used in the ContentNode serializer.
The way that the data is serialized to the frontend should also be updated in order to be sent as a map (see e.g. tags for contentnodes), however, as there is additional data rather than just a tag name, a more complex method would be required.
Current behavior
Data is stored as text but is validated as JSON in #3901
The text was updated successfully, but these errors were encountered:
Hi @manavagr1108, thank you for your interest in working on Studio. My apologies for the late response.
This issue isn't the best for an external contributor to address. It is rather convoluted as we can't simply change the field types, since we have millions of existing records in the database. We have a strict time limit on Django migrations, which requires us to handle this situation with care. Not only that, but there could be invalid JSON in the existing fields too.
Builds upon #897 and #3901
Desired behavior
Proper resolution of this will involve several steps:
answers
, andhints
fields into ajsonfield
JSONField
(not a proper postgres JSONField to avoid a complex migration for now).jsonfield
JSONField
that is done in Kolibri here: https://github.com/learningequality/kolibri/blob/release-v0.14.x/kolibri/core/fields.py#L102By itself, these steps would at least be sufficient to ensure that the incoming data is validated as JSON on save.
However, as the data will now be stored in IndexedDB in the frontend as JSON, any edits to them will be recorded by keypath, rather than the entire text field changing. This has the advantage of giving more granular edits, but means we need to update our serializers to properly handle this.
Current behavior
Data is stored as text but is validated as JSON in #3901
The text was updated successfully, but these errors were encountered: