Refactor configuration options #869
Labels
enhancement
Add or improve something on an existing feature
t-shirt epic
A very large piece of work that will need to be broken up into smaller issues
Janeway currently supports 3 main mechanism for setting up configurable items.
Django `settings handler: This is a python module that can declare all caps variables and will be lazily loaded once when the request handler is first fired up. Some 3rd party libraries are making use of specific names declared here. (this has recently been skimmed down by Improve settings handling #582 )
model attributes across "site" models (i.e.moved to Expand settings modelling to be compatible with arbitrary site types #3528press.models.Press
,journal.models.Journal
). These configurable options are persisted in the DB and loaded up per request. They can be modified by the users.The
core.Setting*
models: These configuration types allow registering typed settings (text, char, number), can be combined into logical groups, are translatable (even non-text settings) and their value is unique per journal.As it currently stands there is a lack of consistency in terms of which mechanism is suitable for a given config item. We should review them and consider which mechanism is the most appropriate for each setting as well as enforce some rules moving forward.
The text was updated successfully, but these errors were encountered: