There are several issues regarding user preferences presently including the following:
- Adding a user preferences page.
- Adding caching to user preferences.
- Better management and separation of user preferences.
For project week I decided to look at the user preferences API and how it could be improved.
I came up with a solution the extended the current existing API and introduced a means by which to define user preferences in code.
Defined user preferences would:
- Manage the defaults and validation of the user preferences to ensure safe interaction throughout the code base.
- Manage the options available for preferences with options to ensure they were consistent.
- Provide a means by which to collect user preferences and display them in a way that allows them to be edited.
My changes include:
- Extending the API to allow user preferences to be defined. This includes making use of the preference component in namespaces.
- Extend the database structure to include the component a user preference is associated with, this allows for us to avoid conflicts and make full use of the preference namespace.
- Implement a user preferences page and form to allow the preferences to be viewed and edited in an organised way.
- Convert several preferences as a proof of concept.