* Resolves the issue with libraries not updating on version dropdown
selection going back from version to latest
* Fixes edge case of version alert not showing when query params are
deleted from location bar
* Adds refactor of version selection drop downs on library preference
page and cleans up some unused ones.
* Fixed issues with releases page and versioning
* Added latest support and version alert
* Updated version alert to link to /release and clarify most recent vs
vs "release" selection
* Refactored Libraries and Releases pages to align similar code for
reuse.
1. added support for 'release' in library urls
2. fixed versioning not working from the non-grid library list pages
3. fixed library detail user selection of versioning not working
4. unified cookie handling to share across both LibraryList and
LibraryDetail
There's a good amount of refactoring in this, so this is going to look
like a much bigger change than it is. In reality it makes the dispatch
code simpler.
Fixes:
1. Resolved the issue with the libraries pages not redirecting correctly
2. Resolved an issue around categories not being preserved moving from
page to page.
The issue with the redirects was there was a tug of war on arriving on
/library between the various ways of determining where the user should
end up.
I added a `/libraries/grid/` url and now `/libraries/` determines which
list page the user should end up on based on 1) url 2) cookie, 3) the
default, same for version preference. We can probably get rid of
dispatch() later. This has the added bonus of allowing reliable linking
to a specific list view (e.g. for users to bookmark one type)
Refactors:
1. Separated the navigation on the three library pages into a standalone
template.
2. Moved some constants to constants.py
3. Moved a lot of the views methods which were only used by the
dispatch() call to utils.py .
4. At that stage there were circular imports so I moved the docs
generation functions which were only used in constants.py to
constants_utils.py. utils.py is more general.
- Lexical Cast
- Local Function
- Math Quaternion
- Min Max
- Numeric Conversion
- Result Of
- Scope Exit
- Throw Exception
- Type Erasure
- Type Index
- Correction for Value Initialized library
Also:
- Remove version import from docs refresh
- Add more helper functions for docs url generation
- Add LibraryVersion inline to LibraryAdmin for easier debugging
- Add convenience function to generate random string
- Adjust Library slug so it functions as unique without being unique
- Add exception logic for older Container Hash versions
- Fix bugs in management commands
- Add exception logic for older Container Hash docs
- Add exception logic for Functional/Overloaded Function docs
- Add task to import all library-versions, and add that to existing admin refresh buttons
- Add logic to import github_url if we dont have it
(Part of #394 and #252)
- Add method to the GitHub API class to retrieve a specific file from a repo by its tag and path (to retrieve README or adocc files)
- Add method to Library model to retrieve the description content and render it
- Fail gracefully if no content is found
- Add caching logic for redis and database caching