GDPR export is unnecessarily generic
The GDPR export view is based on several APIs:
pseudonyms.helpers.list_pseudonyms()
pseudonyms.registry.subject_data_models
SubjectData.get_by_pseudonym()
-
utils
templatetags
Most of these are not used for anything else.
This inversion-of-control approach was chosen to eventually support optional apps: Each new app can register is models with pseudonyms.registry.subject_data_models
and they would automactically be included in the export.
@goettel decided that we will not support optional apps anytime soon, probably never. So there may be room for refactoring here: We could remove most of the APIs described above. Instead we could have a more concrete, less indirect implementation.
The main issue here though is that this has the potential to introduce circular dependencies between apps.