Central issue for this theme
The current form based HTTP page series workflow is suitable for some tasks in the site, but certain tasks (managing large list, session planning &c) could do with some enhancement. In the long term I would like to see a shift from traditional forms to JS/SPA style modules.
We should not be trying to build a full single-page app. That's too much of a shift. Initially we should build out new funtionality as 'JS modules'. (I'm thinking the user role assignment screen) and then upgrade important components with a proper game plan.
Currently I'm liking the look of Vue.js and the use of django rest framework.
GitLab's article on how they're adopting Vue got me thinking. A lot of new frontend tech tends to recommend throwing everything out and starting over every six months—if not more regularly.
As for GitLab, as for us. This isn't sustainable for a project such as these. Maintain being multipage, certain sections can be JS apps, but a separation of concerns is a huge win.
There's reasons in that article for not using turbolinks, basically it becomes a huge pain with loading and unloading event listeners. Should probably heed this advice.
New: for section apps (members list for example) we should build the JS for it into a separate file (perfectly achievable with dj compressor).
However do we then get into dependency problems. Is it worth going down the webpack route??
Eugh, remember that this tech limbo is why nothing gets done!
Some pages exist as multiple views of same data. With JS apps we can reduce pages. Couple of ideas:
- Members list search and report views become one filterable/searchable list.
- Training Dash, list and detail views for lessons become one Logbook app
- Sites Overview, add, edit, delete views all become one page sites app.