learnscripture / learnscripture.net

Source code for https://learnscripture.net
Other
5 stars 2 forks source link

Add support for updated translations #193

Closed spookylukey closed 1 year ago

spookylukey commented 2 years ago

We want to gracefully handle cases where a new version of a text comes out, especially when access to the old version may become restricted. This is needed to handle ESV update, for example.

Requirements

For some cases, we need to forbid new users from using the old text:

Implementation notes

For each user, store allowed_restricted_versions as a M2M (or perhaps ArrayField, for efficient loading). Then, for each user the visible versions will be all unrestricted versions, plus restricted versions if they are referred to in allowed_restricted_versions. A migration will populate allowed_restricted_versions based on what they have already started learning.

spookylukey commented 1 year ago

This would actually be a huge amount of work. What we'll have to do instead is: